Comment 9 for bug 971748

Revision history for this message
Fabien Tassin (fta) wrote :

I checked the py stack leading to this AttributeError, it happens the fault really is in aptdaemon after all.

[(<frame object at 0x3005200>, '/usr/lib/python2.7/dist-packages/defer/__init__.py', 473, '_inline_callbacks', [' print >> fd, inspect.stack()\n'], 0),
 (<frame object at 0x30115e0>, '/usr/lib/python2.7/dist-packages/defer/__init__.py', 592, 'unwind_generator', [' return _inline_callbacks(None, func(*args, **kwargs), Deferred())\n'], 0),
 (<frame object at 0x300a550>, '/usr/lib/python2.7/dist-packages/aptdaemon/pkcompat.py', 306, '__init__', [' self.netmon.get_network_state()\n'], 0),
 (<frame object at 0x2e37280>, '/usr/lib/python2.7/dist-packages/aptdaemon/core.py', 1406, '__init__', [' self.packagekit = pkcompat.PackageKit(self.queue, connect, bus)\n'], 0),
 (<frame object at 0x2e317f0>, '/usr/lib/python2.7/dist-packages/aptdaemon/core.py', 2191, 'main', [' daemon = AptDaemon(options, bus=bus)\n'], 0),
 (<frame object at 0x28e7ef0>, '/usr/sbin/aptd', 28, '<module>', [' aptdaemon.core.main()\n'], 0)]

i'm not using network-manager on this box so it's probably the least tested path (if not the totally untested path). That may explain why there's only a few dupes, not millions.

While exploring that path, I found the bug:
In aptdaemon, self.netmon is a ProcNetworkMonitor() instance, which is good in my case, and when called, it properly finds 'online'. The problem seems to be the missing return value in ProcNetworkMonitor.get_network_state().
it sure fixes this AttributeError for me, but then i'm getting a cryptic _DefGen_Return raise from the defer module. So more work is needed.

anyway, python-defer should not die the way it does anyway, so its task here is probably also valid.