Skip to content

install: retry strip program spawn on ETXTBSY - #14646

Open
krosci wants to merge 1 commit into
uutils:mainfrom
krosci:fix/install-strip-text-file-busy
Open

krosci wants to merge 1 commit into
uutils:mainfrom
krosci:fix/install-strip-text-file-busy

Conversation

@krosci

@krosci krosci commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

On Linux, exec(2) of a script (e.g. the #!/bin/sh strip wrapper) transiently fails with ETXTBSY when another process is concurrently exec'ing the same interpreter, because the kernel denies write access to the file for the duration of the exec; CI's parallel test load turns this into an intermittent failure. BSD kernels already sleep and retry on ETXTBSY (see exec(3)), and install now does the same, retrying the strip-program spawn up to three times with a short delay, so genuine errors (missing program, permission, non-zero exit) still fail immediately. Unit tests cover the retry path and confirm only ETXTBSY triggers a retry.

Closes #14520

@github-actions

Copy link
Copy Markdown

GNU testsuite comparison:

Skip an intermittent issue tests/date/date-locale-hour (fails in this run but passes in the 'main' branch)
Skipping an intermittent issue tests/cut/bounded-memory (passes in this run but fails in the 'main' branch)
Skipping an intermittent issue tests/date/resolution (passes in this run but fails in the 'main' branch)
Skipping an intermittent issue tests/tail/tail-n0f (passes in this run but fails in the 'main' branch)
Note: The gnu test tests/tail/pipe-f is now being skipped but was previously passing.
Note: The gnu test tests/misc/write-errors was skipped on 'main' but is now failing.

@krosci
krosci force-pushed the fix/install-strip-text-file-busy branch from 680b59c to db64ed6 Compare September 18, 2026 10:51
@krosci

krosci commented Sep 18, 2026

Copy link
Copy Markdown
Contributor Author

@xtqqczze could you take a look at it? Thanks!

@xtqqczze

Copy link
Copy Markdown
Contributor

could you take a look at it? Thanks!

With #14586, it would be possible to remove all the cfg(unix) annotations. I’ll wait for a decision on that PR before proceeding.

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.

test_install_and_strip intermittent failure

2 participants