New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CalDAV sync: Created filename exceeds filesystems boundaries #173

Closed
moritzheiber opened this Issue Jan 30, 2015 · 6 comments

Comments

Projects
None yet
2 participants
@moritzheiber

moritzheiber commented Jan 30, 2015

I'm using Linux on an ext4 filesystem. The filename length boundaries for it are 255 characters. Unfortunately, vdirsyncer is attempting to create .ics files with filenames longer than that when I try to sync my calendars:

Copying (uploading) item 80462778A326E04EBD831336D01F2A2F8CDA0FE60196F740BA7BD88203154998040000008200E00074C5B7101A82E00800000000305B620B76CACE01000000000000000010000000 to local/default
Unhandled exception occured while syncing default.
Traceback (most recent call last):
  File "vdirsyncer/env/local/lib/python2.7/site-packages/vdirsyncer/cli/tasks.py", line 77, in sync_collection
    force_delete=force_delete
  File "vdirsyncer/env/local/lib/python2.7/site-packages/vdirsyncer/sync.py", line 180, in sync
    action(storages, status, conflict_resolution)
  File "vdirsyncer/env/local/lib/python2.7/site-packages/vdirsyncer/sync.py", line 204, in inner
    dest_href, dest_etag = dest_storage.upload(item)
  File "vdirsyncer/env/local/lib/python2.7/site-packages/vdirsyncer/storage/base.py", line 23, in inner
    return f(self, *args, **kwargs)
  File "vdirsyncer/env/local/lib/python2.7/site-packages/vdirsyncer/storage/filesystem.py", line 110, in upload
    with safe_write(fpath, 'wb+') as f:
  File "vdirsyncer/env/local/lib/python2.7/site-packages/vdirsyncer/utils/__init__.py", line 265, in __enter__
    self.f = f = open(self.tmppath, self.mode)
IOError: [Errno 36] File name too long: u'vdirsyncer/calendars/default/80462778A326E04EBD831336D01F2A2F8CDA0FE60196F740BA7BD88203154998040000008200E00074C5B7101A82E00800000000305B620B76CACE01000000000000000010000000.ics.tmp'
$ vdirsyncer --version
vdirsyncer, version 0.4.1

How would one go about fixing this?

Note: I removed some private information (mainly paths) from the output

untitaker added a commit that referenced this issue Jan 30, 2015

@untitaker

This comment has been minimized.

Member

untitaker commented Jan 30, 2015

The git version should fix this. Could you try with:

pip install --force-reinstall git+https://github.com/untitaker/vdirsyncer.git
@untitaker

This comment has been minimized.

Member

untitaker commented Jan 30, 2015

Also, I am wondering which program created the items with such long UIDs? The PRODID property inside the .ics files should tell.

@moritzheiber

This comment has been minimized.

moritzheiber commented Jan 30, 2015

Which I can't give you since the file isn't being created ;)

Trying the git version now.

@untitaker

This comment has been minimized.

Member

untitaker commented Jan 30, 2015

Of course, but in case the git version works, you can :)

@moritzheiber

This comment has been minimized.

moritzheiber commented Jan 30, 2015

It worked! And most of the entries seem to be coming from Thunderbird/"Mozilla Calendar".

We can close this issue though, using the git version fixes it.

untitaker added a commit that referenced this issue Jan 30, 2015

@untitaker

This comment has been minimized.

Member

untitaker commented Jan 30, 2015

0.4.2 is released.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment