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.
mitogen/mitogen
David Wilson f752653e77 core: IoLogger: don't set O_CLOEXEC on standard handles
nested_test was failing due to the recent change to centralize
O_CLOEXEC, since stdout and stderr were being marked as non-inheritable.
That meant child processes would start with no stdout/stderr, triggering
a race between Waker opening its pipes, and IoLogger dup2'ing its pipes
over the stdio handles.

Since the stdio handles were closed, Waker would receive one of them as
one end of its pipe, and consequently have it overwritten by IoLogger.

When IoLogger dups over the top of fd 2, it becomes possible for
Waker.on_read() to be called due to pipe's other end to be closed,
causing an OSError exception with errno EAGAIN to appear.
6 years ago
..
compat Initial commit. 6 years ago
__init__.py issue #139: add profiling=True option to mitogen.main(). 6 years ago
core.py core: IoLogger: don't set O_CLOEXEC on standard handles 6 years ago
debug.py issue #150: tidy up mitogen.debug output for use next time 6 years ago
docker.py issue #150: ansible: add basic Docker support. 6 years ago
fakessh.py Remove duplicate set_cloexec calls everywhere 6 years ago
fork.py issue #155: introduce mitogen.fork / Router.fork() 6 years ago
master.py issue #155: core: slightly rearrange how shutdown works 6 years ago
parent.py issue #155: introduce mitogen.fork / Router.fork() 6 years ago
service.py issue #162: implement mitogen.service.DeduplicatingService 6 years ago
ssh.py issue #141: unify connect deadline handling 6 years ago
sudo.py issue #141: remove reference to incomplete change 6 years ago
unix.py Remove duplicate set_cloexec calls everywhere 6 years ago
utils.py ansible: redirect logging into display 'framework'. closes #111 6 years ago