Commit Graph

666 Commits (ee0f21d57f5e4efc51e8f96910b6ee915444c678)
 

Author SHA1 Message Date
David Wilson 1411790f56 master: make write_all() handle O_NONBLOCK and deadlines. 7 years ago
David Wilson 2ee7309378 master: send_await() always unpickles now. 7 years ago
David Wilson 769ece2514 fakessh: improve logging slightly.
Makes it easier to match up reads/writes across log files by using
message byte count
7 years ago
David Wilson fb9ce1054c core: set O_NONBLOCK on every side. Closes #33
The last time I tested set_nonblock() as a fix for the rsync hang, I
used F_SETFD rather than F_SETFL, which resulted in no error, but also
did not set O_NONBLOCK. Turns out missing O_NONBLOCK was the problem.

The rsync hang was due to every context blocking in os.write() waiting
for either a parent or child buffer to empty, which was exacerbated by
rsync's own pipelining, that allows writes from both sides to proceed
even while reads aren't progressing. The hang was due to os.write() on a
blocking fd blocking until buffer space is available to complete the
write. Partial writes are only supported when O_NONBLOCK is enabled.
7 years ago
David Wilson db225638f0 core: Make iter_read() handle deadline (and non-blocking IO) properly 7 years ago
David Wilson 092bbef0b3 Reorder table of contents. 7 years ago
David Wilson caa1fde4fb Add serialization rules section. 7 years ago
David Wilson 3c8c1f71a6 Update test. 7 years ago
David Wilson 7a60b20dc6 core: Generalize/duplicate the call/send_await code using Receiver. 7 years ago
David Wilson 76d35df889 master: use decorators rather than call_with_deadline(with_context=..) 7 years ago
David Wilson 5dff221842 fakessh: cleanup master test. 7 years ago
David Wilson 76d1e66790 fakessh: use decorators rather than call_with_deadline(with_context=..) 7 years ago
David Wilson e4c832685d core: synchronize Stream._output_buf by deferring send()
Previously _output_buf was racy. This may or may not be cheaper than
simply using a lock, but it requires much less code, so I prefer it for
now.
7 years ago
David Wilson ead67de883 core: make Side.write() return None rather than crash if side already closed. 7 years ago
David Wilson 74b31bbe47 core: better Message.__repr__. 7 years ago
David Wilson 2a365aa9b0 Replace `with_context` parameter with mitogen.core.takes_econtext decorator 7 years ago
David Wilson 8d4005c264 fakessh: fix non-master context ID allocation. 7 years ago
David Wilson bd8001d481 fakessh: Fix NameError. 7 years ago
David Wilson e7c70127bf fakessh: return child exit status 7 years ago
David Wilson 77b8d28c68 fakessh: Use local process's sys.executable. 7 years ago
David Wilson 175fe7a4e1 fakessh: IoPump() doesn't need Process reference. 7 years ago
David Wilson 8dad396e27 Make subsystem requests die with a useful error. 7 years ago
David Wilson 4244a4609c Reduce CHUNK_SIZE to paper over a hang with rsync 7 years ago
David Wilson c67119501b Keep allocate_id() in the enhanced router class. 7 years ago
David Wilson 02a37d2339 Fix format string. 7 years ago
David Wilson 4720eb1c55 core: add ALLOCATE_ID message for fakessh. 7 years ago
David Wilson e796487cca core: allow sending 0-byte messages. 7 years ago
David Wilson 6f2d514813 Import unused images. 7 years ago
David Wilson 78d5575d4e Fix proxy connection: pickling changes broke it. 7 years ago
David Wilson b809d43865 Move more docstrings out of core.py. 7 years ago
David Wilson 918edf5145 Add TODO 7 years ago
David Wilson 502266f115 Fix Channel constructor and add simple test; closes #32 7 years ago
David Wilson 4f50707b82 core: support takes_econtext and takes_router decorators. 7 years ago
David Wilson 3a0f03183c Simple working fakessh_test. 7 years ago
David Wilson 76e476dcfa Tidy up logging of command lines for easier cutpaste. 7 years ago
David Wilson 498f961488 Fix up a few more ssh_tests, stop sending 400 modules over network.
Defining functions in the current module was causing the entirety of
py.test and all dependencies to be sucked in.
7 years ago
David Wilson f04a503caa Add rsync and git to build_docker_image too. 7 years ago
David Wilson e2d3ac9b6a Fixup some more tests. 7 years ago
David Wilson e66590f098 Initial version of ModuleFinder, but it's slooooow. 7 years ago
David Wilson 53467d394d Log forwarded events just as the docs suggest they're logged. 7 years ago
David Wilson 025954af32 Typo. 7 years ago
David Wilson d28cd4e2cf issue #31: move error log to ticket.
Original commit:

commit 3535e45245
Author: David Wilson <dw@botanicus.net>
Date:   Fri Aug 26 19:35:09 2016 +0100

    Broken SSH unit test.

A  todo/six-module-import-error.py
7 years ago
David Wilson 6b9e46ecd6 Add subheading to describe each import hack. 7 years ago
David Wilson 36f0584087 Link to six bug. 7 years ago
David Wilson 6ff2a49f10 Pad out shame.rst. 7 years ago
David Wilson bc49bccac6 Add instructions for running tests. 7 years ago
David Wilson 2736592c79 First handful of functional tests for SSH against Docker. 7 years ago
David Wilson dc446f9042 ssh: Learn to type passwords and supply pubkeys.
Now ssh requires a tty allocation. This presents a scalability problem,
a future version could selectively allocate a tty only if typing
passwords is desired.

Sudo's tty handling is now moved into mitogen.master.
7 years ago
David Wilson fa427d83c8 Tidy. 7 years ago
David Wilson 3cf75c9f2b Add more dependencies to dev_requirements.txt. 7 years ago