Skip to content

Support rt_sigpending and rt_sigsuspend in the Linux shim - #1764

Merged
Weiteng Chen (CvvT) merged 4 commits into
uliteboxfrom
weiteng/ulitebox-sigsuspend
Oct 31, 2026
Merged

Weiteng Chen (CvvT) merged 4 commits into
uliteboxfrom
weiteng/ulitebox-sigsuspend

Conversation

@CvvT

Copy link
Copy Markdown
Contributor

No description provided.

Share signal-owned private queues with the process thread map so disposition changes discard pending signals across all threads. Preserve separate vfork queues and queue identity across exec, and add sibling-discard and lifecycle regressions with bounded test waits.
Merge the vfork branches of the sigaction discard, rename the private queue accessors, add a shared test helper for installing actions, and check that a vfork child ignoring signals keeps the parent's pending ones.
@CvvT
Weiteng Chen (CvvT) marked this pull request as ready for review October 31, 2026 22:25
@CvvT
Weiteng Chen (CvvT) added this pull request to the merge queue Oct 31, 2026
@github-actions

Copy link
Copy Markdown

🤖 SemverChecks 🤖 ⚠️ Potential breaking API changes detected ⚠️

Click for details
--- failure enum_no_repr_variant_discriminant_changed: enum variant had its discriminant change value ---

Description:
The enum's variant had its discriminant value change. This breaks downstream code that used its value via a numeric cast like `as isize`.
        ref: https://doc.rust-lang.org/reference/items/enumerations.html#assigning-discriminant-values
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/enum_no_repr_variant_discriminant_changed.ron

