Mirror of mitogen
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
David Wilson eb9ec26622 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): __bootstrap
6 years ago
.ci issue #542: .ci: move some tests to Azure and enable Mac job. 6 years ago
.github .github: add some more questions to issue template 6 years ago
ansible_mitogen ansible: create stub __init__.py for sdist. 6 years ago
docs issue #535: docs: fix up Select doc 6 years ago
examples core: many docstring updates and an example substitute for Channel 6 years ago
mitogen issue #535: core: unicode.encode() may take importer lock on 2.x 6 years ago
scripts misc: rename to scripts. tab completion!! 6 years ago
tests issue #535: core/select: support selecting from Latches. 6 years ago
.gitignore Add venvs/ to gitignore 6 years ago
.lgtm.yml compat: ignore LGTM checks on third party 7 years ago
.travis.yml issue #542: .ci: move some tests to Azure and enable Mac job. 6 years ago
LICENSE Update copyright year everywhere. 6 years ago
MANIFEST.in setup.py: include LICENSE; closes #538. 6 years ago
README.md Motivational shame badges back in README 6 years ago
dev_requirements.txt Split dev_requirements.txt up according to test mode. 6 years ago
preamble_size.py stable: fix preamble_size on stable docs. 6 years ago
run_tests Allow independant control of coverage erase and reporting 6 years ago
setup.cfg Ignore another annoying flake8 message. 7 years ago
setup.py Update copyright year everywhere. 6 years ago
tox.ini Aggregate code coverage data across tox all runs 6 years ago

README.md