From 01a1914a1f4ff4347d9776e09eeed579cf394399 Mon Sep 17 00:00:00 2001 From: David Wilson Date: Sat, 17 Aug 2019 15:06:41 +0100 Subject: [PATCH] docs: tweaks to better explain changelog race --- docs/changelog.rst | 15 ++++++++------- docs/howitworks.rst | 8 +++++--- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index 998821e2..2deed36b 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -199,16 +199,17 @@ Core Library descriptors belonging to unrelated streams. * `#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 ` 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 `) 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 `_: fix import of :mod:`__main__` on later versions of Python 3 when running from the diff --git a/docs/howitworks.rst b/docs/howitworks.rst index 20c4f948..05c097e5 100644 --- a/docs/howitworks.rst +++ b/docs/howitworks.rst @@ -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