Always set _closed future in StdoutWriterProtocol.connection_lost#24
Always set _closed future in StdoutWriterProtocol.connection_lost#24marmarek merged 3 commits intoQubesOS:masterfrom
Conversation
|
PipelineRetry |
|
Python < 3.12 used to have a bug in |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #24 +/- ##
==========================================
+ Coverage 79.20% 80.49% +1.29%
==========================================
Files 3 4 +1
Lines 1433 1528 +95
==========================================
+ Hits 1135 1230 +95
Misses 298 298 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Yup. I did mention that commit already in QubesOS/qubes-issues#9779 (comment). f488ef1 added the |
OpenQA test summaryComplete test suite and dependencies: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2025060710-4.3&flavor=pull-requests Test run included the following:
New failures, excluding unstableCompared to: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2025031804-4.3&flavor=update
Failed tests18 failures
Fixed failuresCompared to: https://openqa.qubes-os.org/tests/132953#dependencies 14 fixed
Unstable testsDetailsPerformance TestsPerformance degradation:16 performance degradations
Remaining performance tests:56 tests
|
|
I took a bit deeper look at this, and first of all, this fix (as in - always setting |
|
Thanks for taking a closer look at this.
Good point. I misread that logic initially (Based on the comment I thought it wakes up the blocking writer, but actually it tests for Do you understand why that |
Not really, it was this way in asyncio.FlowControlMixin already. Looking at git history there, it used to be a single waiter, not a list. But still, it's not clear to me what that if was added back then, the commit message doesn't help much... (it survived a few refactors, initially was added here: python/cpython@355491d) |
Otherwise when the stdout stream is closed wait_closed will hang forvever. See QubesOS#24 for discussion about the exact intended behavior or WriterProtocol in this case. QubesOS/qubes-issues#9779
98d2086 to
16c94c6
Compare
It doesn't support -P yet. Work around it by changing the directory do /. split-gpg2 shouldn't depend on it.
Otherwise when the stdout stream is closed wait_closed will hang forever.
Also add tests that check that the service terminates correctly.
And add a fix of #25 for Ubuntu 22.04.
QubesOS/qubes-issues#9779