From 80f92545f610ba208d4374fbf1268d57946f261e Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Fri, 19 Apr 2024 20:47:12 -0700 Subject: [PATCH] Cache execnet gateway rinfo during WorkerController setup Cache execnet gateway info during WorkerController setup in order to avoid a later deadlock error triggered when pytest-cov calls rinfo after the main thread is already busy. Fixes: 20e3ac774e8f ("Use execnet main_thread_only execmodel (#1027)") --- changelog/1071.bugfix | 1 + src/xdist/workermanage.py | 2 ++ 2 files changed, 3 insertions(+) create mode 100644 changelog/1071.bugfix diff --git a/changelog/1071.bugfix b/changelog/1071.bugfix new file mode 100644 index 00000000..001e1c2b --- /dev/null +++ b/changelog/1071.bugfix @@ -0,0 +1 @@ +Add workaround for rinfo compatibility issue with the ``execnet`` new ``main_thread_only`` "execmodel" triggered by pytest-cov (`pytest-dev/execnet#274 `__ eliminates the need for this workaround). diff --git a/src/xdist/workermanage.py b/src/xdist/workermanage.py index 5570e1de..881715b4 100644 --- a/src/xdist/workermanage.py +++ b/src/xdist/workermanage.py @@ -312,6 +312,8 @@ def shutting_down(self) -> bool: def setup(self) -> None: self.log("setting up worker session") + # Remove this after execnet is fixed in pytest-dev/execnet#274. + self.gateway._rinfo() spec = self.gateway.spec args = [str(x) for x in self.config.invocation_params.args or ()] option_dict = {}