Opened 10 years ago
Last modified 9 years ago
#2930 new bug
Potential issue with using inspect in log.get_plugin_logger
| Reported by: | Calum | Owned by: | |
|---|---|---|---|
| Priority: | major | Milestone: | 2.x |
| Component: | Core | Version: | develop |
| Keywords: | Cc: |
Description
When using a third-party plugin such as Autoshutdown in this trace below and it seems to be due to the use of inspect.stack() which can potentially crash on shutdown. This is legacy plugin logging code but if it crashes deluge then it is no good releasing it.
There is a good SO question with alternatives to using inspect: http://stackoverflow.com/q/5067604/175584
[ERROR ][deluge.pluginmanagerbase :215 ] Error when disabling plugin 'AutoShutdown'
[ERROR ][deluge.pluginmanagerbase :1200] Traceback (most recent call last):
File "deluge/core/pluginmanager.py", line 43, in stop
self.disable_plugins()
File "deluge/pluginmanagerbase.py", line 79, in disable_plugins
self.disable_plugin(key)
File "deluge/core/pluginmanager.py", line 72, in disable_plugin
d = deluge.pluginmanagerbase.PluginManagerBase.disable_plugin(self, name)
File "deluge/pluginmanagerbase.py", line 206, in disable_plugin
d = defer.maybeDeferred(self.plugins[name].disable)
--- <exception caught here> ---
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 150, in maybeDeferred
result = f(*args, **kw)
File "deluge/plugins/init.py", line 28, in disable
return self.plugin.disable()
File "build/bdist.linux-x86_64/egg/autoshutdown/core.py", line 111, in disable
File "deluge/log.py", line 286, in __getattribute__
stack = inspect.stack()
File "/usr/lib/python2.7/inspect.py", line 1060, in stack
return getouterframes(sys._getframe(1), context)
File "/usr/lib/python2.7/inspect.py", line 1038, in getouterframes
framelist.append((frame,) + getframeinfo(frame, context))
File "/usr/lib/python2.7/inspect.py", line 1013, in getframeinfo
lines, lnum = findsource(frame)
File "/usr/lib/python2.7/inspect.py", line 580, in findsource
if pat.match(lines[lnum]): break
exceptions.IndexError: list index out of range
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1128, in _inlineCallbacks
result = g.send(result)
StopIteration
Note:
See TracTickets
for help on using tickets.


