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

[90312/Thread-17] [ERROR] An exception occurred during PROPFIND request on '/<USERNAME>/': 'NoneType' object has no attribute 'get' #167

Open devurandom opened 3 years ago

devurandom commented 3 years ago

On my system I see the following in the logs:

[90312/Thread-17] [ERROR] An exception occurred during PROPFIND request on '/<USERNAME>/': 'NoneType' object has no attribute 'get'

I am on Linux (Fedora 32) with the etesync-dav binary downloaded from GitHub:

❯ etesync-dav --version
EteSync DAV version:  0.20.4
Radicale version:  3.0.3
tasn commented 3 years ago

Could you please run etesync-dav with -D, so etesync-dav -D and then get it to fail again? It should show you a full backtrace of where it fails and I'll be able to fix it in no-time.

devurandom commented 3 years ago
[2020-09-20 11:12:10 +0200] [180807/Thread-7] [DEBUG] Request content:
<?xml version="1.0"?>
<propfind xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:CS="http://calendarserver.org/ns/" xmlns:ICAL="http://apple.com/ns/ical/">
  <prop>
    <displayname />
    <resourcetype />
    <ICAL:calendar-color />
    <C:supported-calendar-component-set />
    <current-user-privilege-set />
    <CS:getctag />
  </prop>
</propfind>
[...]
[2020-09-20 11:12:11 +0200] [180807/Thread-7] [ERROR] An exception occurred during PROPFIND request on '/<USERNAME>/': 'NoneType' object has
no attribute 'get'
Traceback (most recent call last):
  File "radicale/app/__init__.py", line 127, in __call__
  File "radicale/app/__init__.py", line 294, in _handle_request
  File "radicale/app/propfind.py", line 372, in do_PROPFIND
  File "radicale/app/propfind.py", line 65, in xml_propfind
  File "radicale/app/propfind.py", line 313, in _collect_allowed_items
  File "etesync_dav/radicale/storage.py", line 538, in discover
  File "etesync_dav/radicale/storage.py", line 255, in __init__
AttributeError: 'NoneType' object has no attribute 'get'

If you need something in addition, please tell me. I get this every few minutes, it seems to be perfectly reproducible by KDE PIM. ;)

tasn commented 3 years ago

That is just odd. I'm tempted to just offer a workaround instead of investigating it, as this part has changed in EteSync 2.0 which is really coming soon. Essentially, what seems to be going on is that for some reason the etesync object (that's in charge with communicating with the server) isn't being initialised. No idea how this could happen...

Could you maybe try stopping etesync-dav, moving over its data (mv ~/.local/share/etesync-dav{,.back}) and setting it up again? Does that fix things?

Edit: on a related note (just making sure you are aware): there is now an KDE PIM etesync module you can use directly with KDE PIM. No need for etesync-dav. https://blog.etesync.com/gsoc-2020-final-update/