LR is putting non-utf8 paths into SD

Bug #696901 reported by John Lenton
128
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Ubuntu One Client
Fix Released
High
Facundo Batista
ubuntuone-client (Ubuntu)
Fix Released
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)
visibility: public → private
Changed in ubuntuone-client:
status: New → Confirmed
importance: Undecided → High
assignee: nobody → Facundo Batista (facundo)
tags: added: chicharra chicharra-natty
Revision history for this message
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
Revision history for this message
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)
Changed in ubuntuone-client:
milestone: none → 2.0.0
dobey (dobey)
Changed in ubuntuone-client (Ubuntu):
assignee: nobody → Rodney Dawes (dobey)
importance: Undecided → High
status: New → In Progress
milestone: none → ubuntu-11.10
dobey (dobey)
Changed in ubuntuone-client:
status: Fix Committed → Fix Released
Revision history for this message
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  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.