Skip to content

Support fork in LiteBox userland - #1483

Merged
Weidong Cui (wdcui) merged 21 commits into
uliteboxfrom
wdcui/ulitebox/fork
Oct 3, 2026
Merged

Weidong Cui (wdcui) merged 21 commits into
uliteboxfrom
wdcui/ulitebox/fork

Conversation

@wdcui

@wdcui Weidong Cui (wdcui) commented Oct 2, 2026 •

Copy link
Copy Markdown
Member

This PR adds fork support to LiteBox userland for Linux x86-64 guests when process duplication is allowed: fork (or clone without CLONE_VM) pauses the parent's other threads, streams its memory into a broker-held image through a new write-child-memory operation, and starts a fresh runner that maps the image at the parent's addresses and resumes only the calling thread. Parents with shared mappings or runner-local descriptors get EAGAIN. Supporting changes keep LiteBox-placed guest memory below a new PLACEMENT_ADDR_MAX, cap child images with a broker budget, raise shared-buffer transfers to 1 MiB, and have the userland broker launch runners without ASLR and wait on them with a pidfd.

Weidong Cui (wdcui) and others added 10 commits October 2, 2026 19:01
Single-threaded Linux x86-64 guests can now call fork, or clone without
CLONE_VM, when process duplication is allowed. The parent shim uploads its
memory to the pending child's broker-held image with a new WriteChildMemory
operation and starts the child with a fork startup carrying its registers,
FS base, program break, memory regions, descriptors, signal state,
credentials, working directory, and umask. The userland broker passes the
sealed image memfd to the child runner and launches runners without address
randomization, so the child runner restores each region at its parent's
address before enabling seccomp and resumes the child from fork.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9c83ae9b-67f4-4c14-9f8b-e4b3fba456fe
Release the broker's fork image once the child runner is set up, copy
execute-only regions by making them readable only while snapshotting, and
make the fork tests check the child's restored cwd and execute-only code.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9c83ae9b-67f4-4c14-9f8b-e4b3fba456fe
Fork is always available in the shim; whether a process may be
duplicated is decided by the broker, which denies it with EPERM unless
process duplication is allowed.

Add PageManagementProvider::PLACEMENT_ADDR_MAX, an upper bound for
addresses the memory manager chooses itself, while fixed-address
mappings may still reach TASK_ADDR_MAX. On x86-64 Linux userland it is
0x7000_0000_0000, hints are placed exactly with MAP_FIXED_NOREPLACE,
and native remaps use MREMAP_FIXED into a destination claimed first, so
the host kernel never moves guest memory into the host's mmap area.
This lets a forked child restore every region at the parent's address
without racing the fresh runner's own host mappings.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9c83ae9b-67f4-4c14-9f8b-e4b3fba456fe
Move the loop that maps the child's regions and fills them from the
parent's image into process.rs as Task::restore_fork_image, beside
write_fork_image whose layout it reads, and have set_forked_init_state
make the child return zero from fork.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9c83ae9b-67f4-4c14-9f8b-e4b3fba456fe
Map the fork image into the child instead of reading it, read guest
files in 512 KiB chunks, keep the tail of grown file mappings as fresh
anonymous memory in remap_pages, and poll runner startup every 1 ms.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9c83ae9b-67f4-4c14-9f8b-e4b3fba456fe
The forking thread interrupts the other guest threads and waits until each
parks at a safe point (before re-entering the guest or before blocking in a
wait) while the parent is snapshotted; the child gets only the calling thread.
fork now restarts with ERESTARTNOINTR if interrupted while pausing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9c83ae9b-67f4-4c14-9f8b-e4b3fba456fe
- Fall back cleanly when a native mremap move fails instead of panicking.
- Remember whether an inaccessible area ever held data (VM_HAS_CONTENTS) so
  fork copies PROT_NONE pages with contents while leaving bare reservations
  uncopied.
- Count pending child images against a broker-wide budget (4 GiB default).
- Write child images straight from the shared transfer buffer and merge
  adjacent shared-buffer slots into one range.
- Wait for runner exit and control connections with a pidfd and the
  listener on Linux instead of polling every millisecond.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9c83ae9b-67f4-4c14-9f8b-e4b3fba456fe
