Broken node Exceptions raised after metadata is deleted from a move.

Bug #739688 reported by John O'Brien
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Ubuntu One Client
Fix Released
High
Alejandro J. Cura

Bug Description

The node referenced in code in handle_SV_FILE_DELETED will no longer exist in some cases because the client was doing a move.

Here is the traceback created while gedit was saving a file which does a move/copy/delete.

2011-03-21 11:20:59,253 - ubuntuone.SyncDaemon.sync - INFO - handle_AQ_DELTA_OK for volume . (2 items)
2011-03-21 11:20:59,254 - ubuntuone.SyncDaemon.sync - ERROR - Node delta for :d809c009-acb7-40c3-8ff1-5adf102436cf can't be applied.
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.6/ubuntuone-client/ubuntuone/syncdaemon/sync.py", line 1092, in handle_AQ_DELTA_OK
    is_dir)
  File "/usr/lib/pymodules/python2.6/ubuntuone-client/ubuntuone/syncdaemon/sync.py", line 859, in _handle_SV_FILE_DELETED
    path = key["path"]
  File "/usr/lib/pymodules/python2.6/ubuntuone-client/ubuntuone/syncdaemon/sync.py", line 95, in __getitem__
    return self.get(key)
  File "/usr/lib/pymodules/python2.6/ubuntuone-client/ubuntuone/syncdaemon/sync.py", line 74, in get
    mdid = self.get_mdid()
  File "/usr/lib/pymodules/python2.6/ubuntuone-client/ubuntuone/syncdaemon/sync.py", line 64, in get_mdid
    self.keys["node_id"]]
  File "/usr/lib/pymodules/python2.6/ubuntuone-client/ubuntuone/syncdaemon/filesystem_manager.py", line 181, in __getitem__
    return dict.__getitem__(self, key)
KeyError: ('', 'd809c009-acb7-40c3-8ff1-5adf102436cf')

Related branches

Changed in ubuntuone-client:
status: New → Fix Committed
dobey (dobey)
Changed in ubuntuone-client:
status: Fix Committed → Fix Released
Revision history for this message
Chris Bainbridge (chris-bainbridge) wrote :

It looks like this isn't fixed:

2012-02-16 12:50:17,622 - ubuntuone.SyncDaemon.sync - ERROR - Node delta for :efc92ff9-459f-4dd3-9989-7b61b4883478 can't be applied.
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/ubuntuone-client/ubuntuone/syncdaemon/sync.py", line 1188, in handle_AQ_DELTA_OK
    node = self._handle_SV_DIR_NEW(*args)
  File "/usr/lib/python2.7/dist-packages/ubuntuone-client/ubuntuone/syncdaemon/sync.py", line 896, in _handle_SV_DIR_NEW
    path = os.path.join(parent["path"], name)
  File "/usr/lib/python2.7/dist-packages/ubuntuone-client/ubuntuone/syncdaemon/sync.py", line 98, in __getitem__
    return self.get(key)
  File "/usr/lib/python2.7/dist-packages/ubuntuone-client/ubuntuone/syncdaemon/sync.py", line 77, in get
    mdid = self.get_mdid()
  File "/usr/lib/python2.7/dist-packages/ubuntuone-client/ubuntuone/syncdaemon/sync.py", line 67, in get_mdid
    self.keys["node_id"]]
  File "/usr/lib/python2.7/dist-packages/ubuntuone-client/ubuntuone/syncdaemon/filesystem_manager.py", line 192, in __getitem__
    return dict.__getitem__(self, key)
KeyError: ('', 'eae5aca7-3470-46b9-980c-2fbff570a934')

rest of log at https://bugs.launchpad.net/ubuntu/+source/ubuntuone-client/+bug/872924/+attachment/2745364/+files/syncdaemon-exceptions.log

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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