After entering a few calendar events, I must have entered bogus and it passed into the DB. Now every x minutes, odoo complains about an empty string. I started Odoo with extensive logging and found that Odoo runs the Calendar Alarm / Notifier every y minutes, which traverses all the events and notifies the user, if needed.
In that process, at least one event seems to miss a string, which results in the error. From the traceback, I find that when checking for alarms concerning recurrent events, the error is actually triggered. So, I think, the faulty event is a recurring one. I have only three recurring events and they seem valid. Also, filtering for unset rrule in the webend returns no such event.
How do I proceed further in debugging this?
$PATH = my path (not environment variable)
Traceback (most recent call last):
File "$PATH/openerp/http.py", line 530, in _handle_exception return super(JsonRequest, self)._handle_exception(exception)
File "$PATH/openerp/http.py", line 567, in dispatch result = self._call_function(**self.params)
File "$PATH/openerp/http.py", line 303, in _call_function return checked_call(self.db, *args, **kwargs)
File "$PATH/openerp/service/model.py", line 113, in wrapper return f(dbname, *args, **kwargs)
File "$PATH/openerp/http.py", line 300, in checked_call return self.endpoint(*a, **kw)
File "$PATH/openerp/http.py", line 796, in __call__ return self.method(*args, **kw)
File "$PATH/openerp/http.py", line 396, in response_wrap response = f(*args, **kw)
File "$PATH/addons/calendar/controllers/main.py", line 61, in notify res = registry.get("calendar.alarm_manager").get_next_notif(cr, uid, context=context)
File "$PATH/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs)
File "$PATH/addons/calendar/calendar.py", line 495, in get_next_notif for one_date in self.pool.get("calendar.event").get_recurrent_date_by_event(cr, uid, curEvent, context=context):
File "$PATH/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs)
File "$PATH/addons/calendar/calendar.py", line 711, in get_recurrent_date_by_event rset1 = rrule.rrulestr(str(event.rrule), dtstart=startdate, forceset=True)
File "/usr/lib/python2.7/dist-packages/dateutil/rrule.py", line 1093, in __call__ return self._parse_rfc(s, **kwargs)
File "/usr/lib/python2.7/dist-packages/dateutil/rrule.py", line 994, in _parse_rfc raise ValueError, "empty string" ValueError: empty string