Project

General

Profile

Actions

Bug #3871

closed

[FUSE] Crashes on non-ASCII folder names

Added by Brett Smith over 9 years ago. Updated over 9 years ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
Keep
Target version:
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 2 (0 open2 closed)

Task #3904: Encode/decode filenames as utf-8ResolvedPeter Amstutz09/15/2014Actions
Task #4007: Review 3871-non-ascii-project-namesResolvedPeter Amstutz09/15/2014Actions
Actions #1

Updated by Brett Smith over 9 years ago

  • Target version set to Bug Triage
Actions #2

Updated by Tom Clegg over 9 years ago

  • Story points set to 1.0
Actions #3

Updated by Tom Clegg over 9 years ago

  • Description updated (diff)
Actions #4

Updated by Tom Clegg over 9 years ago

  • Target version changed from Bug Triage to Arvados Future Sprints
Actions #5

Updated by Tom Clegg over 9 years ago

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

Updated by Peter Amstutz over 9 years ago

  • Assigned To set to Peter Amstutz
Actions #7

Updated by Peter Amstutz over 9 years ago

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

Actions #8

Updated by Brett Smith over 9 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.

Actions #9

Updated by Brett Smith over 9 years ago

9756d91 looks great. Thanks.

Actions #10

Updated by Anonymous over 9 years ago

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

Applied in changeset arvados|commit:093bae4c914a872c501c3235f06096092725f015.

Actions

Also available in: Atom PDF