Commit Graph

85 Commits (ae80d42cb4020a85769b389811ae90121498f1db)

Author SHA1 Message Date
David Wilson 120c667052 core: many docstring updates and an example substitute for Channel 6 years ago
David Wilson df83c8a02f issue #61: unused import (reported by LGTM) 6 years ago
David Wilson ec515cb663 issue #61: unused import (reported by LGTM) 6 years ago
David Wilson 74d2b43943 issue #61: unused import (reported by LGTM) 6 years ago
David Wilson d8ac50bf01 examples: add Select lifetimes to example. 6 years ago
David Wilson 37783731d6 examples: use Router.myself() in the_basics.py 6 years ago
David Wilson 0b162eba18 examples: tidy up comments 6 years ago
David Wilson b5831a0d76 examples: import select_loop.py. 6 years ago
David Wilson f203744b48 examples: add one more comment 6 years ago
David Wilson 9ddedf9455 examples: set up and explain logging too. 6 years ago
David Wilson fbd7346d02 examples: import the_basics.py. 6 years ago
David Wilson 38799e22d2 examples: fix mitogen-fuse on 2.x. 6 years ago
David Wilson b734a2a5f3 examples: fix mitop for Python 3. 6 years ago
David Wilson 1f6c47554a examples: update mitogen-fuse.py for 3.x. 6 years ago
David Wilson 410016ff47 Initial Python 3.x port work.
* ansible: use unicode_literals everywhere since it only needs to be
  compatible back to 2.6.
* compat/collections.py: delete this entirely and rip out the parts of
  functools that require it.
* Introduce serializable Kwargs dict subclass that translates keys to
  Unicode on instantiation.
* enable_debug_logging() must set _v/_vv globals.
* cStringIO does not exist in 3.x.
* Treat IOLogger and LogForwarder input as latin-1.
* Avoid ResourceWarnings in first stage by explicitly closing fps.
* Fix preamble_size.py syntax errors.
6 years ago
David Wilson 3b0addcfb0 service: v2. Closes #213 7 years ago
David Wilson 61365236ad docs/select: fix up more references, fix headings. 7 years ago
David Wilson b61c291faf examples: import mitogen-fuse.py. 7 years ago
David Wilson 49aa8834b0 issue #164: split "examples" out into regression/integration tests. 7 years ago
David Wilson aa8d7a0250 issue #164: verify remote_tmp respected by code running remotely. 7 years ago
David Wilson e2542c1683 "examples": add perl script regression tests. 7 years ago
David Wilson 20044ba956 "examples": import all.yml 7 years ago
David Wilson d2c009f70f "examples": rename regtest.py -> compare_output_test.py
Incomplete, but getting better all the time.
7 years ago
David Wilson 047458a8b3 "examples": start adding structure to regression tests. 7 years ago
David Wilson 95ca29262a examples: add README.md to playbook/. 7 years ago
David Wilson f6b82bb8db examples: add make output to gitignore. 7 years ago
David Wilson 380ef7376d ansible: Add support for free strategy. 7 years ago
David Wilson 41ca3ad94b issue #106: delete junk from example module. 7 years ago
David Wilson 2c17d60ffd issue #106: import basic regtest.py 7 years ago
David Wilson 971b366162 issue #106: import many more test cases 7 years ago
David Wilson 23366b4580 issue #106: import binary modules. 7 years ago
David Wilson 17b94c56f4 issue #177: import reproduction. 7 years ago
David Wilson 76ac49dbdc examples: more comments. 7 years ago
David Wilson 9eccfb4972 examples: add top-level doc 7 years ago
David Wilson a68e833463 examples: add a ton of comments to mitop.py. 7 years ago
David Wilson 682a4ca8d4 issue #174: reproduction. 7 years ago
David Wilson 3579b6806b issue #152: reproduction for second problem 7 years ago
David Wilson 305e024819 issue #154: import user's reproduction 7 years ago
David Wilson 088fd76109 issue #152: import reproduction 7 years ago
David Wilson 051fb85d2d issue #150: 100 target docker inventory 7 years ago
David Wilson b64e52b1fd issue #150: tweak script for running without external IPs 7 years ago
David Wilson 8607680730 issue #150: quick script to run ansible against gcloud instance group 7 years ago
David Wilson 0f5a31fb52 issue #131: test with forks=50 7 years ago
David Wilson 3e40b9ab8e issue #131: import something clean that might tickle the problem 7 years ago
David Wilson 87435bf45d issue #140: nicer filetree construction 7 years ago
David Wilson 21a8026a63 issue #140: import reproduction 7 years ago
David Wilson f8738f1c52 issue #122: helper to print environment 7 years ago
David Wilson 6106c27707 ansible: repro for issue #118. 7 years ago
David Wilson 6ed731c088 Minor cleanup. 7 years ago
David Wilson cf01c6b710 importer: avoid duplicate module load(!); closes #113.
Amazed this one managed to scrape through for so long. Calling
__import__ from within find_module() was causing the target module, in
this case cookielib, to be loaded *then overwritten* by a subsequent
duplicate load higher in the stack.

The result is that cookielib was loaded twice, and, per usual Python
import semantics, a reference to the partially initialized first
cookielib was installed in sys.modules while its code executed.

At the end of cookielib on 2.x, it imports _LWPCookieJar, which in turn
imports the partially built cookielib from sys.modules, then subclasses
the CookieJar from /that/ module.

Everything is wonderful. Then the call returns back up into the import
mechanism which restarts the entire process -- only this time,
_LWPCookieJar is /not/ reinitialized, so the copy in sys.modules is
still left with types pointing at the old module!

So the duplicate import creates a new CookieJar which is not the base
class of LWPCookieJar. Tada! 3 hours debugging.

This is probably a performance fix in disguise, didn't realize things
were so broken. It may also be a regression elsewhere. Urgently need to
finish the tests.
7 years ago