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

Support socket services with MSG_JUST_EXEC #142

Merged
merged 1 commit into from
Apr 17, 2024

Conversation

DemiMarie
Copy link
Contributor

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.

Copy link

codecov bot commented Apr 12, 2024

Codecov Report

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

Project coverage is 77.35%. Comparing base (daee92e) to head (dfdfb33).
Report is 1 commits behind head on main.

Files Patch % Lines
libqrexec/exec.c 80.95% 4 Missing ⚠️
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.
📢 Have feedback on the report? Share it here.

Copy link
Member

@marmarek marmarek left a comment

Choose a reason for hiding this comment

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

This has now conflicts on tests (some of this changes were also in #144 )

agent/qrexec-agent-data.c Outdated Show resolved Hide resolved
libqrexec/exec.c Outdated Show resolved Hide resolved
libqrexec/buffer.c Outdated Show resolved Hide resolved
libqrexec/libqrexec-utils.h Outdated Show resolved Hide resolved
@qubesos-bot
Copy link

qubesos-bot commented Apr 14, 2024

OpenQA test summary

Complete 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 unstable

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

Failed tests

30 failures
  • system_tests_basic_vm_qrexec_gui@hw1

  • system_tests_basic_vm_qrexec_gui

  • system_tests_pvgrub_salt_storage

    • TC_41_HVMGrub_fedora-39-xfce: test_000_standalone_vm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • TC_41_HVMGrub_fedora-39-xfce: test_010_template_based_vm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • [unstable] TC_42_PVHGrub_fedora-39-xfce: test_000_standalone_vm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • [unstable] TC_42_PVHGrub_fedora-39-xfce: test_010_template_based_vm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

  • system_tests_splitgpg

  • system_tests_network_updates

    • TC_11_QvmTemplateMgmtVM_whonix-gateway-17: test_000_template_list (failure)
      AssertionError: libvirt event impl drain timeout

    • TC_11_QvmTemplateMgmtVM_whonix-gateway-17: test_010_template_install (failure + cleanup)
      ^^^^^^^^^^^^^^^^^^^^^^... AssertionError

  • system_tests_dispvm

    • [unstable] TC_20_DispVM_fedora-39-xfce: test_100_open_in_dispvm (failure)
      AssertionError: Timeout waiting for editor window
  • system_tests_basic_vm_qrexec_gui_zfs

  • system_tests_basic_vm_qrexec_gui_btrfs

  • system_tests_basic_vm_qrexec_gui_ext4

  • system_tests_basic_vm_qrexec_gui_xfs

Fixed failures

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

5 fixed
  • system_tests_pvgrub_salt_storage

    • TC_41_HVMGrub_debian-12-xfce: test_000_standalone_vm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • TC_41_HVMGrub_debian-12-xfce: test_010_template_based_vm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

  • system_tests_network_ipv6

  • system_tests_basic_vm_qrexec_gui_xfs

Unstable tests

  • system_tests_basic_vm_qrexec_gui@hw1

    TC_20_AudioVM_Pulse_debian-12-xfce/test_220_audio_play_pulseaudio (4/5 times with errors)
    • 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 (4/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...
    • job 96347 AssertionError: only silence detected, no useful audio data
    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 (4/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...
    • job 96347 AssertionError: only silence detected, no useful audio data
    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...
  • system_tests_basic_vm_qrexec_gui

    TC_20_AudioVM_Pulse_debian-12-xfce/test_220_audio_play_pulseaudio (4/5 times with errors)
    • 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 (4/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...
    • job 96347 AssertionError: only silence detected, no useful audio data
    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 (4/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...
    • job 96347 AssertionError: only silence detected, no useful audio data
    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...
  • system_tests_pvgrub_salt_storage

    TC_41_HVMGrub_debian-12-xfce/test_000_standalone_vm (1/5 times with errors)
    • job 96359 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_42_PVHGrub_fedora-39-xfce/test_000_standalone_vm (4/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...
    • job 96359 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_debian-12-xfce/test_010_template_based_vm (1/5 times with errors)
    • job 96359 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_42_PVHGrub_fedora-39-xfce/test_010_template_based_vm (4/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...
    • job 96359 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
  • 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_ipv6

    VmIPv6Networking_fedora-39-xfce/test_031_firewall_dynamic_block (1/5 times with errors)
    • job 96357 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^... AssertionError
  • 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
    TC_11_QvmTemplateMgmtVM_fedora-39-xfce/test_010_template_install (1/5 times with errors)
    • job 96358 AssertionError: libvirt event impl drain timeout
  • 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_devices

    TC_00_List_debian-12-xfce/test_001_list_loop_mounted (1/5 times with errors)
    • job 96351 AssertionError: Device test-inst-vm:loop0 (/tmp/test.img) should no...
  • 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-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 (4/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...
    • job 96337 AssertionError: only silence detected, no useful audio data
    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 (4/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...
    • job 96337 AssertionError: only silence detected, no useful audio data
    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 (4/5 times with errors)
    • 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-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 (4/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...
    • job 96348 AssertionError: only silence detected, no useful audio data
    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 (4/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...
    • job 96348 AssertionError: only silence detected, no useful audio data
    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 (1/5 times with errors)
    • job 94190 AssertionError: too short audio, expected 10s, got 9.47451247165532...
    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 (4/5 times with errors)
    • 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-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 (4/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...
    • job 96349 AssertionError: only silence detected, no useful audio data
    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 (4/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...
    • job 96349 AssertionError: only silence detected, no useful audio data
    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...

@DemiMarie DemiMarie force-pushed the just-exec-sockets branch 2 times, most recently from 6f5c442 to 2aef335 Compare April 16, 2024 19:53
@DemiMarie DemiMarie requested a review from marmarek April 16, 2024 19:54
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.
@marmarek marmarek merged commit b0c56f1 into QubesOS:main Apr 17, 2024
4 checks passed
@DemiMarie DemiMarie deleted the just-exec-sockets branch April 17, 2024 22:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants