Skip to content

env: apply --ignore/--default/--block-signal to real-time signals#12703

Open
sylvestre wants to merge 2 commits into
uutils:mainfrom
sylvestre:env-timeout-rtsignals
Open

env: apply --ignore/--default/--block-signal to real-time signals#12703
sylvestre wants to merge 2 commits into
uutils:mainfrom
sylvestre:env-timeout-rtsignals

Conversation

@sylvestre

Copy link
Copy Markdown
Contributor

Should make test tests/env/env-signal-handler.sh pass

@github-actions

github-actions Bot commented Jun 7, 2026

Copy link
Copy Markdown

GNU testsuite comparison:

Skip an intermittent issue tests/tail/symlink (fails in this run but passes in the 'main' branch)
Congrats! The gnu test tests/env/env-signal-handler is no longer failing!
Note: The gnu test tests/tail/tail-n0f is now being skipped but was previously passing.
Note: The gnu test tests/unexpand/bounded-memory is now being skipped but was previously passing.

@sylvestre sylvestre force-pushed the env-timeout-rtsignals branch 2 times, most recently from a53349d to 6d353ac Compare June 7, 2026 19:08
@codspeed-hq

codspeed-hq Bot commented Jun 7, 2026

Copy link
Copy Markdown

Merging this PR will degrade performance by 3.42%

⚠️ Different runtime environments detected

Some benchmarks with significant performance changes were compared across different runtime environments,
which may affect the accuracy of the results.

Open the report in CodSpeed to investigate

❌ 1 regressed benchmark
✅ 322 untouched benchmarks
⏩ 46 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation echo_consecutive_calls 121.7 µs 126 µs -3.42%

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing sylvestre:env-timeout-rtsignals (3eb6e0d) with main (b2ddbab)2

Open in CodSpeed

Footnotes

  1. 46 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

  2. No successful run was found on main (758791a) during the generation of this report, so b2ddbab was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

sylvestre added 2 commits June 7, 2026 21:43
…lpers

ChildExt::send_signal/send_signal_group and install_signal_handler went through
nix's Signal enum, which cannot represent SIGRTMIN..=SIGRTMAX, so real-time
signals were silently dropped (e.g. timeout never forwarded them). Send signals
via rustix (kill_process/kill_current_process_group), building the Signal with
from_raw_unchecked for the real-time range.

While here, move the remaining helpers off nix and onto rustix
(geteuid/getegid/getgid/getpid/getpgrp/getsid, fstat, poll). Signal
dispositions still use libc: rustix only exposes them in its experimental,
doc(hidden) runtime module, which is undefined behavior in a process that links
libc.

Should make test tests/env/env-signal-handler.sh pass
signal_from_value converted via nix's Signal enum, which has no variants for
SIGRTMIN..=SIGRTMAX, so those actions were silently skipped. Carry the raw
signal number and apply the disposition with libc (rustix has no stable
signal-disposition API).

Should make test tests/env/env-signal-handler.sh pass
@sylvestre sylvestre force-pushed the env-timeout-rtsignals branch from 6d353ac to 3eb6e0d Compare June 7, 2026 19:43
@sylvestre sylvestre requested a review from cakebaker June 8, 2026 07:03
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