David Wilson
92a2565507
issue #241 : child main thread does not gracefully handle CTRL+C
...
In Ansible, depending on when CTRL+C is triggered, if it occurs after
the connection multiplexer process has forked, and after it has in turn
forked the "connection: local" context and its corresponding "clean fork
parent", since all the broker processes still belong to Ansible's
terminal foreground process group, they are all capable of receiving
SIGINT in response to CTRL+C being pressed on that terminal.
This papers over the problem. Really we want those KeyboardInterrupts to
be logged, to call setsid() frmo the connection multiplexer process to
isolate it from the terminal foreground process group. That way its only
indication of top-level process shutdown is using the graceful
disconnect mechanism that already exists in process.py::worker_main().
7 years ago
David Wilson
9cc8b21a07
ansible: missing mitogen_su module.
7 years ago
David Wilson
b7fe0e09f4
tests: su integration test.
7 years ago
David Wilson
78c401ba4d
ansible: support su become method.
7 years ago
David Wilson
3322eaef45
Basic "su" method.
7 years ago
David Wilson
79346d96db
core: Allow dead messages to be delivered regardless of policy
7 years ago
dw
8702b7521f
Merge pull request #240 from dw/dmw
...
FileService optimizations, more compatible temp dir handling
7 years ago
David Wilson
3203846708
issue #239 : ansible: ignore remote_tmp in new style runner.
7 years ago
David Wilson
94e048a2e5
ansible: ensure FileService uses exact CHUNK_SIZE multiple
...
9.8% throughput increase with sudo.
7 years ago
David Wilson
187e3a3fc1
ansible: support 2.3 too.
7 years ago
David Wilson
dafe12b315
ansible: fix AnsibleUnicode crash when processing "~username".
7 years ago
David Wilson
e1a3cea2f9
ansible: FileService: don't send empty last chunk
7 years ago
David Wilson
2a56c672ca
ansible: FileService docstring updates.
7 years ago
dw
76102927c8
Merge pull request #237 from dw/dmw
...
connection delegation fixes & issue #212
7 years ago
David Wilson
f5d22a3ca1
core: support deleting handlers, make Receiver.close() unregister
7 years ago
David Wilson
58eb9828b0
docs: remove limitation.
7 years ago
David Wilson
69e5902e61
issue #212 : support explicit acknowledgements in FileService.
7 years ago
David Wilson
5e6e56f0c5
issue #212 : service: make call_async kwargs optional.
7 years ago
David Wilson
afe983d6c9
issue #212 : service: support no_reply decorator.
7 years ago
David Wilson
bf6c2fa97c
issue #212 : service: more concise repr
7 years ago
David Wilson
ff7fb00569
parent: return latch to wait() caller to allow graceful timeout
7 years ago
David Wilson
b0309b539c
ansible: disable interpreter recycling for connections.
...
Must explicitly specify enable_lru=True in ContextService.get() to
trigger recycling.
7 years ago
dw
be2954db6f
Merge pull request #235 from dw/dmw
...
docs: more ansible updates
7 years ago
David Wilson
ec22fee7a7
docs: more ansible updates
7 years ago
dw
bd9d9e3600
Merge pull request #234 from dw/dmw
...
Fix one Latch race, one huge leak around fork
7 years ago
David Wilson
c0ced6d04a
core: fix monster fork FD leak
...
_sockets only refers to the idle sockets list, it doesn't refer to every
socket currently in use by a Latch, for example, the 2*16 used by e.g.
Ansible's sleeping service pool.
7 years ago
David Wilson
7316c08237
core: fix _tls_init() race.
...
The GIL could be lost between the check for an empty list and popping a
socket off the list. Previously _tls_init (per its name) used per-thread
storage, hence the bug.
7 years ago
David Wilson
79fd35092b
docs: more links
7 years ago
David Wilson
fdac4ecce8
setns: typos
7 years ago
dw
617f84432d
Merge pull request #233 from dw/dmw
...
Dmw
7 years ago
David Wilson
65e6a44fe7
docs: add links.
7 years ago
David Wilson
e93ac2f3a7
debug: implement some basic helpers to debugger.
7 years ago
David Wilson
baa4e75526
tests: tidy up thread_pileup for use as a toy benchmark.
7 years ago
David Wilson
90f7b4baea
ansible: stub plugin documentation.
7 years ago
David Wilson
c85a5b6446
ansible: make call timing more readable
7 years ago
David Wilson
29f6c46e97
docs: add file transfer safety section.
7 years ago
David Wilson
bba2a42e44
ansible: add mitogen_sudo method, split out connection subclasses.
...
Slowly moving towards real implementations in those files.
7 years ago
David Wilson
0a9126c510
ansible: connection plugins missing from previous commit.
7 years ago
David Wilson
b61c291faf
examples: import mitogen-fuse.py.
7 years ago
dw
0d9d3cfe7b
Merge pull request #232 from dw/dmw
...
Better error messages, support username in setns
7 years ago
David Wilson
7c5bbc5168
setns: support changing user.
...
To match existing third party plugin.
7 years ago
David Wilson
947d35649c
parent: note exception machine's hostname.
...
For dumb situations where user (i.e. me) is trying to fix a problem in
the wrong place.
7 years ago
dw
b99b4eb048
Merge pull request #231 from dw/dmw
...
Many file transfer improvements, docs improvements.
7 years ago
David Wilson
003f30b5a9
issue #226 : test fixes.
7 years ago
David Wilson
6edb3f165d
ansible: avoid a race during shutdown.
7 years ago
David Wilson
780b63520f
issue #226 : don't attempt to fchmod() a pathname
7 years ago
David Wilson
58d8f60f57
docs: better connection type docs
7 years ago
David Wilson
219a202a82
issue #226 : ansible: file transfer improvements
...
* put_data() supports setting mode and times.
* put_file() refuses to copy non-regular files (sockets, FIFOs).
* put_file() saves one RTT for <32KiB files by using put_data() and
embedding file content in argument list.
* FileService returns dict with size/mode/owner/group/mtime/atime.
* FileService refuses to copy non-regular files.
* transfer_file() preserves file mode.
* transfer_file() preserves atime/mtime.
* transfer_file() optionally preserves ownership.
* transfer_file() optionally calls fsync().
* transfer_file() uses unique temporary file name to avoid conflicting
with parallel transfers.
* transfer_file() ensures temporary file is deleted on any error.
* write_path() writes to a temporary file and deletes it on failure.
* write_path() uses unique temporary file name to avoid conflicting
with parallel transfers.
* write_path() supports setting symbolic owner/group.
* write_path() optionally calls fsync().
* write_path() supports setting symbolic mode/mtime/atime.
Closes #226 , #227 , #229
7 years ago
dw
8beb6d339b
Merge pull request #225 from willmerae/setup-import-os
...
setup: Add missing os import
7 years ago
dw
956e39fd66
Merge pull request #228 from dw/dmw
...
setns method
7 years ago