LR is putting non-utf8 paths into SD

Bug #696901 reported by John Lenton on 2011-01-03
128
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Ubuntu One Client
High
Facundo Batista
ubuntuone-client (Ubuntu)
High
dobey

Bug Description

<facundobatista> there's the notification error, but the problem is that LocalRescan is breaking itself by entering invalid paths into SD
<rye> facundobatista, so, if LR hadn't placed that filename to sd then notification would not have broken the SYS_CONNECT_MADE (in the 822226 report), am I correct?
<facundobatista> rye, yes, but most important, LR would be continued ok

Related branches

John Lenton (chipaca) on 2011-01-03
visibility: public → private
Changed in ubuntuone-client:
status: New → Confirmed
importance: Undecided → High
assignee: nobody → Facundo Batista (facundo)
tags: added: chicharra chicharra-natty
Facundo Batista (facundo) wrote :

The one that should check if the path is valid is LocalRescan.

It can't be done in the signals processors (that are close to real validation, in the freeze_commit stage).

The reason for this is that if LR finds an invalid path it needs to ignore it; in files there is no problem, but for directories it shouldn't scan that directory later.

tags: added: chicharra-oneiric
removed: chicharra-natty
Roman Yepishev (rye) wrote :
Download full text (4.3 KiB)

This bug causes notification subsystem break the connection procedure:

2011-08-08 13:45:47,585 - ubuntuone.SyncDaemon.sync - ERROR - T:NONE:F 195f1596-0577-4015-af4b-170fb01e6fff ['root'::marker:195f1596-0577-4015-af4b-170fb01e6fff] ''Ubuntu One/\xef\
xf0\xe8\xe2\xe5\xf2.txt'' | Executing ACTION_FUNC 'new_local_file' gave an exception: UnicodeDecodeError('utf8', '\xef\xf0\xe8\xe2\xe5\xf2.txt', 0, 1, 'invalid continuation byte')
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/ubuntuone-client/ubuntuone/syncdaemon/fsm/fsm.py", line 137, in on_event
    af(event_name, parameters, *args)
  File "/usr/lib/pymodules/python2.7/ubuntuone-client/ubuntuone/syncdaemon/sync.py", line 534, in new_local_file
    self.m.action_q.make_file(share_id, parent_id, name, marker, path)
  File "/usr/lib/pymodules/python2.7/ubuntuone-client/ubuntuone/syncdaemon/action_queue.py", line 1023, in make_file
    name, marker, path).go()
  File "/usr/lib/pymodules/python2.7/ubuntuone-client/ubuntuone/syncdaemon/action_queue.py", line 1421, in __init__
    self.name = name.decode("utf8")
  File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xef in position 0: invalid continuation byte
2011-08-08 13:45:47,612 - ubuntuone.SyncDaemon.EQ - ERROR - Error encountered while handling: SYS_QUEUE_ADDED in <ubuntuone.syncdaemon.interaction_interfaces.SyncdaemonEventListene
r object at 0x31af7d0>
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/ubuntuone-client/ubuntuone/syncdaemon/event_queue.py", line 287, in _dispatch
    method(**kwargs)
  File "/usr/lib/pymodules/python2.7/ubuntuone-client/ubuntuone/syncdaemon/interaction_interfaces.py", line 1117, in handle_SYS_QUEUE_ADDED
    self.interface.status.emit_requestqueue_added(op_name, op_id, data)
  File "/usr/lib/pymodules/python2.7/ubuntuone-client/ubuntuone/platform/linux/dbus_interface.py", line 389, in emit_requestqueue_added
    self.RequestQueueAdded(op_name, str(op_id), data)
  File "/usr/lib/pymodules/python2.7/dbus/decorators.py", line 309, in emit_signal
    message.append(signature=signature, *args)
UnicodeError: String parameters to be sent over D-Bus must be valid UTF-8
...
2011-08-08 13:45:53,165 - dbus.service - ERROR - Unable to append ([('Upload', '124857576', {'share_id': '', 'hash': 'sha1:da39a3ee5e6b4b0d3255bfef95601890afd80709', 'running': '', 'node_id': 'marker:195f1596-0577-4015-af4b-170fb01e6fff', 'upload_id': 'None', 'crc32': '0', 'path': '/home/rtg/Ubuntu One/\xef\xf0\xe8\xe2\xe5\xf2.txt', 'previous_hash': '', 'size': '0'})],) to message with signature a(ssa{ss}): <type 'exceptions.UnicodeError'>: String parameters to be sent over D-Bus must be valid UTF-8
2011-08-08 13:45:53,230 - ubuntuone.SyncDaemon.EQ - ERROR - Error encountered while handling: SYS_CONNECTION_MADE in <ubuntuone.syncdaemon.status_listener.StatusListener object at 0x6e37450>
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/ubuntuone-client/ubuntuone/syncdaemon/event_queue.py", line 287, in _dispatch
    method(**kwargs)
  File "/usr/lib/pymodules/python2...

Read more...

visibility: private → public
description: updated
Changed in ubuntuone-client:
status: Confirmed → In Progress
Changed in ubuntuone-client:
status: In Progress → Fix Committed
dobey (dobey) on 2011-09-27
Changed in ubuntuone-client:
milestone: none → 2.0.0
dobey (dobey) on 2011-09-27
Changed in ubuntuone-client (Ubuntu):
assignee: nobody → Rodney Dawes (dobey)
importance: Undecided → High
status: New → In Progress
milestone: none → ubuntu-11.10
dobey (dobey) on 2011-09-27
Changed in ubuntuone-client:
status: Fix Committed → Fix Released
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ubuntuone-client - 2.0.0-0ubuntu1

---------------
ubuntuone-client (2.0.0-0ubuntu1) oneiric; urgency=low

  * New upstream release.
    - No watches needed on parent folders (LP: #838111)
    - Root is always subscribed (LP: #842839)
    - Unicode path asserts failing (LP: #845009)
    - Local Rescan is putting non-UTF8 paths into syncdaemon (LP: #696901)
    - IOError in tritcask metadata (LP: #776386)
    - Missinglogin_email_password on Linux (LP: #831043)
    - Unsubscribing share and deleting content triggers unlinks (LP: #820353)
    - Only make the link if it doesn't exist (LP: #833812)
    - Client restarts on SSL connection error (LP: #833388)
    - Stop logging sensitive data (LP: #837488)
    - Add delay to the hash queue (LP: #838104)
    - Crash if no keydir stats for inactive file (LP: #848224)
    - Use correct desktop file for launcher progress bar (LP: #851187)
    - Folder nesting check is incorrect (LP: #854776)
    - Should have a --version switch for u1sdtool (LP: #379841)
  * debian/control:
    - Update versions of some dependencies to be more correct
    - Recommend ubuntuone-installer needed for Unity launcher integration
 -- Rodney Dawes <email address hidden> Tue, 27 Sep 2011 11:18:41 -0400

Changed in ubuntuone-client (Ubuntu):
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers