docs: tweaks to better explain changelog race

new-serialization
David Wilson 5 years ago
parent 8d16f657ab
commit 01a1914a1f

@ -199,16 +199,17 @@ Core Library
descriptors belonging to unrelated streams.
* `#533 <https://github.com/dw/mitogen/issues/533>`_: routing accounts for
a race between a parent sending a message to a child via an intermediary,
where the child had recently disconnected, and ``DEL_ROUTE`` propagating from
the intermediary to the parent, informing it that the child no longer exists.
This condition is detected at the intermediary and a dead message is returned
to the parent.
a race between a parent (or cousin) sending a message to a child via an
intermediary, where the child had recently disconnected, and
:data:`DEL_ROUTE <mitogen.core.DEL_ROUTE>` propagating from the intermediary
to the sender, informing it that the child no longer exists. This condition
is detected at the intermediary and a dead message is returned to the sender.
Previously since the intermediary had already removed its route for the
child, the *route messages upwards* rule would be triggered, causing the
message (with a privileged ``src_id``/``auth_id``) to be sent upstream,
resulting in a ``bad auth_id`` log message and a hang.
message (with a privileged :ref:`src_id/auth_id <stream-protocol>`) to be
sent upstream, resulting in a ``bad auth_id`` error logged at the first
upstream parent, and a possible hang due to a request message being dropped.
* `#586 <https://github.com/dw/mitogen/issues/586>`_: fix import of
:mod:`__main__` on later versions of Python 3 when running from the

@ -434,8 +434,9 @@ also listen on the following handles:
Receives `target_id` integer from downstream, verifies a route exists to
`target_id` via the stream on which the message was received, removes that
route from its local table, then propagates the message upward towards its
own parent.
route from its local table, triggers the ``disconnect`` signal on any
:class:`mitogen.core.Context` instance in the local process, then
propagates the message upward towards its own parent.
.. currentmodule:: mitogen.core
.. data:: DETACHING
@ -629,7 +630,8 @@ The `auth_id` field is separate from `src_id` in order to support granting
privilege to contexts that do not follow the tree's natural trust chain. This
supports cases where siblings are permitted to execute code on one another, or
where isolated processes can connect to a listener and communicate with an
already established established tree.
already established established tree, such as where a :mod:`mitogen.unix`
client receives the same privilege as the process it connects to.
Differences Between Master And Child Brokers

Loading…
Cancel
Save