Copying remaps pass only access permissions to the platform, waits
recompute their timeout after the interrupt check, growing remaps treat
areas differing only in whether they hold data as one, the fork image
scan folds pages and trims zero pages, and child memory writes use up
to 16 shared-buffer slots.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9c83ae9b-67f4-4c14-9f8b-e4b3fba456fe
Growing a mapping now only checks that areas differing in whether they may
hold data count as one, without merging them, so failed or in-place growth
leaves them apart. Moving such a range uses the same check, so an
overflowing size fails instead of panicking. The threaded fork test spins
and forks by system call so its forkers enter fork at once.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9c83ae9b-67f4-4c14-9f8b-e4b3fba456fe
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9c83ae9b-67f4-4c14-9f8b-e4b3fba456fe
Weidong Cui (wdcui) and others added 11 commits October 2, 2026 19:05
…panic

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9c83ae9b-67f4-4c14-9f8b-e4b3fba456fe
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9c83ae9b-67f4-4c14-9f8b-e4b3fba456fe
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9c83ae9b-67f4-4c14-9f8b-e4b3fba456fe
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9c83ae9b-67f4-4c14-9f8b-e4b3fba456fe
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9c83ae9b-67f4-4c14-9f8b-e4b3fba456fe
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9c83ae9b-67f4-4c14-9f8b-e4b3fba456fe
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9c83ae9b-67f4-4c14-9f8b-e4b3fba456fe
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9c83ae9b-67f4-4c14-9f8b-e4b3fba456fe
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9c83ae9b-67f4-4c14-9f8b-e4b3fba456fe
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9c83ae9b-67f4-4c14-9f8b-e4b3fba456fe
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 9c83ae9b-67f4-4c14-9f8b-e4b3fba456fe
@wdcui Weidong Cui (wdcui) changed the title Continue fork children in fresh runners from a parent snapshot Support fork in LiteBox userland Oct 3, 2026
@wdcui
Weidong Cui (wdcui) added this pull request to the merge queue Oct 3, 2026
@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown

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

Click for details
--- failure trait_method_parameter_count_changed: pub trait method parameter count changed ---

Description:
A trait method now takes a different number of parameters.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#trait-item-signature
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/trait_method_parameter_count_changed.ron

Failed in:
  ProcessLauncher::launch now takes 3 instead of 2 parameters, in file /home/runner/work/litebox/litebox/litebox_broker_host/src/lib.rs:894

--- failure constructible_struct_adds_field: struct exhaustively constructible through public API adds field ---

Description:
A pub struct that could be exhaustively constructed with a literal using only public API has a new pub field, breaking existing exhaustive literals.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field BrokerConnection.process_image in /home/runner/work/litebox/litebox/litebox_broker_local_userland/src/linux.rs:42

--- failure constructible_struct_adds_field: struct exhaustively constructible through public API adds field ---

Description:
A pub struct that could be exhaustively constructed with a literal using only public API has a new pub field, breaking existing exhaustive literals.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field StartChildProcessRequest.startup in /home/runner/work/litebox/litebox/litebox_broker_protocol/src/process.rs:102

--- failure enum_missing: pub enum removed or renamed ---

Description:
A publicly-visible enum cannot be imported by its prior path. A `pub use` may have been removed, or the enum itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/enum_missing.ron

Failed in:
  enum litebox_broker_protocol::process::StartChildProcessSource, previously in file /home/runner/work/litebox/litebox/target/semver-checks/git-ulitebox/3cdd3a1d27ae8ebe8330ee827e609a6628be3b22/litebox_broker_protocol/src/process.rs:93

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/enum_variant_added.ron

Failed in:
  variant BrokerOperation:WriteChildMemory in /home/runner/work/litebox/litebox/litebox_broker_protocol/src/message.rs:99
  variant BrokerResult:ChildMemoryWritten in /home/runner/work/litebox/litebox/litebox_broker_protocol/src/message.rs:341

--- failure struct_pub_field_missing: pub struct's pub field removed or renamed ---

Description:
A publicly-visible struct has at least one public field that is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/struct_pub_field_missing.ron

Failed in:
  field source of struct StartChildProcessRequest, previously in file /home/runner/work/litebox/litebox/target/semver-checks/git-ulitebox/3cdd3a1d27ae8ebe8330ee827e609a6628be3b22/litebox_broker_protocol/src/process.rs:107

