Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Various bugfixes #139

Merged
merged 15 commits into from
Apr 11, 2024
Merged

Various bugfixes #139

merged 15 commits into from
Apr 11, 2024

Conversation

DemiMarie
Copy link
Contributor

@DemiMarie DemiMarie commented Apr 5, 2024

The first six commits fix user-visible bugs. The last two fix a bug that is currently unobservable, but the code is fragile and I want to make sure it doesn’t break in the future.

Each of the fixes but the last is split into two commits. The first commit adds a unit test marked as @unittest.expectedFailure. The second commit is the actual fix and removes the @unittest.expectedFailure decorator. This allowed me to ensure that the tests failed before the bug was fixed, and passed afterwards.

Fixes: QubesOS/qubes-issues#9089
Fixes: QubesOS/qubes-issues#9090
Fixes: QubesOS/qubes-issues#9091
Fixes: QubesOS/qubes-issues#9097
Fixes: QubesOS/qubes-issues#9098
Fixes: QubesOS/qubes-issues#9099
Fixes: QubesOS/qubes-issues#9100
Fixes: QubesOS/qubes-issues#9101

Previously these were ignored.  Treat them as errors instead and
terminate the search.

Fixes: QubesOS/qubes-issues#9089
Copy link

codecov bot commented Apr 5, 2024

Codecov Report

Attention: Patch coverage is 94.59459% with 12 lines in your changes are missing coverage. Please review.

Project coverage is 76.81%. Comparing base (2e407b4) to head (2be9adc).

Files Patch % Lines
libqrexec/exec.c 75.55% 11 Missing ⚠️
daemon/qrexec-client.c 94.44% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #139      +/-   ##
==========================================
+ Coverage   76.00%   76.81%   +0.81%     
==========================================
  Files          52       52              
  Lines        8951     9111     +160     
==========================================
+ Hits         6803     6999     +196     
+ Misses       2148     2112      -36     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@DemiMarie DemiMarie force-pushed the bugfixes branch 7 times, most recently from 087f0fb to 26c579b Compare April 6, 2024 15:08
QREXEC_SERVICE_ARGUMENT, QREXEC_REQUESTED_TARGET, and
QREXEC_REQUESTED_TARGET_KEYWORD should not be in the environment of the
child process unless explicitly set by the qrexec call.  The current
code fails to unset them.
QREXEC_SERVICE_ARGUMENT, QREXEC_REQUESTED_TARGET and
QREXEC_REQUESTED_TARGET_KEYWORD should not be in the environment of the
child process unless explicitly set by the qrexec call.  Explicitly
unset them.

Also avoid relying on QREXEC_SERVICE_ARGUMENT not containing glob
characters or characters in $IFS.  Commands sent from a VM cannot have
them due to the sanitization in qrexec-daemon, but commands sent from
dom0 could.

Fixes: QubesOS/qubes-issues#9091
@DemiMarie DemiMarie force-pushed the bugfixes branch 4 times, most recently from 27d2d3e to 9b0691c Compare April 7, 2024 21:15
The test currently fails due to QubesOS/qubes-issues#9090.  The test for
socket services will be added along with the fix, as without the fix it
hangs.
daemon/qrexec-daemon.c Outdated Show resolved Hide resolved
libqrexec/exec.c Outdated Show resolved Hide resolved
libqrexec/exec.c Outdated Show resolved Hide resolved
libqrexec/exec.c Outdated Show resolved Hide resolved
libqrexec/exec.c Outdated Show resolved Hide resolved
libqrexec/exec.c Show resolved Hide resolved
@DemiMarie DemiMarie force-pushed the bugfixes branch 2 times, most recently from 9ebd8c0 to 6bfec77 Compare April 9, 2024 00:48
Previously, qubes.Service+ was searched for if the call was from a VM,
but not if the call was from dom0.  Furthermore, a call from dom0 with
no argument would skip the check for a too-long service name.

In the future, service arguments should be required and not passing one
should be treated as an error.  That's for R5.0, though: there is too
much code in dom0 that depends on the current behavior, and Mirage also
depends on receiving a call with no argument at all.

QREXEC_SERVICE_FULL_NAME (for executable services) and the call metadata
(for socket services) still include the actual command, even if the
command does not include "+".  Therefore, code that needs to
differentiate between "no argument" and "empty argument" can do so for
calls from dom0.

Fixes: QubesOS/qubes-issues#9090
This would have previously been allowed.  The test currently fails.

Also add various tests for the modern protocol version, which all pass,
and a test for QSB-089.
There is no point in allowing calls with an empty service name: if the
argument was empty, the call would be unconditionally rejected by the
policy daemon, and even if it was _not_ empty, libqrexec would refuse to
execute the call.  Furthermore, MSG_TRIGGER_SERVICE3 already checks for
empty service names and sends MSG_SERVICE_REFUSED without even querying
the policy daemon, so querying the policy daemon for MSG_TRIGGER_SERVICE
is inconsistent.

Fixes: QubesOS/qubes-issues#9098
This avoids a privilege escalation from unprivileged users (not in the
"qubes" group).

Fixes: QubesOS/qubes-issues#9097
Service config for qubes.Service+arg should also be checked for in the
location for qubes.Service.  Add a test for that.
Copy link
Contributor Author

@DemiMarie DemiMarie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This led to three more bugs being discovered and fixed.

libqrexec/exec.c Show resolved Hide resolved
@qubesos-bot
Copy link

qubesos-bot commented Apr 10, 2024

