issue #535: core: unicode.encode() may take importer lock on 2.x
Found on Python 2.4, where import happens immediately following connect. - Main thread executes import statement, triggers request to parent - Broker thread attempts to deliver request via Router - Router discovers parent has disconnected, prepares a dead message - .dead() calls unicode.encode() to format reason string - .encode() attemptsto import a codec module - deadlock ---- (gdb) pystack /usr/local/python2.4.6/lib/python2.4/encodings/__init__.py (69): search_function <stdin> (733): dead <stdin> (2717): _maybe_send_dead <stdin> (2724): _invoke <stdin> (2749): _async_route <stdin> (1635): _receive_one <stdin> (1603): _internal_receive <stdin> (1613): on_receive <stdin> (2931): _call <stdin> (2942): _loop_once <stdin> (2988): _do_broker_main <stdin> (545): _profile_hook <stdin> (3007): _broker_main /usr/local/python2.4.6/lib/python2.4/threading.py (420): run /usr/local/python2.4.6/lib/python2.4/threading.py (424): __bootstrappull/564/head
parent
72862f0bb9
commit
eb9ec26622
Loading…
Reference in New Issue