--- 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.50.0/src/lints/enum_no_repr_variant_discriminant_changed.ron

Failed in:
  variant SyscallRequest::Vfork 0 -> 1 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2154
  variant SyscallRequest::Wait4 1 -> 2 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2155
  variant SyscallRequest::Exit 2 -> 3 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2161
  variant SyscallRequest::ExitGroup 3 -> 4 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2164
  variant SyscallRequest::Read 4 -> 5 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2167
  variant SyscallRequest::Write 5 -> 6 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2172
  variant SyscallRequest::Lseek 6 -> 7 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2177
  variant SyscallRequest::Close 7 -> 8 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2182
  variant SyscallRequest::CloseRange 8 -> 9 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2185
  variant SyscallRequest::Stat 9 -> 10 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2190
  variant SyscallRequest::Fstat 10 -> 11 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2194
  variant SyscallRequest::Lstat 11 -> 12 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2198
  variant SyscallRequest::Mkdirat 12 -> 13 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2202
  variant SyscallRequest::Chdir 13 -> 14 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2207
  variant SyscallRequest::Mmap 14 -> 15 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2210
  variant SyscallRequest::Mprotect 15 -> 16 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2218
  variant SyscallRequest::Munmap 16 -> 17 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2223
  variant SyscallRequest::Mremap 17 -> 18 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2227
  variant SyscallRequest::Brk 18 -> 19 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2234
  variant SyscallRequest::RtSigprocmask 19 -> 20 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2237
  variant SyscallRequest::RtSigaction 20 -> 21 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2243
  variant SyscallRequest::RtSigreturn 21 -> 22 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2249
  variant SyscallRequest::Kill 22 -> 23 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2250
  variant SyscallRequest::Tkill 23 -> 24 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2254
  variant SyscallRequest::Tgkill 24 -> 25 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2258
  variant SyscallRequest::Sigaltstack 25 -> 26 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2263
  variant SyscallRequest::Ioctl 26 -> 27 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2267
  variant SyscallRequest::Pread64 27 -> 28 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2271
  variant SyscallRequest::Pwrite64 28 -> 29 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2277
  variant SyscallRequest::Sendfile 29 -> 30 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2283
  variant SyscallRequest::Readv 30 -> 31 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2289
  variant SyscallRequest::Writev 31 -> 32 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2294
  variant SyscallRequest::Preadv 32 -> 33 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2299
  variant SyscallRequest::Pwritev 33 -> 34 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2306
  variant SyscallRequest::Faccessat 34 -> 35 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2313
  variant SyscallRequest::Madvise 35 -> 36 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2319
  variant SyscallRequest::Dup 36 -> 37 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2324
  variant SyscallRequest::Socket 37 -> 38 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2329
  variant SyscallRequest::Socketpair 38 -> 39 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2334
  variant SyscallRequest::Connect 39 -> 40 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2340
  variant SyscallRequest::Accept 40 -> 41 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2345
  variant SyscallRequest::Sendto 41 -> 42 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2351
  variant SyscallRequest::Sendmsg 42 -> 43 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2359
  variant SyscallRequest::Sendmmsg 43 -> 44 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2364
  variant SyscallRequest::Recvfrom 44 -> 45 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2370
  variant SyscallRequest::Recvmsg 45 -> 46 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2378
  variant SyscallRequest::Recvmmsg 46 -> 47 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2383
  variant SyscallRequest::Shutdown 47 -> 48 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2390
  variant SyscallRequest::Bind 48 -> 49 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2394
  variant SyscallRequest::Listen 49 -> 50 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2399
  variant SyscallRequest::Setsockopt 50 -> 51 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2403
  variant SyscallRequest::Getsockopt 51 -> 52 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2410
  variant SyscallRequest::Getsockname 52 -> 53 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2417
  variant SyscallRequest::Getpeername 53 -> 54 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2422
  variant SyscallRequest::Uname 54 -> 55 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2427
  variant SyscallRequest::Fcntl 55 -> 56 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2430
  variant SyscallRequest::Getcwd 56 -> 57 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2434
  variant SyscallRequest::EpollCtl 57 -> 58 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2438
  variant SyscallRequest::EpollPwait 58 -> 59 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2444
  variant SyscallRequest::EpollCreate 59 -> 60 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2452
  variant SyscallRequest::Ppoll 60 -> 61 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2456
  variant SyscallRequest::Pselect 61 -> 62 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2463
  variant SyscallRequest::ArchPrctl 62 -> 63 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2471
  variant SyscallRequest::Readlink 63 -> 64 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2474
  variant SyscallRequest::Readlinkat 64 -> 65 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2479
  variant SyscallRequest::Openat 65 -> 66 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2485
  variant SyscallRequest::Ftruncate 66 -> 67 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2491
  variant SyscallRequest::Mknodat 67 -> 68 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2495
  variant SyscallRequest::Unlinkat 68 -> 69 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2501
  variant SyscallRequest::Newfstatat 69 -> 70 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2506
  variant SyscallRequest::Eventfd2 70 -> 71 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2512
  variant SyscallRequest::Pipe2 71 -> 72 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2516
  variant SyscallRequest::Clone 72 -> 73 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2520
  variant SyscallRequest::Clone3 73 -> 74 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2523
  variant SyscallRequest::SetThreadArea 74 -> 75 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2528
  variant SyscallRequest::ClockGettime 75 -> 76 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2531
  variant SyscallRequest::ClockGetres 76 -> 77 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2535
  variant SyscallRequest::ClockNanosleep 77 -> 78 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2539
  variant SyscallRequest::Gettimeofday 78 -> 79 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2545
  variant SyscallRequest::Time 79 -> 80 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2549
  variant SyscallRequest::Getrlimit 80 -> 81 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2552
  variant SyscallRequest::Setrlimit 81 -> 82 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2556
  variant SyscallRequest::Prlimit 82 -> 83 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2560
  variant SyscallRequest::SetTidAddress 83 -> 84 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2571
  variant SyscallRequest::Gettid 84 -> 85 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2574
  variant SyscallRequest::SetRobustList 85 -> 86 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2575
  variant SyscallRequest::GetRobustList 86 -> 87 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2578
  variant SyscallRequest::GetRandom 87 -> 88 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2583
  variant SyscallRequest::Getpid 88 -> 89 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2588
  variant SyscallRequest::Getppid 89 -> 90 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2589
  variant SyscallRequest::Getuid 90 -> 91 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2590
  variant SyscallRequest::Geteuid 91 -> 92 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2591
  variant SyscallRequest::Getgid 92 -> 93 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2592
  variant SyscallRequest::Getegid 93 -> 94 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2593
  variant SyscallRequest::Sysinfo 94 -> 95 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2594
  variant SyscallRequest::CapGet 95 -> 96 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2597
  variant SyscallRequest::GetDirent64 96 -> 97 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2601
  variant SyscallRequest::SchedGetAffinity 97 -> 98 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2606
  variant SyscallRequest::SchedYield 98 -> 99 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2611
  variant SyscallRequest::Futex 99 -> 100 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2612
  variant SyscallRequest::Execve 100 -> 101 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2615
  variant SyscallRequest::Umask 101 -> 102 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2620
  variant SyscallRequest::Prctl 102 -> 103 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2623
  variant SyscallRequest::Alarm 103 -> 104 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2626
  variant SyscallRequest::Pause 104 -> 105 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2629
  variant SyscallRequest::SetITimer 105 -> 106 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2630
  variant SyscallRequest::GetITimer 106 -> 107 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2635
  variant SyscallRequest::Statx 107 -> 108 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2639
  variant SyscallRequest::TimerfdCreate 108 -> 109 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2646
  variant SyscallRequest::TimerfdSettime 109 -> 110 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2650
  variant SyscallRequest::TimerfdGettime 110 -> 111 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2656

--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/inherent_method_missing.ron

Failed in:
  LinuxProgramStartup::decode, previously in file /home/runner/work/litebox/litebox/target/semver-checks/git-ulitebox/3cdd3a1d27ae8ebe8330ee827e609a6628be3b22/litebox_common_linux/src/program_startup.rs:170

Merged via the queue into ulitebox with commit d798f1d Oct 3, 2026
11 of 12 checks passed
@wdcui
Weidong Cui (wdcui) deleted the wdcui/ulitebox/fork branch October 3, 2026 21:43
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