Failed in:
  variant SyscallRequest::RtSigaction 24 -> 26 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2769
  variant SyscallRequest::RtSigreturn 25 -> 27 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2775
  variant SyscallRequest::Kill 26 -> 28 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2776
  variant SyscallRequest::Tkill 27 -> 29 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2780
  variant SyscallRequest::Tgkill 28 -> 30 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2784
  variant SyscallRequest::Sigaltstack 29 -> 31 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2789
  variant SyscallRequest::Ioctl 30 -> 32 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2793
  variant SyscallRequest::Pread64 31 -> 33 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2797
  variant SyscallRequest::Pwrite64 32 -> 34 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2803
  variant SyscallRequest::Sendfile 33 -> 35 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2809
  variant SyscallRequest::Readv 34 -> 36 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2815
  variant SyscallRequest::Writev 35 -> 37 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2820
  variant SyscallRequest::Preadv 36 -> 38 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2825
  variant SyscallRequest::Pwritev 37 -> 39 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2832
  variant SyscallRequest::Faccessat 38 -> 40 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2839
  variant SyscallRequest::Madvise 39 -> 41 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2845
  variant SyscallRequest::Dup 40 -> 42 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2850
  variant SyscallRequest::Socket 41 -> 43 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2855
  variant SyscallRequest::Socketpair 42 -> 44 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2860
  variant SyscallRequest::Connect 43 -> 45 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2866
  variant SyscallRequest::Accept 44 -> 46 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2871
  variant SyscallRequest::Sendto 45 -> 47 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2877
  variant SyscallRequest::Sendmsg 46 -> 48 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2885
  variant SyscallRequest::Sendmmsg 47 -> 49 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2890
  variant SyscallRequest::Recvfrom 48 -> 50 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2896
  variant SyscallRequest::Recvmsg 49 -> 51 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2904
  variant SyscallRequest::Recvmmsg 50 -> 52 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2909
  variant SyscallRequest::Shutdown 51 -> 53 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2916
  variant SyscallRequest::Bind 52 -> 54 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2920
  variant SyscallRequest::Listen 53 -> 55 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2925
  variant SyscallRequest::Setsockopt 54 -> 56 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2929
  variant SyscallRequest::Getsockopt 55 -> 57 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2936
  variant SyscallRequest::Getsockname 56 -> 58 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2943
  variant SyscallRequest::Getpeername 57 -> 59 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2948
  variant SyscallRequest::Uname 58 -> 60 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2953
  variant SyscallRequest::Statfs 59 -> 61 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2956
  variant SyscallRequest::Fstatfs 60 -> 62 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2960
  variant SyscallRequest::Fcntl 61 -> 63 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2964
  variant SyscallRequest::Getcwd 62 -> 64 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2968
  variant SyscallRequest::EpollCtl 63 -> 65 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2972
  variant SyscallRequest::EpollPwait 64 -> 66 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2978
  variant SyscallRequest::EpollCreate 65 -> 67 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2986
  variant SyscallRequest::Poll 66 -> 68 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2990
  variant SyscallRequest::Ppoll 67 -> 69 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2995
  variant SyscallRequest::Pselect 68 -> 70 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3002
  variant SyscallRequest::ArchPrctl 69 -> 71 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3010
  variant SyscallRequest::Readlink 70 -> 72 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3013
  variant SyscallRequest::Readlinkat 71 -> 73 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3018
  variant SyscallRequest::Openat 72 -> 74 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3024
  variant SyscallRequest::Ftruncate 73 -> 75 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3030
  variant SyscallRequest::Mknodat 74 -> 76 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3034
  variant SyscallRequest::Unlinkat 75 -> 77 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3040
  variant SyscallRequest::Renameat2 76 -> 78 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3045
  variant SyscallRequest::Newfstatat 77 -> 79 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3052
  variant SyscallRequest::Eventfd2 78 -> 80 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3058
  variant SyscallRequest::Pipe2 79 -> 81 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3062
  variant SyscallRequest::Clone 80 -> 82 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3066
  variant SyscallRequest::Clone3 81 -> 83 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3069
  variant SyscallRequest::SetThreadArea 82 -> 84 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3074
  variant SyscallRequest::ClockGettime 83 -> 85 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3077
  variant SyscallRequest::ClockGetres 84 -> 86 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3081
  variant SyscallRequest::ClockNanosleep 85 -> 87 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3085
  variant SyscallRequest::Gettimeofday 86 -> 88 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3091
  variant SyscallRequest::Time 87 -> 89 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3095
  variant SyscallRequest::Getrlimit 88 -> 90 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3098
  variant SyscallRequest::Setrlimit 89 -> 91 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3102
  variant SyscallRequest::Prlimit 90 -> 92 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3106
  variant SyscallRequest::SetTidAddress 91 -> 93 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3117
  variant SyscallRequest::Gettid 92 -> 94 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3120
  variant SyscallRequest::SetRobustList 93 -> 95 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3121
  variant SyscallRequest::GetRobustList 94 -> 96 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3124
  variant SyscallRequest::GetRandom 95 -> 97 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3129
  variant SyscallRequest::Getpid 96 -> 98 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3134
  variant SyscallRequest::Getppid 97 -> 99 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3135
  variant SyscallRequest::Setpgid 98 -> 100 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3136
  variant SyscallRequest::Getpgid 99 -> 101 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3140
  variant SyscallRequest::Getpgrp 100 -> 102 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3143
  variant SyscallRequest::Setsid 101 -> 103 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3144
  variant SyscallRequest::Getsid 102 -> 104 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3145
  variant SyscallRequest::Getuid 103 -> 105 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3148
  variant SyscallRequest::Geteuid 104 -> 106 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3149
  variant SyscallRequest::Getgid 105 -> 107 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3150
  variant SyscallRequest::Getegid 106 -> 108 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3151
  variant SyscallRequest::Sysinfo 107 -> 109 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3152
  variant SyscallRequest::CapGet 108 -> 110 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3155
  variant SyscallRequest::GetDirent64 109 -> 111 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3159
  variant SyscallRequest::SchedGetAffinity 110 -> 112 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3164
  variant SyscallRequest::SchedGetParam 111 -> 113 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3169
  variant SyscallRequest::SchedGetScheduler 112 -> 114 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3173
  variant SyscallRequest::SchedYield 113 -> 115 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3176
  variant SyscallRequest::Futex 114 -> 116 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3177
  variant SyscallRequest::Execve 115 -> 117 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3180
  variant SyscallRequest::Umask 116 -> 118 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3185
  variant SyscallRequest::Prctl 117 -> 119 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3188
  variant SyscallRequest::Alarm 118 -> 120 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3191
  variant SyscallRequest::Pause 119 -> 121 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3194
  variant SyscallRequest::RestartSyscall 120 -> 122 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3195
  variant SyscallRequest::SetITimer 121 -> 123 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3196
  variant SyscallRequest::GetITimer 122 -> 124 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3201
  variant SyscallRequest::Statx 123 -> 125 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3205
  variant SyscallRequest::TimerfdCreate 124 -> 126 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3212
  variant SyscallRequest::TimerfdSettime 125 -> 127 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3216
  variant SyscallRequest::TimerfdGettime 126 -> 128 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:3222

Merged via the queue into ulitebox with commit 1dc1758 Oct 31, 2026
11 checks passed
@CvvT
Weiteng Chen (CvvT) deleted the weiteng/ulitebox-sigsuspend branch October 31, 2026 22:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant