calling delete folder via DBus with an invalid udf id fails but there is not broadcast of DBus error singal

Bug #583412 reported by Guillermo Gonzalez on 2010-05-20
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ubuntu One Client
Status tracked in Trunk
Stable-1-2
High
Guillermo Gonzalez
Trunk
High
Guillermo Gonzalez
ubuntuone-client (Ubuntu)
High
Ubuntu One Client Engineering team
Lucid
Undecided
Unassigned

Bug Description

if DBus exposed Folders.delete is called with a non-existent/invalid folder id, the error/failure signal isn't broadcasted via DBus

-------------------------

TEST CASE:

u1sdtool --delete-folder=invalid-id

Result: u1sdtool hangs forever
Expected result: u1sdtool returns error: FolderDeleteError: DOES_NOT_EXIST (volume_id=invalid-id)

-------------------------

Here is the log of a test:

guillermo@naug:~/$ DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-kHzQHKyGAY,guid=6899de014c95a809a352e0f94bf55de7 dbus-send --print-reply --session --dest=com.ubuntuone.SyncDaemon --type=method_call /folders com.ubuntuone.SyncDaemon.Folders.delete string:''

2010-05-20 13:09:58,989 - ubuntuone.SyncDaemon.DBus - DEBUG - Folders.delete: dbus.String(u'')
2010-05-20 13:09:58,990 - ubuntuone.SyncDaemon.VM - INFO - delete_volume: dbus.String(u'')
2010-05-20 13:09:58,990 - ubuntuone.SyncDaemon.ActionQueue - DEBUG - DeleteVolume share:--- node:--- DeleteVolume() queueing in the %s META_QUEUE
2010-05-20 13:09:58,991 - ubuntuone.SyncDaemon.EQ - DEBUG - push_event: SYS_META_QUEUE_WAITING, args:(), kw:{}
2010-05-20 13:09:58,991 - ubuntuone.SyncDaemon.StateManager - DEBUG - received event 'SYS_META_QUEUE_WAITING'
2010-05-20 13:09:58,991 - ubuntuone.SyncDaemon.StateManager - DEBUG - sending event to QueueManager
2010-05-20 13:09:58,991 - ubuntuone.SyncDaemon.QueueManager - DEBUG - Changing state IDLE -> WORKING_ON_METADATA
2010-05-20 13:09:58,992 - ubuntuone.SyncDaemon.QueueManager - DEBUG - In WORKING_ON_METADATA: running META_QUEUE
2010-05-20 13:09:58,992 - ubuntuone.SyncDaemon.ActionQueue - DEBUG - DeleteVolume share:--- node:--- DeleteVolume() starting
2010-05-20 13:09:58,992 - ubuntuone.SyncDaemon.ActionQueue - DEBUG - DeleteVolume share:--- node:--- DeleteVolume() running
2010-05-20 13:09:58,994 - ubuntuone.SyncDaemon.EQ - DEBUG - push_event: SYS_STATE_CHANGED, args:(), kw:{'state': QUEUE_MANAGER (error=False connected=True online=True) Queue: WORKING_ON_METADATA Connection: With User With Network}
method return sender=:1.0 -> dest=:1.15 reply_serial=2
guillermo@naug:~/canonical/ubuntuone/current$ 2010-05-20 13:09:59,056 - ubuntuone.SyncDaemon.ActionQueue - WARNING - DeleteVolume share:--- node:--- DeleteVolume() failure NO_PERMISSION
2010-05-20 13:09:59,056 - ubuntuone.SyncDaemon.ActionQueue - DEBUG - DeleteVolume share:--- node:--- DeleteVolume() cleanup
2010-05-20 13:09:59,057 - ubuntuone.SyncDaemon.EQ - DEBUG - push_event: AQ_DELETE_VOLUME_ERROR, args:(), kw:{'error': 'NO_PERMISSION', 'volume_id': ''}
2010-05-20 13:09:59,057 - ubuntuone.SyncDaemon.EQ - DEBUG - push_event: VM_VOLUME_DELETE_ERROR, args:('', 'NO_PERMISSION'), kw:{}
2010-05-20 13:09:59,057 - ubuntuone.SyncDaemon.DBus - ERROR - Unable to handle VM_VOLUME_DELETE_ERROR for volume_id=u'' as it's not a share or UDF

The DBusInterface should hanlde this case and broadcast the error/faiure signal, as the client will probably wait for a success/failure response.

Related branches

Changed in ubuntuone-client (Ubuntu):
status: New → Confirmed
importance: Undecided → High
assignee: nobody → Ubuntu One Desktop+ team (ubuntuone-desktop+)
Changed in ubuntuone-client:
status: Confirmed → In Progress
tags: added: u1-lucid-sru
description: updated
description: updated

Accepted ubuntuone-client into lucid-proposed, the package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Changed in ubuntuone-client (Ubuntu Lucid):
status: New → Fix Committed
tags: added: verification-needed
Joshua Hoover (joshuahoover) wrote :

Test case passed with 1.2.2-0ubuntu2 proposed installed.

Martin Pitt (pitti) wrote :

Since it was fixed in trunk a while ago, I assume that maverick's current version (1.3.2) has the fix as well. Closing all the maverick tasks.

Changed in ubuntuone-client (Ubuntu):
status: Confirmed → Fix Released
tags: added: verification-done
removed: verification-needed
Martin Pitt (pitti) wrote :

ubuntuone-client (1.2.2-0ubuntu1) lucid-proposed; urgency=low

  * New upstream release.
    - Properly handle valid UTF-8 non-ASCII names for UDFs (LP: #557160)
    - Fix nautilus crash when running u1sdtool --subscribe-folder (LP: #570261)
    - Cannot reactivate "File sync" on services tab (LP: #570721)
    - Retry interrupted uploads (LP: #575817)
    - Improve logging at INFO level (LP: #578248)
    - u1sdtool --delete-folder with invalid id hangs (LP: #583412)
    - ubuntuone-syncdaemon crashed with OSError (LP: #452682)
    - ubuntuone-preferences "Got empty result for devices list." (LP: #576263)
  * Rmmove fix-571548.patch and fix-567223.patch; included upstream now.
 -- Rodney Dawes <email address hidden> Wed, 16 Jun 2010 13:42:32 -0400

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

Other bug subscribers