This bug is back for me in Natty, maybe it appeared again after the transition to Python 2.7.
I have a folder in my Ubuntu One space called "Blekinge Tekniska Högskola" (please note the umlaut).
Now Ubuntu One is not synchronizing at all, because it bails out with:
matteo@orchid:~/.cache$ /usr/lib/ubuntuone-client/ubuntuone-syncdaemon/usr/lib/pymodules/python2.7/ubuntuone/syncdaemon/filesystem_manager.py:581: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
if path[:len_base] == base_path and sep not in path[len_base:]:
Unhandled error in Deferred:
Traceback (most recent call last):
File "/usr/lib/pymodules/python2.7/ubuntuone/syncdaemon/local_rescan.py", line 337, in _scan_tree
d.addCallbacks(self._scan_one_dir)
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 249, in addCallbacks
self._runCallbacks()
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 441, in _runCallbacks
self.result = callback(self.result, *args, **kw)
File "/usr/lib/pymodules/python2.7/ubuntuone/syncdaemon/local_rescan.py", line 679, in _scan_one_dir
d = defer.execute(scan)
--- <exception caught here> ---
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 96, in execute
result = callable(*args, **kw)
File "/usr/lib/pymodules/python2.7/ubuntuone/syncdaemon/local_rescan.py", line 639, in scan
share)
File "/usr/lib/pymodules/python2.7/ubuntuone/syncdaemon/local_rescan.py", line 528, in _compare
objs = self.fsm.get_mdobjs_by_share_id(share.volume_id, fullname)
File "/usr/lib/pymodules/python2.7/ubuntuone/syncdaemon/filesystem_manager.py", line 567, in get_mdobjs_by_share_id
if path.startswith(base_path):
exceptions.UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 43: ordinal not in range(128)
My guess is that some variable which should be unicode-aware (base_path, by the look of it?) is in fact passed a bytestring.
I tried to debug this a little, but since I am not a Python developer I stopped after hitting that line 567 in filesystem_manager.py with a breakpoint.
I have other filenames with UTF-8 characters, so renaming all of them would be quite a pain. Plus, it is supposed to work, right?
I am using the it_IT.UTF8 locale, if that helps.
This bug is back for me in Natty, maybe it appeared again after the transition to Python 2.7.
I have a folder in my Ubuntu One space called "Blekinge Tekniska Högskola" (please note the umlaut).
Now Ubuntu One is not synchronizing at all, because it bails out with:
matteo@ orchid: ~/.cache$ /usr/lib/ ubuntuone- client/ ubuntuone- syncdaemon/ usr/lib/ pymodules/ python2. 7/ubuntuone/ syncdaemon/ filesystem_ manager. py:581: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal pymodules/ python2. 7/ubuntuone/ syncdaemon/ local_rescan. py", line 337, in _scan_tree cks(self. _scan_one_ dir) python2. 7/dist- packages/ twisted/ internet/ defer.py" , line 249, in addCallbacks _runCallbacks( ) python2. 7/dist- packages/ twisted/ internet/ defer.py" , line 441, in _runCallbacks self.result, *args, **kw) pymodules/ python2. 7/ubuntuone/ syncdaemon/ local_rescan. py", line 679, in _scan_one_dir python2. 7/dist- packages/ twisted/ internet/ defer.py" , line 96, in execute pymodules/ python2. 7/ubuntuone/ syncdaemon/ local_rescan. py", line 639, in scan pymodules/ python2. 7/ubuntuone/ syncdaemon/ local_rescan. py", line 528, in _compare get_mdobjs_ by_share_ id(share. volume_ id, fullname) pymodules/ python2. 7/ubuntuone/ syncdaemon/ filesystem_ manager. py", line 567, in get_mdobjs_ by_share_ id (base_path) : UnicodeDecodeEr ror: 'ascii' codec can't decode byte 0xc3 in position 43: ordinal not in range(128)
if path[:len_base] == base_path and sep not in path[len_base:]:
Unhandled error in Deferred:
Traceback (most recent call last):
File "/usr/lib/
d.addCallba
File "/usr/lib/
self.
File "/usr/lib/
self.result = callback(
File "/usr/lib/
d = defer.execute(scan)
--- <exception caught here> ---
File "/usr/lib/
result = callable(*args, **kw)
File "/usr/lib/
share)
File "/usr/lib/
objs = self.fsm.
File "/usr/lib/
if path.startswith
exceptions.
My guess is that some variable which should be unicode-aware (base_path, by the look of it?) is in fact passed a bytestring. manager. py with a breakpoint.
I tried to debug this a little, but since I am not a Python developer I stopped after hitting that line 567 in filesystem_
I have other filenames with UTF-8 characters, so renaming all of them would be quite a pain. Plus, it is supposed to work, right?
I am using the it_IT.UTF8 locale, if that helps.