David Wilson
1ed8bb6924
Document a bunch of mitogen.master and move more docstrings into Sphinx.
7 years ago
David Wilson
c585f1bc5a
fakessh: Add integration test for inter-child rsync.
7 years ago
David Wilson
5fc59f72cb
master: propagate routes for IDs allocated via ALLOCATE_ID
...
needed for inter-child rsync.
7 years ago
David Wilson
5da8dc0cdc
Allow running without py.test.
7 years ago
David Wilson
959af50c1f
Make log_to_file accept string level rather than logging package constant
...
Saves an import, pain in the ass to type all the time.
7 years ago
David Wilson
3eda5ec671
core: remove pointless eval() of ARGV0 environment variable.
7 years ago
David Wilson
729356b5f0
master: make write_all() handle O_NONBLOCK and deadlines.
7 years ago
David Wilson
be2264f4c1
master: send_await() always unpickles now.
7 years ago
David Wilson
a6c97aad84
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
68f3918072
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
16950a1620
core: Make iter_read() handle deadline (and non-blocking IO) properly
7 years ago
David Wilson
25adb7416a
Reorder table of contents.
7 years ago
David Wilson
1de875b4aa
Add serialization rules section.
7 years ago
David Wilson
aa5bc53f6d
Update test.
7 years ago
David Wilson
91d766ec81
core: Generalize/duplicate the call/send_await code using Receiver.
7 years ago
David Wilson
4ff1d4e523
master: use decorators rather than call_with_deadline(with_context=..)
7 years ago
David Wilson
d6d83b3fac
fakessh: cleanup master test.
7 years ago
David Wilson
5d0dcd051c
fakessh: use decorators rather than call_with_deadline(with_context=..)
7 years ago
David Wilson
456a40ce9c
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
05055ebfc0
core: make Side.write() return None rather than crash if side already closed.
7 years ago
David Wilson
9ce71a546a
core: better Message.__repr__.
7 years ago
David Wilson
b7f5bd82bc
Replace `with_context` parameter with mitogen.core.takes_econtext decorator
7 years ago
David Wilson
22df965a46
fakessh: fix non-master context ID allocation.
7 years ago
David Wilson
68515bc9e1
fakessh: Fix NameError.
7 years ago
David Wilson
3bb02161dc
fakessh: return child exit status
7 years ago
David Wilson
9c306001f0
fakessh: Use local process's sys.executable.
7 years ago
David Wilson
023c100494
fakessh: IoPump() doesn't need Process reference.
7 years ago
David Wilson
29e4487d6a
Make subsystem requests die with a useful error.
7 years ago
David Wilson
69dd35784d
Reduce CHUNK_SIZE to paper over a hang with rsync
7 years ago
David Wilson
d84b4bf72a
Keep allocate_id() in the enhanced router class.
7 years ago
David Wilson
f3cdb4e050
Fix format string.
7 years ago
David Wilson
491b5ab575
core: add ALLOCATE_ID message for fakessh.
7 years ago
David Wilson
e00c2f2e39
core: allow sending 0-byte messages.
7 years ago
David Wilson
18a0529887
Import unused images.
7 years ago
David Wilson
6cfcd6c2c8
Fix proxy connection: pickling changes broke it.
7 years ago
David Wilson
535ffc25b7
Move more docstrings out of core.py.
7 years ago
David Wilson
e7673e72f6
Add TODO
7 years ago
David Wilson
3e020ddd09
Fix Channel constructor and add simple test; closes #32
7 years ago
David Wilson
05a0feb2f9
core: support takes_econtext and takes_router decorators.
7 years ago
David Wilson
d9bf091e6f
Simple working fakessh_test.
7 years ago
David Wilson
21fb601872
Tidy up logging of command lines for easier cutpaste.
7 years ago
David Wilson
bd2c613b9c
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
cffaa92fc4
Add rsync and git to build_docker_image too.
7 years ago
David Wilson
a89c20e54e
Fixup some more tests.
7 years ago
David Wilson
0f89756c1e
Initial version of ModuleFinder, but it's slooooow.
7 years ago
David Wilson
6f25fac430
Log forwarded events just as the docs suggest they're logged.
7 years ago
David Wilson
60dc0f6058
Typo.
7 years ago
David Wilson
04e3336c32
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
a1525b8bb8
Add subheading to describe each import hack.
7 years ago
David Wilson
38602d5eb3
Link to six bug.
7 years ago