2012-09-28 20:42:37 |
Andrew Starr-Bochicchio |
description |
Changes in Twisted cause Deluge's connection manager to not launch on start up. This is in Twisted 12 in quantal and also in precise as we backported the changes to Gtk2Reactor in a patch to Twisted 11.
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 413, in fireEvent
DeferredList(beforeResults).addCallback(self._continueFiring)
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 301, in addCallback
callbackKeywords=kw)
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 290, in addCallbacks
self._runCallbacks()
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 551, in _runCallbacks
current.result = callback(current.result, *args, **kw)
--- <exception caught here> ---
File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 426, in _continueFiring
callable(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/deluge/ui/gtkui/gtkui.py", line 336, in _on_reactor_start
self.__start_non_classic()
File "/usr/lib/python2.7/dist-packages/deluge/ui/gtkui/gtkui.py", line 376, in __start_non_classic
reactor.simulate()
exceptions.AttributeError: 'Gtk2Reactor' object has no attribute 'simulate' |
[IMPACT]
Changes in Twisted cause Deluge's connection manager to not launch on start up. This is in Twisted 12 in quantal and also in precise as we backported the changes to Gtk2Reactor in a patch to Twisted 11.
This can cause confusion for users if they have disabled "classic" mode and need to start the daemon.
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 413, in fireEvent
DeferredList(beforeResults).addCallback(self._continueFiring)
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 301, in addCallback
callbackKeywords=kw)
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 290, in addCallbacks
self._runCallbacks()
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 551, in _runCallbacks
current.result = callback(current.result, *args, **kw)
--- <exception caught here> ---
File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 426, in _continueFiring
callable(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/deluge/ui/gtkui/gtkui.py", line 336, in _on_reactor_start
self.__start_non_classic()
File "/usr/lib/python2.7/dist-packages/deluge/ui/gtkui/gtkui.py", line 376, in __start_non_classic
reactor.simulate()
exceptions.AttributeError: 'Gtk2Reactor' object has no attribute 'simulate'
[TESTCASE]
Make sure that "clasic" mode is not enabled in Preferences > Interface. Also make sure that "Do not show this dialog on startup" is _not_ checked in the Connection Manager dialog's options.
Launch "deluge" from the terminal. The version in precise will show you the above traceback. The verson that is in precise-proposed will launch without the traceback and the Connection Manager dialog will be shown
[Regression Potential]
There is not much regression potential as this patch backported fom upstream is simply a try/except statement:
@@ -373,7 +373,11 @@ Please see the details below for more information."), details=traceback.format_e
if self.config["show_connection_manager_on_start"]:
# XXX: We need to call a simulate() here, but this could be a bug in twisted
- reactor.simulate()
+ try:
+ reactor._simulate()
+ except AttributeError:
+ # twisted < 12
+ reactor.simulate()
self.connectionmanager.show() |
|