Activity log for bug #396819
Date | Who | What changed | Old value | New value | Message |
---|---|---|---|---|---|
2009-07-08 00:25:32 | Michael Hudson-Doyle | bug | added bug | ||
2009-07-08 00:54:07 | Robert Collins | bzr: importance | Undecided | High | |
2009-07-08 00:54:07 | Robert Collins | bzr: status | New | Triaged | |
2010-03-18 05:58:40 | Martin Pool | bzr: status | Triaged | Confirmed | |
2011-02-01 13:32:16 | Jelmer Vernooij | tags | lazy-imports | ||
2011-02-01 13:46:57 | Vincent Ladeuil | bug | added subscriber Vincent Ladeuil | ||
2011-04-12 07:55:18 | Robert Collins | description | I can reasonably reliably reproduce this with loggerhead by firing it up and hitting it with ab -c, and it's not hard to see what happens in the code. If two threads concurrently execute ScopeReplacer.__getattribute__ on the same instance, it's easy to see that one can execute _cleanup before the other enters _replace, and so the IllegalUseOfScopeReplacer condition gets hit. In my case, simply not raising an exception in this situation would probably work, though I don't know if that would have any serious drawbacks (it looks to me like executing _import() twice won't have any real drawbacks, but it's not obvious). | I can reasonably reliably reproduce this with loggerhead by firing it up and hitting it with ab -c, and it's not hard to see what happens in the code. If two threads concurrently execute ScopeReplacer.__getattribute__ on the same instance, it's easy to see that one can execute _cleanup before the other enters _replace, and so the IllegalUseOfScopeReplacer condition gets hit. In my case, simply not raising an exception in this situation would probably work, though I don't know if that would have any serious drawbacks (it looks to me like executing _import() twice won't have any real drawbacks, but it's not obvious). File "/var/launchpad/tmp/eggs/bzr-2.2.2_lp_2-py2.6-linux-x86_64.egg/bzrlib/osutils.py", line 2065, in send_all report_activity(sent, 'write') File "/var/launchpad/tmp/eggs/bzr-2.2.2_lp_2-py2.6-linux-x86_64.egg/bzrlib/smart/medium.py", line 176, in _report_activity ui.ui_factory.report_transport_activity(self, bytes, direction) File "/var/launchpad/tmp/eggs/bzr-2.2.2_lp_2-py2.6-linux-x86_64.egg/bzrlib/lazy_import.py", line 108, in __getattribute__ _cleanup() File "/var/launchpad/tmp/eggs/bzr-2.2.2_lp_2-py2.6-linux-x86_64.egg/bzrlib/lazy_import.py", line 97, in _cleanup del self._factory AttributeError: _factory | |
2011-04-12 07:55:20 | Robert Collins | summary | lazy imports are not threadsafe | AttributeError: _factory - lazy imports are not threadsafe | |
2011-07-16 05:41:42 | Robert Collins | bug task added | loggerhead | ||
2011-07-16 05:41:56 | Robert Collins | loggerhead: status | New | Triaged | |
2011-07-16 05:41:58 | Robert Collins | loggerhead: importance | Undecided | Critical | |
2011-07-16 05:42:08 | Robert Collins | tags | lazy-imports | lazy-imports oops | |
2011-08-19 18:26:32 | Benji York | loggerhead: status | Triaged | In Progress | |
2011-08-19 18:26:36 | Benji York | bzr: status | Confirmed | In Progress | |
2011-08-19 18:26:47 | Benji York | loggerhead: status | In Progress | Triaged | |
2011-08-19 18:26:54 | Benji York | bzr: assignee | Benji York (benji) | ||
2011-08-29 16:35:56 | Martin Packman | bzr: status | In Progress | Fix Released | |
2011-08-29 16:35:56 | Martin Packman | bzr: milestone | 2.5b1 | ||
2011-08-30 13:14:34 | Martin von Gagern | bug | added subscriber Martin von Gagern | ||
2011-08-31 00:59:42 | Martin von Gagern | branch linked | lp:~gagern/bzr/bug396819-lazy_import-threadsafe | ||
2011-10-01 21:54:46 | B. Clausius | bug | added subscriber B Clausius | ||
2013-12-07 08:17:43 | B. Clausius | removed subscriber B Clausius | |||
2016-01-20 13:10:54 | Benji York | bzr: assignee | Benji York (benji) | ||
2018-10-20 17:03:46 | Jelmer Vernooij | bug task added | loggerhead-breezy | ||
2018-10-20 17:04:00 | Jelmer Vernooij | loggerhead-breezy: status | New | Triaged | |
2018-10-20 17:04:01 | Jelmer Vernooij | loggerhead-breezy: importance | Undecided | High |