This question has been flagged

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

Avatar
Discard
Author Best Answer

Sovled with the help of PCatinean in Freenode IRC #odoo. I set a dpb breakpoint, looked at the environment variables once the debugging triggered. I identified the malformed event by looking at the timestamps and comparing them in pgadmin. Once found, I restarted OCA/OCB (that's the Odoo I use), deleted the malformed event and entered it anew. Works like a charm.

Thank you PCatinean!


@David Verove: I am sorry, I cannot help you. This was one year ago and since then a lot of things happened. I suggest you turn to the IRC chat.

Avatar
Discard

Can you please tell what you did exactly? What is malformed? In what table in pgadmin? I meet the same problem. Thanks, David

Best Answer

The reason of issue is , there is some Recurring event without "Recurrent Rule". You can use advance search to find such events. To set the rule you just have to set it Recurring = False and save then Recurring = True and save. Error is gone. 

Avatar
Discard