Bug #3871

[FUSE] Crashes on non-ASCII folder names

Added by Brett Smith almost 5 years ago. Updated almost 5 years ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
Keep
Target version:
Start date:
09/15/2014
Due date:
% Done:

50%

Estimated time:
(Total: 0.00 h)
Story points:
1.0

Description

As a qr1hi admin, with a default Keep mount, trying to ls the shared subdirectory, I get this backtrace:

2014-09-15 17:32:40 arvados.arv-mount[2309] ERROR: arv-mount: exception during mount
Traceback (most recent call last):
  File "/data/brett/3147-retries/venv/3147/lib/python2.7/site-packages/arvados_fuse-0.1.1410798328.79e5603-py2.7.egg/EGG-INFO/scripts/arv-mount", line 185, in <module>
    llfuse.main()
  File "fuse_api.pxi", line 312, in llfuse.capi.main (src/llfuse/capi_linux.c:21095)
  File "handlers.pxi", line 406, in llfuse.capi.fuse_readdir (src/llfuse/capi_linux.c:10556)
  File "handlers.pxi", line 410, in llfuse.capi.fuse_readdir (src/llfuse/capi_linux.c:10448)
UnicodeEncodeError: 'ascii' codec can't encode character u'\u0161' in position 5: ordinal not in range(128)

Ideally, we have a working translation for any name that can possibly be in the database. But in cases (if any) where that's hard or impossible, we should do something like ignore/hide the affected objects or show them as if name were uuid, instead of crashing.


Subtasks

Task #3904: Encode/decode filenames as utf-8ResolvedPeter Amstutz

Task #4007: Review 3871-non-ascii-project-namesResolvedPeter Amstutz

Associated revisions

Revision 093bae4c
Added by Peter Amstutz almost 5 years ago

Merge branch '3871-non-ascii-project-names' closes #3871

History

#1 Updated by Brett Smith almost 5 years ago

  • Target version set to Bug Triage

#2 Updated by Tom Clegg almost 5 years ago

  • Story points set to 1.0

#3 Updated by Tom Clegg almost 5 years ago

  • Description updated (diff)

#4 Updated by Tom Clegg almost 5 years ago

  • Target version changed from Bug Triage to Arvados Future Sprints

#5 Updated by Tom Clegg almost 5 years ago

  • Target version changed from Arvados Future Sprints to 2014-10-08 sprint

#6 Updated by Peter Amstutz almost 5 years ago

  • Assigned To set to Peter Amstutz

#7 Updated by Peter Amstutz almost 5 years ago

After some research, it looks like we need to do .encode('utf-8') on the filename strings returned to llfuse.

#8 Updated by Brett Smith almost 5 years ago

Peter Amstutz wrote:

After some research, it looks like we need to do .encode('utf-8') on the filename strings returned to llfuse.

We shouldn't assume that the client is using UTF-8. As discussed in the office, let's have arv-mount take this as an option, and suppress entries it can't encode. You might want to pydoc str.encode to read about the errors argument to see your options for dealing with that.

#9 Updated by Brett Smith almost 5 years ago

9756d91 looks great. Thanks.

#10 Updated by Anonymous almost 5 years ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 100

Applied in changeset arvados|commit:093bae4c914a872c501c3235f06096092725f015.

Also available in: Atom PDF