pimutils / pimutils/vdirsyncer

memotoo server returned something vdirsyncer does not understand

Open
#775 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
1.9k
Forks
185
Avg merge
11h 49m
Merged PRs (30d)
1

Description

Before you submit bug reports: https://vdirsyncer.pimutils.org/en/stable/contributing.html

Things to include in your bugreport:

  • Your vdirsyncer version
    0.16.6
  • If applicable, which server software (and which version) you're using
  • Your Python version
    2.7.15 and 3.6.5
  • Your operating system
    OpenSUSE 15
  • Your config file
[general]
# A folder where vdirsyncer can store some metadata about each pair.
status_path = "~/.local/share/vdirsyncer/status/"

[pair contacts]
a = "contactsLocal"
b = "contactsRemote"
# collections = ["private", "work"]
collections = ["from b"]

# Calendars also have a color property
metadata = ["rest", "blue"]

# To resolve a conflict the following values are possible:
#   `null` - abort when collisions occur (default)
#   `"a wins"` - assume a's items to be more up-to-date
#   `"b wins"` - assume b's items to be more up-to-date
conflict_resolution = "a wins"

[storage contactsLocal]
type = "filesystem"
path = "~/.local/share/vdirsyncer/calendars/user/"
fileext = ".ics"

[storage contactsRemote]
type = "caldav"
url = "https://webdav.memotoo.com:443/cardDAV/"
username = "user"
password.fetch = ["command", "pass", "memotoo"]
  • Use vdirsyncer -vdebug for debug output. The output is sensitive, but
    please attach at least the last few lines before the error (if applicable),
    censored as necessary. This is almost always the most useful information.

The command vdirsyncer -v DEBUG discover contacts yields the output

debug: Given URL is not a homeset URL
debug: PROPFIND https://webdav.memotoo.com:443/cardDAV/
debug: {'User-Agent': 'vdirsyncer/0.16.6', 'Content-Type': 'application/xml; charset=UTF-8', 'Depth': '0'}
debug: b'\n        <d:propfind xmlns:d="DAV:">\n            <d:prop>\n                <d:current-user-principal />\n            </d:prop>\n        </d:propfind>\n        '
debug: Sending request...
debug: 207
debug: {'Date': 'Mon, 19 Nov 2018 16:54:59 GMT', 'Server': 'Apache', 'Set-Cookie': 'PHPSESSID=hqap7kab4g8dg2ilnfnjf9qes1; path=/; HttpOnly', 'X-Robots-Tag': 'noindex, nofollow', 'X-Dav-Powered-By': 'Memotoo DAV server', 'Last-modified': 'Mon, 19 Nov 2018 16:38:40 GMT', 'X-WebDAV-Status': '207 Multi-Status', 'Content-Encoding': 'gzip', 'Vary': 'Accept-Encoding', 'Content-Length': '225', 'Keep-Alive': 'timeout=5, max=19', 'Connection': 'Keep-Alive', 'Content-Type': 'text/xml; charset=UTF-8'}
debug: b'<?xml version="1.0" encoding="utf-8"?>\r\n<d:multistatus xmlns:d="DAV:">\r\n<d:response>\r\n<d:href>https://webdav.memotoo.com/cardDAV/</d:href>\r\n<d:propstat>\r\n<d:prop>\r\n</d:prop>\r\n<d:status>HTTP/1.1 200 OK</d:status>\r\n</d:propstat>\r\n<d:propstat>\r\n<d:prop>\r\n<d:current-user-principal />\r\n</d:prop>\r\n<d:status>HTTP/1.1 404 Not Found</d:status>\r\n</d:propstat>\r\n</d:response>\r\n</d:multistatus>\r\n'
debug: No current-user-principal returned, re-using URL https://webdav.memotoo.com:443/cardDAV/
debug: PROPFIND https://webdav.memotoo.com:443/cardDAV/
debug: {'User-Agent': 'vdirsyncer/0.16.6', 'Content-Type': 'application/xml; charset=UTF-8', 'Depth': '0'}
debug: b'\n    <d:propfind xmlns:d="DAV:" xmlns:c="urn:ietf:params:xml:ns:carddav">\n        <d:prop>\n            <c:addressbook-home-set />\n        </d:prop>\n    </d:propfind>\n    '
debug: Sending request...
debug: 207
debug: {'Date': 'Mon, 19 Nov 2018 16:54:59 GMT', 'Server': 'Apache', 'Set-Cookie': 'PHPSESSID=hqap7kab4g8dg2ilnfnjf9qes1; path=/; HttpOnly', 'X-Robots-Tag': 'noindex, nofollow', 'X-Dav-Powered-By': 'Memotoo DAV server', 'Last-modified': 'Mon, 19 Nov 2018 16:38:40 GMT', 'X-WebDAV-Status': '207 Multi-Status', 'Content-Encoding': 'gzip', 'Vary': 'Accept-Encoding', 'Content-Length': '246', 'Keep-Alive': 'timeout=5, max=18', 'Connection': 'Keep-Alive', 'Content-Type': 'text/xml; charset=UTF-8'}
debug: b'<?xml version="1.0" encoding="utf-8"?>\r\n<d:multistatus xmlns:d="DAV:" xmlns:ns1="urn:ietf:params:xml:ns:carddav">\r\n<d:response>\r\n<d:href>https://webdav.memotoo.com/cardDAV/</d:href>\r\n<d:propstat>\r\n<d:prop>\r\n</d:prop>\r\n<d:status>HTTP/1.1 200 OK</d:status>\r\n</d:propstat>\r\n<d:propstat>\r\n<d:prop>\r\n<ns1:addressbook-home-set />\r\n</d:prop>\r\n<d:status>HTTP/1.1 404 Not Found</d:status>\r\n</d:propstat>\r\n</d:response>\r\n</d:multistatus>\r\n'
error: The server returned something vdirsyncer doesn't understand. Error message: InvalidXMLResponse("Couldn't find home-set.",)
error: While this is most likely a serverside problem, the vdirsyncer devs are generally interested in such bugs. Please report it in the issue tracker at https://github.com/pimutils/vdirsyncer/issues
error: 1 out of 1 tasks failed.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing vdirsyncer -v DEBUG discover contacts with the supplied Memotoo configuration and inspect the addressbook-home-set response shown in the report. Compare the 404 property response with the discovery behavior that raises InvalidXMLResponse("Couldn't find home-set."); done means the server response is handled or reported appropriately.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.