Support socket services with MSG_JUST_EXEC#142
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #142 +/- ##
==========================================
+ Coverage 77.23% 77.35% +0.11%
==========================================
Files 53 53
Lines 9172 9210 +38
==========================================
+ Hits 7084 7124 +40
+ Misses 2088 2086 -2 ☔ View full report in Codecov by Sentry. |
bb9d649 to
3672f5f
Compare
OpenQA test summaryComplete test suite and dependencies: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.2&build=2024041514-4.2&flavor=pull-requests New failures, excluding unstableCompared to: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.2&build=2024041501-4.2&flavor=update
Failed tests30 failures
Fixed failuresCompared to: https://openqa.qubes-os.org/tests/97064#dependencies 5 fixed
Unstable testsDetails
|
6f5c442 to
2aef335
Compare
This separates _finding_ a qrexec service (and, if necessary, connecting to a socket) from actually _executing_ the service and processing I/O. This allows qrexec-agent to handle MSG_JUST_EXEC correctly, because it can connect to a socket-based service without having to be prepared for an executable service to be run immediately. Instead, qrexec-agent spawns an executable service using its own spawning routines that do support MSG_JUST_EXEC. This also adds tests for RPC services (both executable and socket) with MSG_JUST_EXEC. Previously, these were not tested, despite being essential to a running system. For instance, the Qubes app menu uses MSG_JUST_EXEC to invoke the qubes.StartApp service every time it launches an application in a non-disposable VM from dom0.
2aef335 to
dfdfb33
Compare
This separates finding a qrexec service (and, if necessary, connecting to a socket) from actually executing the service and processing I/O. This allows qrexec-agent to handle
MSG_JUST_EXECcorrectly, because it can connect to a socket-based service without having to be prepared for an executable service to be run immediately. Instead, qrexec-agent spawns an executable service using its own spawning routines that do supportMSG_JUST_EXEC.This also adds tests for RPC services (both executable and socket) with
MSG_JUST_EXEC. Previously, these were not tested, despite being essential to a running system. For instance, the Qubes app menu usesMSG_JUST_EXECto invoke the qubes.StartApp service every time it launches an application in a non-disposable VM from dom0.