[tahoe-lafs-trac-stream] [Tahoe-LAFS] #2268: on Unix, in case of a FilenameEncodingError, suggest changing the LANG environment variable

Tahoe-LAFS trac at tahoe-lafs.org
Wed Jul 30 15:42:12 UTC 2014


#2268: on Unix, in case of a FilenameEncodingError, suggest changing the LANG
environment variable
---------------------------------+-----------------------------------------
     Reporter:  daira            |      Owner:
         Type:  enhancement      |     Status:  new
     Priority:  normal           |  Milestone:  undecided
    Component:  code-frontend-   |    Version:  1.10.0
  cli                            |   Keywords:  cli error unicode unix easy
   Resolution:                   |
Launchpad Bug:                   |
---------------------------------+-----------------------------------------
Changes (by daira):

 * keywords:  cli error unicode unix => cli error unicode unix easy


Old description:

> Alexander Kaufman wrote:
> >     I wanted to let you know that "tahoe cp" on "Дядя Ваня (1970).avi"
> results in an error:
> >
> >     tahoe --version
> >     allmydata-tahoe: 1.10.0
> >     foolscap: 0.6.4
> >     pycryptopp: 0.6.0.1206569328141510525648634803928199668821045408958
> >     zfec: 1.4.24
> >     Twisted: 14.0.0
> >     Nevow: 0.10.0
> >     zope.interface: unknown
> >     python: 2.7.8
> >     platform: Linux-Arch_Linux_-x86_64-64bit_ELF
> >     pyOpenSSL: 0.14
> >     simplejson: 3.4.0
> >     pycrypto: 2.6.1
> >     pyasn1: 0.1.7
> >     mock: 1.0.1
> >     setuptools: 5.4.1
> >
> >     Traceback (most recent call last):
> >     File "/usr/lib/python2.7/site-
> packages/allmydata/scripts/runner.py", line 156, in run
> >     rc = runner(sys.argv[1:],
> install_node_control=install_node_control)
> >     File "/usr/lib/python2.7/site-
> packages/allmydata/scripts/runner.py", line 141, in runner
> >     rc = cli.dispatch[command](so)
> >     File "/usr/lib/python2.7/site-packages/allmydata/scripts/cli.py",
> line 551, in cp
> >     rc = tahoe_cp.copy(options)
> >     File "/usr/lib/python2.7/site-
> packages/allmydata/scripts/tahoe_cp.py", line 770, in copy
> >     return Copier().do_copy(options)
> >     File "/usr/lib/python2.7/site-
> packages/allmydata/scripts/tahoe_cp.py", line 451, in do_copy
> >     status = self.try_copy()
> >     File "/usr/lib/python2.7/site-
> packages/allmydata/scripts/tahoe_cp.py", line 512, in try_copy
> >     return self.copy_to_directory(sources, target)
> >     File "/usr/lib/python2.7/site-
> packages/allmydata/scripts/tahoe_cp.py", line 616, in copy_to_directory
> >     source_dirs = self.build_graphs(source_infos)
> >     File "/usr/lib/python2.7/site-
> packages/allmydata/scripts/tahoe_cp.py", line 764, in build_graphs
> >     source.populate(True)
> >     File "/usr/lib/python2.7/site-
> packages/allmydata/scripts/tahoe_cp.py", line 112, in populate
> >     child.populate(True)
> >     File "/usr/lib/python2.7/site-
> packages/allmydata/scripts/tahoe_cp.py", line 104, in populate
> >     children = listdir_unicode(self.pathname)
> >     File "/usr/lib/python2.7/site-
> packages/allmydata/util/encodingutil.py", line 279, in listdir_unicode
> >     return listdir_unicode_fallback(path)
> >     File "/usr/lib/python2.7/site-
> packages/allmydata/util/encodingutil.py", line 264, in
> listdir_unicode_fallback
> >     raise FilenameEncodingError(fn)
> >     FilenameEncodingError: ������������(1970).avi
> [...]
> >     The above happens when LANG=C and is fixed with
> >     export LANG=en_US.UTF-8
>
> In general the correct encoding for `LANG` is not necessarily UTF-8; it
> is whatever the filesystem uses. The error message should say this.

New description:

 Alexander Kaufman wrote:
 >     I wanted to let you know that "tahoe cp" on "Дядя Ваня (1970).avi"
 results in an error:
 >
 >     tahoe --version
 >     allmydata-tahoe: 1.10.0
 >     foolscap: 0.6.4
 >     pycryptopp: 0.6.0.1206569328141510525648634803928199668821045408958
 >     zfec: 1.4.24
 >     Twisted: 14.0.0
 >     Nevow: 0.10.0
 >     zope.interface: unknown
 >     python: 2.7.8
 >     platform: Linux-Arch_Linux_-x86_64-64bit_ELF
 >     pyOpenSSL: 0.14
 >     simplejson: 3.4.0
 >     pycrypto: 2.6.1
 >     pyasn1: 0.1.7
 >     mock: 1.0.1
 >     setuptools: 5.4.1
 >
 >     Traceback (most recent call last):
 >     File "/usr/lib/python2.7/site-packages/allmydata/scripts/runner.py",
 line 156, in run
 >     rc = runner(sys.argv[1:], install_node_control=install_node_control)
 >     File "/usr/lib/python2.7/site-packages/allmydata/scripts/runner.py",
 line 141, in runner
 >     rc = cli.dispatch[command](so)
 >     File "/usr/lib/python2.7/site-packages/allmydata/scripts/cli.py",
 line 551, in cp
 >     rc = tahoe_cp.copy(options)
 >     File "/usr/lib/python2.7/site-
 packages/allmydata/scripts/tahoe_cp.py", line 770, in copy
 >     return Copier().do_copy(options)
 >     File "/usr/lib/python2.7/site-
 packages/allmydata/scripts/tahoe_cp.py", line 451, in do_copy
 >     status = self.try_copy()
 >     File "/usr/lib/python2.7/site-
 packages/allmydata/scripts/tahoe_cp.py", line 512, in try_copy
 >     return self.copy_to_directory(sources, target)
 >     File "/usr/lib/python2.7/site-
 packages/allmydata/scripts/tahoe_cp.py", line 616, in copy_to_directory
 >     source_dirs = self.build_graphs(source_infos)
 >     File "/usr/lib/python2.7/site-
 packages/allmydata/scripts/tahoe_cp.py", line 764, in build_graphs
 >     source.populate(True)
 >     File "/usr/lib/python2.7/site-
 packages/allmydata/scripts/tahoe_cp.py", line 112, in populate
 >     child.populate(True)
 >     File "/usr/lib/python2.7/site-
 packages/allmydata/scripts/tahoe_cp.py", line 104, in populate
 >     children = listdir_unicode(self.pathname)
 >     File "/usr/lib/python2.7/site-
 packages/allmydata/util/encodingutil.py", line 279, in listdir_unicode
 >     return listdir_unicode_fallback(path)
 >     File "/usr/lib/python2.7/site-
 packages/allmydata/util/encodingutil.py", line 264, in
 listdir_unicode_fallback
 >     raise !FilenameEncodingError(fn)
 >     !FilenameEncodingError: ������������(1970).avi
 [...]
 >     The above happens when LANG=C and is fixed with
 >     export LANG=en_US.UTF-8

 In general the correct encoding for `LANG` is not necessarily UTF-8; it is
 whatever the filesystem uses. The error message should say this.

--

--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2268#comment:1>
Tahoe-LAFS <https://Tahoe-LAFS.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list