diff --git a/docs/changelog.rst b/docs/changelog.rst index 1b47e6ca..ef8cb07d 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -25,8 +25,7 @@ Enhancements ~~~~~~~~~~~~ * :gh:issue:`556`, - :gh:issue:`587`: Ansible 2.8 is partially - supported. `Become plugins + :gh:issue:`587`: Ansible 2.8 is supported. `Become plugins `_ and `interpreter discovery `_ @@ -80,11 +79,12 @@ Mitogen for Ansible * :gh:issue:`410`: Uses of :linux:man7:`unix` sockets are replaced with traditional :linux:man7:`pipe` pairs when SELinux is detected, to work around - a broken heuristic in popular SELinux policies that prevents inheriting + a broken heuristic in common SELinux policies that prevents inheriting :linux:man7:`unix` sockets across privilege domains. * `#467 `_: an incompatibility - running Mitogen under Molecule was resolved. + running Mitogen under `Molecule + `_ was resolved. * :gh:issue:`547`, :gh:issue:`598`: fix a serious deadlock possible while initializing the service pool of any child, such as during @@ -96,11 +96,11 @@ Mitogen for Ansible likely impacted many users. For new connections it manifested as a timeout, for forked tasks it could manifest as a timeout or an apparent hang. -* :gh:issue:`549`: the open file descriptor limit for the Ansible process is - increased to the available hard limit. It is common for distributions to ship - with a much higher hard limit than their default soft limit, allowing *"too - many open files"* errors to be avoided more often in large runs without user - configuration. +* :gh:issue:`549`: the open file limit for the Ansible process is increased to + the available hard limit. It is common for distributions to ship with a + higher hard limit than the default soft limit, allowing *"too many open + files"* errors to be avoided more often in large runs without user + intervention. * :gh:issue:`558`, :gh:issue:`582`: on Ansible 2.3 a remote directory was unconditionally deleted after the first module belonging to an action plug-in @@ -110,9 +110,10 @@ Mitogen for Ansible due to an incorrect format string. * :gh:issue:`590`: the importer can handle modules that replace themselves in - :data:`sys.modules` during import. + :data:`sys.modules` with completely unrelated modules during import, as in + the case of Ansible 2.8 :mod:`ansible.module_utils.distro`. -* :gh:issue:`591`: the target's current working directory is restored to a +* :gh:issue:`591`: the target's working directory is restored to a known-existent directory between tasks to ensure :func:`os.getcwd` will not fail when called, in the same way that :class:`AnsibleModule` restores it during initialization. However this restore happens before the module ever @@ -130,16 +131,18 @@ Mitogen for Ansible encoding. * :gh:issue:`602`: connection configuration is more accurately inferred for - `meta: reset_connection`, the :ans:mod:`synchronize`, and for any action - plug-ins that establish additional connections. + :ans:mod:`meta: reset_connection ` the :ans:mod:`synchronize`, and for + any action plug-ins that establish additional connections. * :gh:issue:`598`, :gh:issue:`605`: fix a deadlock managing a shared counter - used for load balancing. + used for load balancing, present since 0.2.4. -* :gh:issue:`615`: streaming file transfer is implemented for ``fetch`` and - other actions that transfer files from the target to the controller. - Previously the file was sent in one message, requiring it to fit in RAM and - be smaller than the internal message size limit. +* :gh:issue:`615`: streaming file transfer is implemented for the + :ans:mod:`fetch` and other actions that transfer files from the target to the + controller. Previously files delivered from target to controller were sent in + one message, requiring them to fit in RAM and be smaller than an internal + message size sanity check. Transfers from controller to target have been + streaming since 0.2.0. * :gh:commit:`7ae926b3`: the Ansible :ans:mod:`lineinfile` began leaking writable temporary file descriptors since Ansible 2.7.0. When @@ -157,6 +160,20 @@ Core Library human-readable output where possible. For example, *"Stream(ssh:123).connect()"* might be written *"connecting to ssh:123"*. +* In preparation for reducing default log output, many messages are delivered + to per-component loggers, including messages originating from children, + enabling :mod:`logging` aggregation to function as designed. An importer + message like:: + + 12:00:00 D mitogen.ctx.remotehost mitogen: loading module "foo" + + Might instead be logged to the ``mitogen.importer.[remotehost]`` logger:: + + 12:00:00 D mitogen.importer.[remotehost] loading module "foo" + + Allowing a filter or handler for ``mitogen.importer`` to select that logger + in every process. + * :func:`bytearray` was removed from the list of supported serialization types. It was never portable between Python versions, unused, and never made much sense to support. @@ -217,13 +234,13 @@ Core Library deliver a message for some reason other than the sender cannot or should not reach the recipient, and no reply-to address is present on the message, instead send a :ref:`dead message ` to the original recipient. This - ensures a descriptive messages is delivered to a thread sleeping on the reply + ensures a descriptive message is delivered to a thread sleeping on the reply to a function call, where the reply might be dropped due to exceeding the maximum configured message size. -* :gh:issue:`624`: the number of threads used for a child's auto-started thread - pool has been reduced from 16 to 2. This may drop to 1 in future, and become - configurable via a :class:`Router` option. +* :gh:issue:`624`: the number of threads used for a child's automatically + initialized service thread pool has been reduced from 16 to 2. This may drop + to 1 in future, and become configurable via a :class:`Router` option. * :gh:commit:`a5536c35`: avoid quadratic buffer management when logging lines received from a child's redirected