etesync / etesync-dav

This is a CalDAV and CardDAV adapter for EteSync
https://www.etesync.com
GNU General Public License v3.0
290 stars 47 forks source link

Tasks deleted in Thunderbird error #182

Open hip-gh opened 3 years ago

hip-gh commented 3 years ago

Deleting multiple tasks at once in Thunderbird (68.12.1) returns an error, "An error has occured while writing in the agenda xxx". But tasks are deleted anyway. Here is a capture of the error message.

_ erreur_etesync_taches

tasn commented 3 years ago

Hm... I'm not getting the error here, but I can see what's going on. Essentially a database connection is being kept open so it's throwing an error when trying to write the second deletion. I don't know why or how it could happen though, as all of the accesses are explicitly requested. I'll have to dig deeper. Interesting that it's happening when saving the collection. Here's the backtrace for my reference:

Traceback (most recent call last):
  File "./etesync_dav/radicale/storage.py", line 84, in run
    etesync.sync()
  File "./etesync_dav/local_cache/__init__.py", line 92, in sync
    self.sync_collection(collection.uid)
  File "./etesync_dav/local_cache/__init__.py", line 158, in sync_collection
    self.pull_collection(uid)
  File "./etesync_dav/local_cache/__init__.py", line 196, in pull_collection
    cache_col.save()
  File "./.venv/lib/python3.8/site-packages/peewee.py", line 6199, in save
    rows = self.update(**field_dict).where(self._pk_expr()).execute()
  File "./.venv/lib/python3.8/site-packages/peewee.py", line 1785, in inner
    return method(self, database, *args, **kwargs)
  File "./.venv/lib/python3.8/site-packages/peewee.py", line 1856, in execute
    return self._execute(database)
  File "./.venv/lib/python3.8/site-packages/peewee.py", line 2320, in _execute
    cursor = database.execute(self)
  File "./.venv/lib/python3.8/site-packages/peewee.py", line 2962, in execute
    return self.execute_sql(sql, params, commit=commit)
  File "./.venv/lib/python3.8/site-packages/peewee.py", line 2956, in execute_sql
    self.commit()
  File "./.venv/lib/python3.8/site-packages/peewee.py", line 2732, in __exit__
    reraise(new_type, new_type(*exc_args), traceback)
  File "./.venv/lib/python3.8/site-packages/peewee.py", line 183, in reraise
    raise value.with_traceback(tb)
  File "./.venv/lib/python3.8/site-packages/peewee.py", line 2949, in execute_sql
    cursor.execute(sql, params or ())
peewee.OperationalError: database is locked