Commit Graph

996 Commits (ff7fb00569155bc53b00b65682c3812680c46ff9)
 

Author SHA1 Message Date
David Wilson 6958b8ff09 docs: More getting started. 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
dw f440e88f2f
Merge pull request #175 from wezm/become-pass
Use become_pass for sudo password
7 years ago
Wesley Moore 3d5bbb9a63 Use become_pass for sudo password 7 years ago
David Wilson 682a4ca8d4 issue #174: reproduction. 7 years ago
David Wilson fa271fcc8e issue #174: select.error interface differs to OSError
Only OSError got the magical attribute treatment, select.error still
behaves like a tuple.
7 years ago
David Wilson ffdd192397 issue #155: must catch select.error too.
Regression caused by merging exception handlers in 9079176.
7 years ago
David Wilson 8674ec42dd docs: add new risk 7 years ago
David Wilson 36e1ae15fd issue #172: prevent 'No handlers..' error being printed. 7 years ago
David Wilson e0c4d6b348 ansible: Quick fix for #172. 7 years ago
David Wilson bbb0f1bbd8 issue #155: fix double-fork behaviour and test it this time. 7 years ago
David Wilson 4c433dbed1 parent_test: Add explanation. 7 years ago
David Wilson bde1778373 tests: merge tty_create_child() test into parent_test and fix hang 7 years ago
David Wilson 6670cba41c Introduce handler policy functions; closes #138.
Now you can specify a function to add_handler() that authenticates the
message header, with has_parent_authority() and is_immediate_child()
built in.
7 years ago
David Wilson 46a14d4ae2 core: Fix logging crash if data is non-string. 7 years ago
David Wilson f726ef86de tests: first_stage_test regression due to 1ff27ada49 7 years ago
David Wilson 40b978c9b7 core: Fix source verification.
Previously:

* src_id could be spoofed
* auth_id was checked but the message was still delivered!
7 years ago
David Wilson fe614aa966 core: cleanup handlers on broker crash; closes #112. 7 years ago
David Wilson 29e508fde9 ssh: enable app-level keepalive by default; closes #77 7 years ago
David Wilson 1ff27ada49 Add maximum message size checks. Closes #151. 7 years ago
David Wilson e1af2db4ae issue #155: handle crash in the forking child better.
This code path is probably only necessary during development, but it
prevents tracebacks (etc.) getting written over the Stream socket, which
naturally causes corruption.

Instead keep whatever the parent has for stderr, manually write a
traceback there and hard exit.
7 years ago
David Wilson 6db3588c93 Only call _start_transmit when required; closes #165. 7 years ago
David Wilson 80a97fbc9b core: Rename Sender.put() to Sender.send().
Been annoying me for months.
7 years ago
David Wilson b48d63f33b docs: add to_sender() and update serialization notes 7 years ago
David Wilson 085b3d21bd core: fix call_function_test regression
Second time in 3 weeks. So stupid. This time write tests.
7 years ago
David Wilson 0f29baa077 core: support pickling senders, Receiver.to_sender()
CC @moreati, in case this impacts you
7 years ago
David Wilson 692af860ba core: remove use of defer() from _async_route(). 7 years ago
David Wilson 8676c40674 core: make _start_transmit / _stop_transmit async-only
For now at least, these APIs are always used in an asynchronous context,
so stop using the defer mechanism.
7 years ago
David Wilson ee0f21d57f core: remove Queue locking from broker loop.
Move defer handling out of Broker and into Waker (where it belongs?).
Now the lock must only be taken if Waker was actually woken.

Knocks 400-item run_hostname_100_times from 10.62s to 10.05s (-5.3%).
7 years ago
David Wilson 17aef51e6e tests: Import .local() latency test 7 years ago
David Wilson a8a31728a0 tests: Import Latch soak test 7 years ago
David Wilson 15194abb8c Remove testlib.py from test.sh. 7 years ago
David Wilson d6f49a003b issue #106: ansible: beginnings of FileService. 7 years ago
David Wilson 6118d4e6df tests: set MITOGEN_LOG_LEVEL=debug in .travis.yml too. 7 years ago
David Wilson 03fcf057dd tests: just call log_to_file() from testlib
Now we can run test.sh with MITOGEN_LOG_LEVEL=debug and things just
work.
7 years ago
David Wilson 761cd9eaf8 tests: import tty_create_child_test.py. 7 years ago
David Wilson 7b12f84366 core: support CallError(str) for service.py. 7 years ago
David Wilson c33bc22f21 docs: fix reading time tracking :( 7 years ago
David Wilson 45b81009f3 parent: call TIOCSCTTY on FreeBSD. Closes #171 7 years ago
David Wilson cd1683b924 ansible: split environment editing into a separate class. 7 years ago
David Wilson fccca54068 tests: ensure OpenSSL is initialized prior to test. 7 years ago
David Wilson e28e627f55 ssh: Disable GlobalKnownHostsFile with host_key_checking is off 7 years ago
David Wilson 4903052f42 fork: reseed Python/SSL PRNGs
Mac's SSL seems to have a pthread_atfork handler or similar that does
this for us, no clue if Linux is the same.
7 years ago
David Wilson 7f4368db87 docs: pad out signal handlers note 7 years ago
David Wilson c34f8dbef3 core: Fix Receiver.__iter__ loop termination.
Since the Message refactoring from a few weeks back, __iter__ has had
nothing to throw ChannelError if the remote sent _DEAD.
7 years ago
David Wilson 671f753207 core: cache result of unpickling message. 7 years ago
David Wilson 5b87d10ae6 core: clean up no longer useful Latch.__repr__
Those fields are always None since the recent fork cleanup work.
7 years ago
David Wilson d4bc44468b core: fix crash in fork stress test
14:50:04 E mitogen: mitogen.fork.Stream('fork.7431') crashed
Traceback (most recent call last):
  File "/home/dmw/src/mitogen/mitogen/core.py", line 1287, in _call
    func(self)
  File "/home/dmw/src/mitogen/mitogen/core.py", line 758, in on_receive
    return self.on_disconnect(broker)
  File "/home/dmw/src/mitogen/mitogen/parent.py", line 370, in on_disconnect
    super(Stream, self).on_disconnect(broker)
  File "/home/dmw/src/mitogen/mitogen/core.py", line 721, in on_disconnect
    fire(self, 'disconnect')
  File "/home/dmw/src/mitogen/mitogen/core.py", line 162, in fire
    return [func(*args, **kwargs) for func in signals.get(name, ())]
  File "/home/dmw/src/mitogen/mitogen/core.py", line 1160, in <lambda>
    listen(stream, 'disconnect', lambda: self.on_stream_disconnect(stream))
  File "/home/dmw/src/mitogen/mitogen/core.py", line 1142, in on_stream_disconnect
    for context in self._context_by_id.itervalues():
RuntimeError: dictionary changed size during iteration
7 years ago