Smart hangs forever when trying to install package as regular user

Bug #397743 reported by David Smid
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Smart Package Manager
Fix Released
Undecided
Unassigned

Bug Description

Smart 1.2 hangs forever when trying to install package as regular user:

-----------------------------------------------------
[unity@cml ~]$ smart install DoAsRoot
Loading cache...
Updating cache... ######################################## [100%]

Computing transaction...

Installing packages (1):
DoAsRoot-1.0.0-2@i586

3.2kB of package files are needed. 1.3kB will be used.

Confirm changes? (Y/n):

Fetching packages...
-----------------------------------------------------

Similar behaviour in Smart GUI.

This is caused by bug in PyCurlHandler.
When tick() method finds out that it has not enough permissions to create file, it just sets the failure info but leaves the handle in handler's active downloads list - this causes the method to return True, meaning there are still active or queued downloads.
But the download is removed from waiting downloads queue before trying to create file and never makes it to pycurl multi queue.
The result is, the download is in twilight zone - not in waiting queue and also not in pycurl multi queue.
tick() then keeps returning True forever and the handler is never removed from active handlers list by Fetcher.run() method.

See attached patch for fix.

Revision history for this message
David Smid (dsmid) wrote :
Changed in smart:
milestone: none → 1.3.1
status: New → Confirmed
Changed in smart:
status: Confirmed → Fix Committed
Changed in smart:
status: Fix Committed → Fix Released
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.