c2c-oerpscenario team mailing list archive
-
c2c-oerpscenario team
-
Mailing list archive
-
Message #36374
[Bug 885682] [NEW] [Trunk] Re-Entrant lock deadlock in upgrade_module
Public bug reported:
Hi.
I'm using OpenERP Trunk (updated at the begining of the week) and I
encounter a deadlock problem with threads. The bug is not easy to
reproduce, because it's kind of random. The better I found to trigger it
is to install/uninstall the same module different times.
I looked into the code with pdb, and found that the block line is this
one [1]:
openerp/module/registry.py:
with cls.registries_lock:
I enabled the debug on the lock (passing verbose=True to the RLock
constructor). Here is a "normal" output :
netrpc-client-127.0.0.1:51862: <_RLock owner='netrpc-client-127.0.0.1:51862' count=1>.acquire(1): initial success
netrpc-client-127.0.0.1:51862: <_RLock owner='netrpc-client-127.0.0.1:51862' count=2>.acquire(1): recursive success
netrpc-client-127.0.0.1:51862: <_RLock owner='netrpc-client-127.0.0.1:51862' count=1>.release(): non-final release
netrpc-client-127.0.0.1:51862: <_RLock owner=None count=0>.release(): final release
But when there is the deadlock, I only get this output, before the
server stop to respond :
netrpc-client-127.0.0.1:51872: <_RLock owner='netrpc-client-127.0.0.1:51872' count=1>.acquire(1): initial success
netrpc-client-127.0.0.1:51872: <_RLock owner='netrpc-client-127.0.0.1:51872' count=2>.acquire(1): recursive success
If 51872 is the thread ID, I don't understand why it doesn't work
because we can see that is has been release correctly just efore (here,
the output is from the same instance).
Notes :
- I couldn't trigger the bug on Linux, everything seems ok. But running
the server on windows make this happen almost everytime. I don't really
understand why, but I'm not an expert.
- I was using the GTK Client
- Using Python 2.6, with all libs installed manually using pip and .exe
distributions.
Thanks for working on this !
[1] http://bazaar.launchpad.net/~openerp/openobject-
server/trunk/view/head:/openerp/modules/registry.py#L149
** Affects: openobject-server
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of C2C
OERPScenario, which is subscribed to OpenERP Project Group.
https://bugs.launchpad.net/bugs/885682
Title:
[Trunk] Re-Entrant lock deadlock in upgrade_module
Status in OpenERP Server:
New
Bug description:
Hi.
I'm using OpenERP Trunk (updated at the begining of the week) and I
encounter a deadlock problem with threads. The bug is not easy to
reproduce, because it's kind of random. The better I found to trigger
it is to install/uninstall the same module different times.
I looked into the code with pdb, and found that the block line is this
one [1]:
openerp/module/registry.py:
with cls.registries_lock:
I enabled the debug on the lock (passing verbose=True to the RLock
constructor). Here is a "normal" output :
netrpc-client-127.0.0.1:51862: <_RLock owner='netrpc-client-127.0.0.1:51862' count=1>.acquire(1): initial success
netrpc-client-127.0.0.1:51862: <_RLock owner='netrpc-client-127.0.0.1:51862' count=2>.acquire(1): recursive success
netrpc-client-127.0.0.1:51862: <_RLock owner='netrpc-client-127.0.0.1:51862' count=1>.release(): non-final release
netrpc-client-127.0.0.1:51862: <_RLock owner=None count=0>.release(): final release
But when there is the deadlock, I only get this output, before the
server stop to respond :
netrpc-client-127.0.0.1:51872: <_RLock owner='netrpc-client-127.0.0.1:51872' count=1>.acquire(1): initial success
netrpc-client-127.0.0.1:51872: <_RLock owner='netrpc-client-127.0.0.1:51872' count=2>.acquire(1): recursive success
If 51872 is the thread ID, I don't understand why it doesn't work
because we can see that is has been release correctly just efore
(here, the output is from the same instance).
Notes :
- I couldn't trigger the bug on Linux, everything seems ok. But
running the server on windows make this happen almost everytime. I
don't really understand why, but I'm not an expert.
- I was using the GTK Client
- Using Python 2.6, with all libs installed manually using pip and
.exe distributions.
Thanks for working on this !
[1] http://bazaar.launchpad.net/~openerp/openobject-
server/trunk/view/head:/openerp/modules/registry.py#L149
To manage notifications about this bug go to:
https://bugs.launchpad.net/openobject-server/+bug/885682/+subscriptions
Follow ups
References