Fix interrupting update#214
Conversation
OpenQA test summaryComplete test suite and dependencies: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2026060401-devel&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=2026050504-devel&flavor=update
Failed tests46 failures
Fixed failuresCompared to: https://openqa.qubes-os.org/tests/176874#dependencies 16 fixed
Unstable testsDetails
Performance TestsPerformance degradation:23 performance degradations
Remaining performance tests:88 tests
|
When SIGINT is sent during last qube in a given group (admin, template/standalone, derived), given group isn't really interrupted, so none of the returned update status is FinalStatus.CANCELLED. This meant that update cancel request was canceled in practice and the update proceeded to the next group uninterrupted. And also that overall exit code didn't inform about the cancellation request. Fix this by returning EXIT.SIGINT if SIGINT was received, instead of checking if any update was actually cancelled. And then check for the EXIT.SIGINT status between update groups. Fixes QubesOS/qubes-issues#10900
Now that canceling updates actually prevents starting further updates, test that has some cancelled qubes didn't finish all expected updates. Adjust the test to not generate cancelled statuses unless explicitly expected.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #214 +/- ##
==========================================
- Coverage 71.95% 71.74% -0.21%
==========================================
Files 12 12
Lines 1330 1338 +8
==========================================
+ Hits 957 960 +3
- Misses 373 378 +5 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
When SIGINT is sent during last qube in a given group (admin,
template/standalone, derived), given group isn't really interrupted, so
none of the returned update status is FinalStatus.CANCELLED. This meant
that update cancel request was canceled in practice and the update
proceeded to the next group uninterrupted. And also that overall exit
code didn't inform about the cancellation request.
Fix this by returning EXIT.SIGINT if SIGINT was received, instead of
checking if any update was actually cancelled. And then check for the
EXIT.SIGINT status between update groups.
Fixes QubesOS/qubes-issues#10900