[Python-Dev] Dealing with import lock deadlock in Import Hooks

Armin Rigo arigo at tunes.org
Mon Aug 12 11:09:45 CEST 2013


Hi Arnaud,

On Mon, Aug 12, 2013 at 9:39 AM, Arnaud Fontaine
<arnaud.fontaine at nexedi.com> wrote:
>   Thread 1 is trying to import a module 'foo.bar' (where 'foo' is a
>   package containing dynamic modules) handled by Import Hooks I
>   implemented, so import lock is acquired before even running the hooks
>   (Python/import.c:PyImport_ImportModuleLevel()). Then, these import
>   hooks try to load objects from ZODB and a request is sent and handled
>   by another thread (Thread 2) which itself tries to import another
>   module.

A quick hack might be to call imp.release_lock() and
imp.acquire_lock() explicitly, from your import hook code, around
calls to ZODB.


A bientôt,

Armin.


More information about the Python-Dev mailing list