maximum recursion error while retrieving flags doc from soledad
While debugging on #4963 (closed), I found that this interesting error is breaking the fetching of the whole sequence.
[-] spewing message [-] *** calling next in results [-] spewing message [LeapIMAPServer,3,127.0.0.1] *** calling next in results [LeapIMAPServer,3,127.0.0.1] spewing message [-] *** calling next in results [-] spewing message [-] *** calling next in results [-] spewing message [-] Traceback (most recent call last): [-] File "/home/kali/Virtualenvs/leap-bitmask/local/lib/python2.7/site-packages/twisted/mail/imap4.py", line 1905, in [-] ).addCallback(lambda _: self.__cbFetch(results, tag, query, uid) [-] File "/home/kali/Virtualenvs/leap-bitmask/local/lib/python2.7/site-packages/twisted/mail/imap4.py", line 1904, in __cbFetch [-] self.spewMessage(id, msg, query, uid [-] File "/home/kali/Virtualenvs/leap-bitmask/local/lib/python2.7/site-packages/twisted/mail/imap4.py", line 2060, in spewMessage [-] return self._scheduler(spew()) [-] File "/home/kali/Virtualenvs/leap-bitmask/local/lib/python2.7/site-packages/twisted/mail/imap4.py", line 5687, in iterateInReactor [-] go(None) [-] --- --- [-] File "/home/kali/Virtualenvs/leap-bitmask/local/lib/python2.7/site-packages/twisted/mail/imap4.py", line 5677, in go [-] r = i.next() [-] File "/home/kali/Virtualenvs/leap-bitmask/local/lib/python2.7/site-packages/twisted/mail/imap4.py", line 2052, in spew [-] yield f(id, msg, write, flush) [-] File "/home/kali/Virtualenvs/leap-bitmask/local/lib/python2.7/site-packages/twisted/mail/imap4.py", line 1925, in spew_flags [-] _w('FLAGS ' + '(%s)' % (' '.join(msg.getFlags()))) [-] File "/home/kali/leap/leap_mail/src/leap/mail/imap/messages.py", line 397, in getFlags [-] fdoc = self._fdoc [-] File "/home/kali/leap/leap_mail/src/leap/mail/imap/messages.py", line 339, in _fdoc [-] fdoc = self._get_flags_doc() [-] File "/home/kali/leap/leap_mail/src/leap/mail/imap/messages.py", line 662, in _get_flags_doc [-] fields.TYPE_FLAGS_VAL, self._mbox, str(self._uid)) [-] File "/home/kali/leap/soledad/client/src/leap/soledad/client/__init__.py", line 998, in get_from_index [-] return self._db.get_from_index(index_name, *key_values) [-] File "/home/kali/Virtualenvs/leap-bitmask/local/lib/python2.7/site-packages/u1db/backends/sqlite_backend.py", line 689, in get_from_index [-] doc = self._factory(row[0], row[1], row[2]) [-] File "/home/kali/leap/soledad/client/src/leap/soledad/client/sqlcipher.py", line 201, in factory [-] syncable=syncable) [-] File "/home/kali/leap/soledad/common/src/leap/soledad/common/document.py", line 56, in __init__ [-] Document.__init__(self, doc_id, rev, json, has_conflicts) [-] File "/home/kali/Virtualenvs/leap-bitmask/local/lib/python2.7/site-packages/u1db/__init__.py", line 527, in __init__ [-] super(Document, self).__init__(doc_id, rev, json, has_conflicts) [-] File "/home/kali/Virtualenvs/leap-bitmask/local/lib/python2.7/site-packages/u1db/__init__.py", line 419, in __init__ [-] value = json.loads(json_string) [-] File "/home/kali/Virtualenvs/leap-bitmask/local/lib/python2.7/site-packages/simplejson-3.3.1-py2.7-linux-x86_64.egg/simplejson/__init__.py", line 488, in loads [-] return _default_decoder.decode(s) [-] File "/home/kali/Virtualenvs/leap-bitmask/local/lib/python2.7/site-packages/simplejson-3.3.1-py2.7-linux-x86_64.egg/simplejson/decoder.py", line 370, in decode [-] obj, end = self.raw_decode(s) [-] File "/home/kali/Virtualenvs/leap-bitmask/local/lib/python2.7/site-packages/simplejson-3.3.1-py2.7-linux-x86_64.egg/simplejson/decoder.py", line 389, in raw_decode [-] return self.scan_once(s, idx=_w(s, idx).end()) [-] exceptions.RuntimeError: maximum recursion depth exceeded while calling a Python object [-]
(from redmine: created on 2014-01-14, closed on 2014-02-26)