Skip to content

Commit 01a1914

Browse files
committed
docs: tweaks to better explain changelog race
1 parent 8d16f65 commit 01a1914

File tree

2 files changed

+13
-10
lines changed

2 files changed

+13
-10
lines changed

docs/changelog.rst

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -199,16 +199,17 @@ Core Library
199199
descriptors belonging to unrelated streams.
200200

201201
* `#533 <https://github.com/dw/mitogen/issues/533>`_: routing accounts for
202-
a race between a parent sending a message to a child via an intermediary,
203-
where the child had recently disconnected, and ``DEL_ROUTE`` propagating from
204-
the intermediary to the parent, informing it that the child no longer exists.
205-
This condition is detected at the intermediary and a dead message is returned
206-
to the parent.
202+
a race between a parent (or cousin) sending a message to a child via an
203+
intermediary, where the child had recently disconnected, and
204+
:data:`DEL_ROUTE <mitogen.core.DEL_ROUTE>` propagating from the intermediary
205+
to the sender, informing it that the child no longer exists. This condition
206+
is detected at the intermediary and a dead message is returned to the sender.
207207

208208
Previously since the intermediary had already removed its route for the
209209
child, the *route messages upwards* rule would be triggered, causing the
210-
message (with a privileged ``src_id``/``auth_id``) to be sent upstream,
211-
resulting in a ``bad auth_id`` log message and a hang.
210+
message (with a privileged :ref:`src_id/auth_id <stream-protocol>`) to be
211+
sent upstream, resulting in a ``bad auth_id`` error logged at the first
212+
upstream parent, and a possible hang due to a request message being dropped.
212213

213214
* `#586 <https://github.com/dw/mitogen/issues/586>`_: fix import of
214215
:mod:`__main__` on later versions of Python 3 when running from the

docs/howitworks.rst

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -434,8 +434,9 @@ also listen on the following handles:
434434

435435
Receives `target_id` integer from downstream, verifies a route exists to
436436
`target_id` via the stream on which the message was received, removes that
437-
route from its local table, then propagates the message upward towards its
438-
own parent.
437+
route from its local table, triggers the ``disconnect`` signal on any
438+
:class:`mitogen.core.Context` instance in the local process, then
439+
propagates the message upward towards its own parent.
439440

440441
.. currentmodule:: mitogen.core
441442
.. data:: DETACHING
@@ -629,7 +630,8 @@ The `auth_id` field is separate from `src_id` in order to support granting
629630
privilege to contexts that do not follow the tree's natural trust chain. This
630631
supports cases where siblings are permitted to execute code on one another, or
631632
where isolated processes can connect to a listener and communicate with an
632-
already established established tree.
633+
already established established tree, such as where a :mod:`mitogen.unix`
634+
client receives the same privilege as the process it connects to.
633635

634636

635637
Differences Between Master And Child Brokers

0 commit comments

Comments
 (0)