OpenQA test summary

Complete test suite and dependencies: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.2&build=2024041017-4.2&flavor=pull-requests

New failures, excluding unstable

Compared to: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.2&build=2024031904-4.2&flavor=update

Failed tests

63 failures

Fixed failures

Compared to: https://openqa.qubes-os.org/tests/94176#dependencies

45 fixed
  • system_tests_basic_vm_qrexec_gui

    • TC_20_AudioVM_Pulse_debian-12-xfce: test_220_audio_play_pulseaudio (failure)
      AssertionError: too short audio, expected 10s, got 8.90877551020408...

    • TC_20_AudioVM_Pulse_debian-12-xfce: test_221_audio_rec_muted_pulseaudio (failure)
      AssertionError: source-output for VM test-inst-vm1 not found

    • TC_20_AudioVM_Pulse_fedora-39-xfce: test_220_audio_play_pulseaudio (failure)
      AssertionError: too short audio, expected 10s, got 8.84258503401360...

    • TC_20_AudioVM_Pulse_whonix-workstation-17: test_223_audio_play_hvm (failure)
      AssertionError: Timeout waiting for pulseaudio start in test-inst-v...

    • TC_20_AudioVM_Pulse_whonix-workstation-17: test_224_audio_rec_muted_hvm (failure)
      AssertionError: Timeout waiting for pulseaudio start in test-inst-v...

    • TC_20_AudioVM_Pulse_whonix-workstation-17: test_225_audio_rec_unmuted_hvm (failure)
      AssertionError: Timeout waiting for pulseaudio start in test-inst-v...

    • TC_20_AudioVM_PipeWire_debian-12-xfce: test_226_audio_playback_pipewire (failure)
      AssertionError: too short audio, expected 10s, got 8.83732426303854...

  • system_tests_pvgrub_salt_storage

    • StorageFile: test_000_volatile (failure)
      AssertionError: libvirt event impl drain timeout
  • system_tests_extra

    • TC_00_Appmenus: test_121_create_appvm_with_whitelist (failure)
      '/tmp/tmpj_cxpqzs/test-inst-app/apps/org.qubes-os.qubes-vm-setting...

    • TC_00_QVCTest_debian-12-xfce: test_010_screenshare (failure)
      AssertionError: 4.5510031017096475 not less than 2.0

    • TC_00_QVCTest_debian-12-xfce: test_020_webcam (failure)
      ^^^^^^^^^^^^^^^^^^^^^^... AssertionError

    • TC_00_QVCTest_fedora-39-xfce: test_010_screenshare (failure)
      ^^^^^^^^^^^^^^^^^^^^^^... AssertionError

    • TC_00_QVCTest_fedora-39-xfce: test_020_webcam (error)
      ~~~~^~~~~~~~~~... ZeroDivisionError: division by zero

    • TC_00_QVCTest_whonix-gateway-17: test_010_screenshare (failure)
      AssertionError: 'qubes-video-companion screenshare' exited early (1...

    • TC_00_QVCTest_whonix-gateway-17: test_020_webcam (failure)
      self.assertIsNone(p.returncode)... AssertionError: 1 is not None

    • TC_00_QVCTest_whonix-workstation-17: test_010_screenshare (failure)
      AssertionError: 'qubes-video-companion screenshare' exited early (1...

    • TC_00_QVCTest_whonix-workstation-17: test_020_webcam (failure)
      self.assertIsNone(p.returncode)... AssertionError: 1 is not None

  • system_tests_basic_vm_qrexec_gui_zfs

    • TC_20_AudioVM_Pulse_debian-12-xfce-pool: test_220_audio_play_pulseaudio (failure)
      AssertionError: too short audio, expected 10s, got 8.25297052154195...

    • TC_20_AudioVM_Pulse_fedora-39-xfce-pool: test_220_audio_play_pulseaudio (failure)
      AssertionError: too short audio, expected 10s, got 9.44344671201814...

    • TC_20_AudioVM_Pulse_whonix-workstation-17-pool: test_223_audio_play_hvm (failure)
      AssertionError: Timeout waiting for pulseaudio start in test-inst-v...

    • TC_20_AudioVM_Pulse_whonix-workstation-17-pool: test_224_audio_rec_muted_hvm (failure)
      AssertionError: Timeout waiting for pulseaudio start in test-inst-v...

    • TC_20_AudioVM_Pulse_whonix-workstation-17-pool: test_225_audio_rec_unmuted_hvm (failure)
      AssertionError: Timeout waiting for pulseaudio start in test-inst-v...

    • TC_20_AudioVM_PipeWire_debian-12-xfce-pool: test_226_audio_playback_pipewire (failure)
      AssertionError: too short audio, expected 10s, got 8.33129251700680...

    • TC_20_AudioVM_PipeWire_fedora-39-xfce-pool: test_226_audio_playback_pipewire (failure)
      AssertionError: too short audio, expected 10s, got 8.69671201814059...

  • system_tests_basic_vm_qrexec_gui_btrfs

    • TC_20_AudioVM_Pulse_debian-12-xfce-pool: test_220_audio_play_pulseaudio (failure)
      AssertionError: too short audio, expected 10s, got 8.73378684807256...

    • TC_20_AudioVM_Pulse_fedora-39-xfce-pool: test_220_audio_play_pulseaudio (failure)
      AssertionError: too short audio, expected 10s, got 8.99789115646258...

    • TC_20_AudioVM_Pulse_whonix-workstation-17-pool: test_223_audio_play_hvm (failure)
      AssertionError: Timeout waiting for pulseaudio start in test-inst-v...

    • TC_20_AudioVM_Pulse_whonix-workstation-17-pool: test_224_audio_rec_muted_hvm (failure)
      AssertionError: Timeout waiting for pulseaudio start in test-inst-v...

    • TC_20_AudioVM_Pulse_whonix-workstation-17-pool: test_225_audio_rec_unmuted_hvm (failure)
      AssertionError: Timeout waiting for pulseaudio start in test-inst-v...

    • TC_20_AudioVM_PipeWire_debian-12-xfce-pool: test_226_audio_playback_pipewire (failure)
      AssertionError: too short audio, expected 10s, got 9.47451247165532...

  • system_tests_basic_vm_qrexec_gui_ext4

    • TC_20_AudioVM_Pulse_debian-12-xfce-pool: test_220_audio_play_pulseaudio (failure)
      AssertionError: too short audio, expected 10s, got 8.77791383219954...

    • TC_20_AudioVM_Pulse_whonix-workstation-17-pool: test_223_audio_play_hvm (failure)
      AssertionError: Timeout waiting for pulseaudio start in test-inst-v...

    • TC_20_AudioVM_Pulse_whonix-workstation-17-pool: test_224_audio_rec_muted_hvm (failure)
      AssertionError: Timeout waiting for pulseaudio start in test-inst-v...

    • TC_20_AudioVM_Pulse_whonix-workstation-17-pool: test_225_audio_rec_unmuted_hvm (failure)
      AssertionError: Timeout waiting for pulseaudio start in test-inst-v...

  • system_tests_basic_vm_qrexec_gui_xfs

    • TC_20_AudioVM_Pulse_debian-12-xfce-pool: test_220_audio_play_pulseaudio (failure)
      AssertionError: too short audio, expected 10s, got 9.48453514739229...

    • TC_20_AudioVM_Pulse_fedora-39-xfce-pool: test_220_audio_play_pulseaudio (failure)
      AssertionError: too short audio, expected 10s, got 9.49594104308390...

    • TC_20_AudioVM_Pulse_whonix-workstation-17-pool: test_223_audio_play_hvm (failure)
      AssertionError: Timeout waiting for pulseaudio start in test-inst-v...

    • TC_20_AudioVM_Pulse_whonix-workstation-17-pool: test_224_audio_rec_muted_hvm (failure)
      AssertionError: Timeout waiting for pulseaudio start in test-inst-v...

    • TC_20_AudioVM_Pulse_whonix-workstation-17-pool: test_225_audio_rec_unmuted_hvm (failure)
      AssertionError: Timeout waiting for pulseaudio start in test-inst-v...

  • system_tests_basic_vm_qrexec_gui@hw1

    • TC_20_AudioVM_Pulse_debian-12-xfce: test_223_audio_play_hvm (failure)
      AssertionError: too short audio, expected 10s, got 8.65913832199546...

    • TC_20_AudioVM_Pulse_fedora-39-xfce: test_220_audio_play_pulseaudio (failure)
      AssertionError: Command 'paplay --format=float32le --rate=44100 --c...

    • TC_20_AudioVM_Pulse_fedora-39-xfce: test_223_audio_play_hvm (failure)
      AssertionError: too short audio, expected 10s, got 8.71560090702948...

    • TC_20_AudioVM_Pulse_whonix-workstation-17: test_223_audio_play_hvm (failure)
      AssertionError: Timeout waiting for pulseaudio start in test-inst-v...

    • TC_20_AudioVM_Pulse_whonix-workstation-17: test_224_audio_rec_muted_hvm (failure)
      AssertionError: Timeout waiting for pulseaudio start in test-inst-v...

    • TC_20_AudioVM_Pulse_whonix-workstation-17: test_225_audio_rec_unmuted_hvm (failure)
      AssertionError: Timeout waiting for pulseaudio start in test-inst-v...

Unstable tests

  • system_tests_whonix

    whonix_torbrowser/ (1/5 times with errors)
    whonix_torbrowser/Failed (1/5 times with errors)
    • job 92213 # Test died: no candidate needle with tag(s) 'anon-whonix-tor-brows...
  • system_tests_basic_vm_qrexec_gui

    TC_20_AudioVM_Pulse_debian-12-xfce/test_220_audio_play_pulseaudio (5/5 times with errors)
    • job 92220 AssertionError: Command 'paplay --format=float32le --rate=44100 --c...
    • job 92785 AssertionError: too short audio, expected 10s, got 9.0062358276644,...
    • job 94189 AssertionError: too short audio, expected 10s, got 8.90877551020408...
    • job 94385 AssertionError: too short audio, expected 10s, got 8.26902494331065...
    • job 95164 AssertionError: too short audio, expected 10s, got 9.06335600907029...
    TC_20_AudioVM_Pulse_fedora-39-xfce/test_220_audio_play_pulseaudio (3/5 times with errors)
    • job 92785 AssertionError: too short audio, expected 10s, got 8.95287981859410...
    • job 94189 AssertionError: too short audio, expected 10s, got 8.84258503401360...
    • job 94385 AssertionError: too short audio, expected 10s, got 8.97528344671201...
    TC_20_AudioVM_Pulse_whonix-workstation-17/test_220_audio_play_pulseaudio (3/5 times with errors)
    • job 94189 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94385 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95164 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_debian-12-xfce/test_221_audio_rec_muted_pulseaudio (1/5 times with errors)
    • job 94189 AssertionError: source-output for VM test-inst-vm1 not found
    TC_20_AudioVM_Pulse_whonix-workstation-17/test_221_audio_rec_muted_pulseaudio (3/5 times with errors)
    • job 94189 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94385 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95164 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17/test_222_audio_rec_unmuted_pulseaudio (3/5 times with errors)
    • job 94189 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94385 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95164 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17/test_223_audio_play_hvm (3/5 times with errors)
    • job 94189 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94385 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95164 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17/test_224_audio_rec_muted_hvm (3/5 times with errors)
    • job 94189 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94385 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95164 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17/test_225_audio_rec_unmuted_hvm (3/5 times with errors)
    • job 94189 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94385 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95164 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_PipeWire_debian-12-xfce/test_226_audio_playback_pipewire (4/5 times with errors)
    • job 92785 AssertionError: too short audio, expected 10s, got 9.40351473922902...
    • job 94189 AssertionError: too short audio, expected 10s, got 8.83732426303854...
    • job 94385 AssertionError: too short audio, expected 10s, got 9.34784580498866...
    • job 95164 AssertionError: too short audio, expected 10s, got 9.49097505668934...
    TC_20_AudioVM_PipeWire_fedora-38-xfce/test_226_audio_playback_pipewire (1/5 times with errors)
    • job 92220 AssertionError: too short audio, expected 10s, got 9.49464852607709...
  • system_tests_pvgrub_salt_storage

    TC_41_HVMGrub_fedora-38-xfce/test_000_standalone_vm (1/5 times with errors)
    • job 92232 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_41_HVMGrub_fedora-39-xfce/test_000_standalone_vm (4/5 times with errors)
    • job 92797 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 94201 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 94397 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 95176 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_42_PVHGrub_fedora-39-xfce/test_000_standalone_vm (3/5 times with errors)
    • job 94201 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 94397 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 95176 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    StorageFile/test_000_volatile (1/5 times with errors)
    • job 94201 AssertionError: libvirt event impl drain timeout
    TC_41_HVMGrub_fedora-38-xfce/test_010_template_based_vm (1/5 times with errors)
    • job 92232 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_41_HVMGrub_fedora-39-xfce/test_010_template_based_vm (4/5 times with errors)
    • job 92797 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 94201 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 94397 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 95176 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_42_PVHGrub_fedora-39-xfce/test_010_template_based_vm (3/5 times with errors)
    • job 94201 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 94397 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 95176 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
  • system_tests_splitgpg

    TC_10_Thunderbird_fedora-39-xfce/test_000_send_receive_default (4/5 times with errors)
    • job 92799 Exception: Failed to send message with error 'unknown'
    • job 94203 Exception: Failed to send message with error 'unknown'
    • job 94399 Exception: Failed to send message with error 'unknown'
    • job 95178 Exception: Failed to send message with error 'unknown'
    TC_10_Thunderbird_fedora-38-xfce/test_010_send_receive_inline_signed_only (1/5 times with errors)
    • job 92234 Exception: Failed to send message with error 'unknown'
    TC_10_Thunderbird_fedora-39-xfce/test_010_send_receive_inline_signed_only (4/5 times with errors)
    • job 92799 Exception: Failed to send message with error 'unknown'
    • job 94203 Exception: Failed to send message with error 'unknown'
    • job 94399 Exception: Failed to send message with error 'unknown'
    • job 95178 Exception: Failed to send message with error 'unknown'
    TC_10_Thunderbird_fedora-39-xfce/test_020_send_receive_inline_with_attachment (4/5 times with errors)
    • job 92799 Exception: Failed to send message with error 'unknown'
    • job 94203 Exception: Failed to send message with error 'unknown'
    • job 94399 Exception: Failed to send message with error 'unknown'
    • job 95178 Exception: Failed to send message with error 'unknown'
  • system_tests_extra

    TC_00_QVCTest_debian-12-xfce/test_010_screenshare (2/5 times with errors)
    • job 94184 AssertionError: 4.5510031017096475 not less than 2.0
    • job 94380 ^^^^^^^^^^^^^^^^^^^^^^... AssertionError
    TC_00_QVCTest_fedora-39-xfce/test_010_screenshare (2/5 times with errors)
    • job 94184 ^^^^^^^^^^^^^^^^^^^^^^... AssertionError
    • job 94380 ^^^^^^^^^^^^^^^^^^^^^^... AssertionError
    TC_00_QVCTest_whonix-gateway-17/test_010_screenshare (2/5 times with errors)
    • job 94184 AssertionError: 'qubes-video-companion screenshare' exited early (1...
    • job 94380 AssertionError: 'qubes-video-companion screenshare' exited early (1...
    TC_00_QVCTest_whonix-workstation-17/test_010_screenshare (2/5 times with errors)
    • job 94184 AssertionError: 'qubes-video-companion screenshare' exited early (1...
    • job 94380 AssertionError: 'qubes-video-companion screenshare' exited early (1...
    TC_00_QVCTest_debian-12-xfce/test_020_webcam (2/5 times with errors)
    • job 94184 ^^^^^^^^^^^^^^^^^^^^^^... AssertionError
    • job 94380 ^^^^^^^^^^^^^^^^^^^^^^... AssertionError
    TC_00_QVCTest_fedora-39-xfce/test_020_webcam (2/5 times with errors)
    • job 94184 ~~~~^~~~~~~~~~... ZeroDivisionError: division by zero
    • job 94380 ~~~~^~~~~~~~~~... ZeroDivisionError: division by zero
    TC_00_QVCTest_whonix-gateway-17/test_020_webcam (2/5 times with errors)
    • job 94184 self.assertIsNone(p.returncode)... AssertionError: 1 is not None
    • job 94380 self.assertIsNone(p.returncode)... AssertionError: 1 is not None
    TC_00_QVCTest_whonix-workstation-17/test_020_webcam (2/5 times with errors)
    • job 94184 self.assertIsNone(p.returncode)... AssertionError: 1 is not None
    • job 94380 self.assertIsNone(p.returncode)... AssertionError: 1 is not None
    TC_00_Appmenus/test_121_create_appvm_with_whitelist (2/5 times with errors)
    • job 94184 '/tmp/tmpj_cxpqzs/test-inst-app/apps/org.qubes-os.qubes-vm-setting...
    • job 94380 '/tmp/tmpb0w885he/test-inst-app/apps/org.qubes-os.qubes-vm-setting...
  • system_tests_usbproxy

    TC_20_USBProxy_core3_debian-12-xfce/test_030_detach (1/5 times with errors)
    • job 95187 AssertionError: 0 == 0 : Device disconnection failed
    TC_20_USBProxy_core3_debian-12-xfce/test_070_attach_not_installed_front (1/5 times with errors)
    • job 95152 qubesusbproxy.core3ext.QubesUSBException: Device attach failed: 202...
    TC_20_USBProxy_core3_whonix-gateway-17/test_070_attach_not_installed_front (1/5 times with errors)
    • job 95152 qubesusbproxy.core3ext.QubesUSBException: Device attach failed: 202...
  • system_tests_network_updates

    TC_10_QvmTemplate_debian-12-xfce/test_010_template_install (1/5 times with errors)
    • job 94200 AssertionError: libvirt event impl drain timeout
    VmUpdates_debian-12-xfce/test_131_no_network_qubes_vm_update_cli (1/5 times with errors)
    • job 92231 AssertionError: qubes-vm-update return unexpected code: 0 in (1, 2)
  • system_tests_dispvm

    TC_20_DispVM_fedora-39-xfce/test_100_open_in_dispvm (1/5 times with errors)
    • job 94390 AssertionError: './open-file test.txt' failed with ./open-file test...
  • system_tests_whonix@hw1

    whonix_torbrowser/ (1/5 times with errors)
    whonix_torbrowser/Failed (1/5 times with errors)
    • job 92213 # Test died: no candidate needle with tag(s) 'anon-whonix-tor-brows...
  • system_tests_basic_vm_qrexec_gui_zfs

    TC_00_Basic/test_120_start_standalone_with_cdrom_dom0 (2/5 times with errors)
    • job 92775 AssertionError: 1 != 0 : b'Timeout waiting for dom0:loop4 device to...
    • job 95180 AssertionError: 1 != 0 : b'Timeout waiting for dom0:loop4 device to...
    TC_20_AudioVM_Pulse_debian-12-xfce-pool/test_220_audio_play_pulseaudio (4/5 times with errors)
    • job 92775 AssertionError: too short audio, expected 10s, got 8.92689342403628...
    • job 94179 AssertionError: too short audio, expected 10s, got 8.25297052154195...
    • job 94379 AssertionError: Command 'paplay --format=float32le --rate=44100 --c...
    • job 95180 AssertionError: too short audio, expected 10s, got 8.96707482993197...
    TC_20_AudioVM_Pulse_fedora-38-xfce-pool/test_220_audio_play_pulseaudio (1/5 times with errors)
    • job 92000 AssertionError: too short audio, expected 10s, got 9.49195011337868...
    TC_20_AudioVM_Pulse_fedora-39-xfce-pool/test_220_audio_play_pulseaudio (3/5 times with errors)
    • job 92775 AssertionError: too short audio, expected 10s, got 8.97582766439909...
    • job 94179 AssertionError: too short audio, expected 10s, got 9.44344671201814...
    • job 95180 AssertionError: too short audio, expected 10s, got 8.61614512471655...
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_220_audio_play_pulseaudio (3/5 times with errors)
    • job 94179 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94379 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95180 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_221_audio_rec_muted_pulseaudio (3/5 times with errors)
    • job 94179 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94379 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95180 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_222_audio_rec_unmuted_pulseaudio (3/5 times with errors)
    • job 94179 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94379 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95180 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_fedora-39-xfce-pool/test_223_audio_play_hvm (1/5 times with errors)
    • job 95180 AssertionError: frequency 3517.990148595454 not in specified range,...
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_223_audio_play_hvm (3/5 times with errors)
    • job 94179 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94379 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95180 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_224_audio_rec_muted_hvm (3/5 times with errors)
    • job 94179 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94379 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95180 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_225_audio_rec_unmuted_hvm (3/5 times with errors)
    • job 94179 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94379 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95180 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_PipeWire_debian-12-xfce-pool/test_226_audio_playback_pipewire (2/5 times with errors)
    • job 92775 AssertionError: too short audio, expected 10s, got 9.49938775510204...
    • job 94179 AssertionError: too short audio, expected 10s, got 8.33129251700680...
    TC_20_AudioVM_PipeWire_fedora-39-xfce-pool/test_226_audio_playback_pipewire (1/5 times with errors)
    • job 94179 AssertionError: too short audio, expected 10s, got 8.69671201814059...
  • system_tests_basic_vm_qrexec_gui_btrfs

    TC_20_AudioVM_Pulse_debian-12-xfce-pool/test_220_audio_play_pulseaudio (5/5 times with errors)
    • job 92221 AssertionError: too short audio, expected 10s, got 8.16569160997732...
    • job 92786 AssertionError: too short audio, expected 10s, got 6.71056689342403...
    • job 94190 AssertionError: too short audio, expected 10s, got 8.73378684807256...
    • job 94386 AssertionError: too short audio, expected 10s, got 9.32555555555555...
    • job 95165 AssertionError: too short audio, expected 10s, got 8.28539682539682...
    TC_20_AudioVM_Pulse_fedora-38-xfce-pool/test_220_audio_play_pulseaudio (1/5 times with errors)
    • job 92221 AssertionError: too short audio, expected 10s, got 9.05950113378684...
    TC_20_AudioVM_Pulse_fedora-39-xfce-pool/test_220_audio_play_pulseaudio (4/5 times with errors)
    • job 92786 AssertionError: too short audio, expected 10s, got 8.91759637188208...
    • job 94190 AssertionError: too short audio, expected 10s, got 8.99789115646258...
    • job 94386 AssertionError: too short audio, expected 10s, got 9.21634920634920...
    • job 95165 AssertionError: too short audio, expected 10s, got 9.25759637188208...
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_220_audio_play_pulseaudio (3/5 times with errors)
    • job 94190 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94386 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95165 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_221_audio_rec_muted_pulseaudio (3/5 times with errors)
    • job 94190 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94386 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95165 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_222_audio_rec_unmuted_pulseaudio (3/5 times with errors)
    • job 94190 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94386 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95165 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_223_audio_play_hvm (3/5 times with errors)
    • job 94190 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94386 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95165 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_224_audio_rec_muted_hvm (3/5 times with errors)
    • job 94190 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94386 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95165 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_225_audio_rec_unmuted_hvm (3/5 times with errors)
    • job 94190 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94386 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95165 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_PipeWire_debian-12-xfce-pool/test_226_audio_playback_pipewire (2/5 times with errors)
    • job 92221 AssertionError: too short audio, expected 10s, got 9.43346938775510...
    • job 94190 AssertionError: too short audio, expected 10s, got 9.47451247165532...
    TC_20_AudioVM_PipeWire_fedora-38-xfce-pool/test_226_audio_playback_pipewire (1/5 times with errors)
    • job 92221 AssertionError: too short audio, expected 10s, got 9.48482993197278...
    TC_20_AudioVM_PipeWire_fedora-39-xfce-pool/test_226_audio_playback_pipewire (2/5 times with errors)
    • job 92786 AssertionError: too short audio, expected 10s, got 9.09208616780045...
    • job 94386 AssertionError: too short audio, expected 10s, got 7.64335600907029...
  • system_tests_basic_vm_qrexec_gui_ext4

    TC_20_AudioVM_Pulse_debian-12-xfce-pool/test_220_audio_play_pulseaudio (5/5 times with errors)
    • job 92222 AssertionError: too short audio, expected 10s, got 7.86945578231292...
    • job 92787 AssertionError: too short audio, expected 10s, got 8.15968253968254...
    • job 94191 AssertionError: too short audio, expected 10s, got 7.61653061224489...
    • job 94268 AssertionError: too short audio, expected 10s, got 8.77791383219954...
    • job 95166 AssertionError: too short audio, expected 10s, got 9.13657596371882...
    TC_20_AudioVM_Pulse_fedora-38-xfce-pool/test_220_audio_play_pulseaudio (1/5 times with errors)
    • job 92222 AssertionError: too short audio, expected 10s, got 9.04922902494331...
    TC_20_AudioVM_Pulse_fedora-39-xfce-pool/test_220_audio_play_pulseaudio (2/5 times with errors)
    • job 92787 AssertionError: too short audio, expected 10s, got 8.98693877551020...
    • job 95166 AssertionError: too short audio, expected 10s, got 9.01439909297052...
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_220_audio_play_pulseaudio (3/5 times with errors)
    • job 94191 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94268 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95166 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_221_audio_rec_muted_pulseaudio (3/5 times with errors)
    • job 94191 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94268 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95166 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_222_audio_rec_unmuted_pulseaudio (3/5 times with errors)
    • job 94191 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94268 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95166 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_223_audio_play_hvm (3/5 times with errors)
    • job 94191 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94268 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95166 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_224_audio_rec_muted_hvm (3/5 times with errors)
    • job 94191 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94268 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95166 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_225_audio_rec_unmuted_hvm (3/5 times with errors)
    • job 94191 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94268 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95166 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_PipeWire_fedora-39-xfce-pool/test_226_audio_playback_pipewire (2/5 times with errors)
    • job 94268 AssertionError: too short audio, expected 10s, got 9.14578231292517...
    • job 95166 AssertionError: too short audio, expected 10s, got 9.48775510204081...
  • system_tests_basic_vm_qrexec_gui_xfs

    TC_30_Gui_daemon/test_000_clipboard (1/5 times with errors)
    • job 92788 self.assertEqual(test_string, test_o... AssertionError: 'test23' != ''
    TC_20_AudioVM_Pulse_debian-12-xfce-pool/test_220_audio_play_pulseaudio (5/5 times with errors)
    • job 92223 AssertionError: too short audio, expected 10s, got 9.39870748299319...
    • job 92788 AssertionError: too short audio, expected 10s, got 8.30274376417233...
    • job 94192 AssertionError: too short audio, expected 10s, got 9.48453514739229...
    • job 94388 AssertionError: too short audio, expected 10s, got 9.32911564625850...
    • job 95167 AssertionError: too short audio, expected 10s, got 8.98888888888888...
    TC_20_AudioVM_Pulse_fedora-39-xfce-pool/test_220_audio_play_pulseaudio (3/5 times with errors)
    • job 92788 AssertionError: too short audio, expected 10s, got 9.10965986394557...
    • job 94192 AssertionError: too short audio, expected 10s, got 9.49594104308390...
    • job 94388 AssertionError: too short audio, expected 10s, got 8.73632653061224...
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_220_audio_play_pulseaudio (3/5 times with errors)
    • job 94192 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94388 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95167 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_221_audio_rec_muted_pulseaudio (3/5 times with errors)
    • job 94192 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94388 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95167 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_debian-12-xfce-pool/test_222_audio_rec_unmuted_pulseaudio (1/5 times with errors)
    • job 94388 AssertionError: only silence detected, no useful audio data
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_222_audio_rec_unmuted_pulseaudio (3/5 times with errors)
    • job 94192 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94388 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95167 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_223_audio_play_hvm (3/5 times with errors)
    • job 94192 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94388 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95167 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_224_audio_rec_muted_hvm (3/5 times with errors)
    • job 94192 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94388 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95167 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17-pool/test_225_audio_rec_unmuted_hvm (3/5 times with errors)
    • job 94192 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94388 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95167 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_PipeWire_debian-12-xfce-pool/test_226_audio_playback_pipewire (2/5 times with errors)
    • job 92788 AssertionError: too short audio, expected 10s, got 9.49714285714285...
    • job 95167 AssertionError: too short audio, expected 10s, got 9.48408163265306...
    TC_20_AudioVM_PipeWire_fedora-39-xfce-pool/test_226_audio_playback_pipewire (2/5 times with errors)
    • job 94388 AssertionError: too short audio, expected 10s, got 9.47580498866213...
    • job 95167 AssertionError: too short audio, expected 10s, got 9.47213151927437...
  • system_tests_basic_vm_qrexec_gui@hw1

    TC_20_AudioVM_Pulse_debian-12-xfce/test_220_audio_play_pulseaudio (5/5 times with errors)
    • job 92220 AssertionError: Command 'paplay --format=float32le --rate=44100 --c...
    • job 92785 AssertionError: too short audio, expected 10s, got 9.0062358276644,...
    • job 94189 AssertionError: too short audio, expected 10s, got 8.90877551020408...
    • job 94385 AssertionError: too short audio, expected 10s, got 8.26902494331065...
    • job 95164 AssertionError: too short audio, expected 10s, got 9.06335600907029...
    TC_20_AudioVM_Pulse_fedora-39-xfce/test_220_audio_play_pulseaudio (3/5 times with errors)
    • job 92785 AssertionError: too short audio, expected 10s, got 8.95287981859410...
    • job 94189 AssertionError: too short audio, expected 10s, got 8.84258503401360...
    • job 94385 AssertionError: too short audio, expected 10s, got 8.97528344671201...
    TC_20_AudioVM_Pulse_whonix-workstation-17/test_220_audio_play_pulseaudio (3/5 times with errors)
    • job 94189 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94385 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95164 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_debian-12-xfce/test_221_audio_rec_muted_pulseaudio (1/5 times with errors)
    • job 94189 AssertionError: source-output for VM test-inst-vm1 not found
    TC_20_AudioVM_Pulse_whonix-workstation-17/test_221_audio_rec_muted_pulseaudio (3/5 times with errors)
    • job 94189 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94385 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95164 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17/test_222_audio_rec_unmuted_pulseaudio (3/5 times with errors)
    • job 94189 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94385 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95164 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17/test_223_audio_play_hvm (3/5 times with errors)
    • job 94189 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94385 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95164 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17/test_224_audio_rec_muted_hvm (3/5 times with errors)
    • job 94189 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94385 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95164 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_Pulse_whonix-workstation-17/test_225_audio_rec_unmuted_hvm (3/5 times with errors)
    • job 94189 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 94385 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    • job 95164 AssertionError: Timeout waiting for pulseaudio start in test-inst-v...
    TC_20_AudioVM_PipeWire_debian-12-xfce/test_226_audio_playback_pipewire (4/5 times with errors)
    • job 92785 AssertionError: too short audio, expected 10s, got 9.40351473922902...
    • job 94189 AssertionError: too short audio, expected 10s, got 8.83732426303854...
    • job 94385 AssertionError: too short audio, expected 10s, got 9.34784580498866...
    • job 95164 AssertionError: too short audio, expected 10s, got 9.49097505668934...
    TC_20_AudioVM_PipeWire_fedora-38-xfce/test_226_audio_playback_pipewire (1/5 times with errors)
    • job 92220 AssertionError: too short audio, expected 10s, got 9.49464852607709...

DemiMarie added a commit to DemiMarie/qubes-core-qrexec that referenced this pull request Apr 10, 2024
Instead, directly execute the command from C.

Marked as draft for five reasons:

1. MSG_JUST_EXEC is now unable to invoke services.  This means that
   wait=False qrexec calls from the Admin API made in dom0 do not work.

2. There is no logging of the service's stderr anymore.

3. libqrexec-utils has an ABI break, meaning that a new library cannot
   work with old programs and visa versa.

4. This PR is based on another PR (QubesOS#139), not main.

5. All variables with names beginning with QREXEC_ are stripped from the
   environment.  This is a change in behavior compared to the current
   code.

1, 2, 3, and 4 must be fixed before this can be merged.  5 is a design
decision that could go either way.
DemiMarie added a commit to DemiMarie/qubes-core-qrexec that referenced this pull request Apr 10, 2024
Instead, directly execute the command from C.

Marked as draft for five reasons:

1. MSG_JUST_EXEC is now unable to invoke services.  This means that
   wait=False qrexec calls from the Admin API made in dom0 do not work.

2. There is no logging of the service's stderr anymore.

3. libqrexec-utils has an ABI break, meaning that a new library cannot
   work with old programs and visa versa.

4. This PR is based on another PR (QubesOS#139), not main.

5. All variables with names beginning with QREXEC_ are stripped from the
   environment.  This is a change in behavior compared to the current
   code.

1, 2, 3, and 4 must be fixed before this can be merged.  5 is a design
decision that could go either way.

Fixes: QubesOS/qubes-issues#9062
DemiMarie added a commit to DemiMarie/qubes-core-qrexec that referenced this pull request Apr 10, 2024
Instead, directly execute the command from C.

Marked as draft for five reasons:

1. MSG_JUST_EXEC is now unable to invoke services.  This means that
   wait=False qrexec calls from the Admin API made in dom0 do not work.

2. There is no logging of the service's stderr anymore.

3. libqrexec-utils has an ABI break, meaning that a new library cannot
   work with old programs and visa versa.

4. This PR is based on another PR (QubesOS#139), not main.

5. All variables with names beginning with QREXEC_ are stripped from the
   environment.  This is a change in behavior compared to the current
   code.

1, 2, 3, and 4 must be fixed before this can be merged.  5 is a design
decision that could go either way.

Fixes: QubesOS/qubes-issues#9062
DemiMarie added a commit to DemiMarie/qubes-core-qrexec that referenced this pull request Apr 11, 2024
Instead, directly execute the command from C.

Marked as draft for four reasons:

1. There is no logging of the service's stderr anymore.

2. libqrexec-utils has an ABI break, meaning that a new library cannot
   work with old programs and visa versa.

3. This PR is based on another PR (QubesOS#139), not main.

4. All variables with names beginning with QREXEC_ are stripped from the
   environment.  This is a change in behavior compared to the current
   code.

1, 2, and 3 must be fixed before this can be merged.  4 is a design
decision that could go either way.

Fixes: QubesOS/qubes-issues#9062
@marmarek marmarek merged commit 2be9adc into QubesOS:main Apr 11, 2024
3 of 4 checks passed
DemiMarie added a commit to DemiMarie/qubes-core-qrexec that referenced this pull request Apr 11, 2024
Instead, directly execute the command from C.

Marked as draft for four reasons:

1. There is no logging of the service's stderr anymore.

2. This PR is based on another PR (QubesOS#139), not main.

3. All variables with names beginning with QREXEC_ are stripped from the
   environment.  This is a change in behavior compared to the current
   code.

1 and 2 must be fixed before this can be merged.  3 is a design decision
that could go either way.

Fixes: QubesOS/qubes-issues#9062
@DemiMarie DemiMarie deleted the bugfixes branch April 11, 2024 00:40
DemiMarie added a commit to DemiMarie/qubes-core-qrexec that referenced this pull request Apr 11, 2024
Instead, directly execute the command from C.

Marked as draft for two reasons:

1. This PR is based on another PR (QubesOS#139), not main.

2. All variables with names beginning with QREXEC_ are stripped from the
   environment, except for QREXEC_SERVICE_PATH.  This is a change in
   behavior compared to the current code.

1 must be fixed before this can be merged.  3 is a design decision that
could go either way.

Fixes: QubesOS/qubes-issues#9062
DemiMarie added a commit to DemiMarie/qubes-core-qrexec that referenced this pull request Apr 16, 2024
Instead, directly execute the command from C.

Marked as draft for two reasons:

1. This PR is based on another PR (QubesOS#139), not main.

2. All variables with names beginning with QREXEC_ are stripped from the
   environment, except for QREXEC_SERVICE_PATH.  This is a change in
   behavior compared to the current code.

1 must be fixed before this can be merged.  2 is a design decision that
could go either way.

Fixes: QubesOS/qubes-issues#9062
DemiMarie added a commit to DemiMarie/qubes-core-qrexec that referenced this pull request Apr 16, 2024
Instead, directly execute the command from C.

Marked as draft for two reasons:

1. This PR is based on another PR (QubesOS#139), not main.

2. All variables with names beginning with QREXEC_ are stripped from the
   environment, except for QREXEC_SERVICE_PATH.  This is a change in
   behavior compared to the current code.

1 must be fixed before this can be merged.  2 is a design decision that
could go either way.

Fixes: QubesOS/qubes-issues#9062
DemiMarie added a commit to DemiMarie/qubes-core-qrexec that referenced this pull request Apr 17, 2024
Instead, directly execute the command from C.

Marked as draft for two reasons:

1. This PR is based on another PR (QubesOS#139), not main.

2. All variables with names beginning with QREXEC_ are stripped from the
   environment, except for QREXEC_SERVICE_PATH.  This is a change in
   behavior compared to the current code.

1 must be fixed before this can be merged.  2 is a design decision that
could go either way.

Fixes: QubesOS/qubes-issues#9062
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment