Skip to content

Expose exit code of rebuilds#252

Closed
aparcar wants to merge 1 commit into
kpcyrd:mainfrom
aparcar:exit_ok
Closed

Expose exit code of rebuilds#252
aparcar wants to merge 1 commit into
kpcyrd:mainfrom
aparcar:exit_ok

Conversation

@aparcar

@aparcar aparcar commented Jul 17, 2026

Copy link
Copy Markdown

If the rebuild fails, i.e. due to low storage, missing dependencies or other reason based on the setup, not the software itself, expose that error. As a result, such package is marked as FAIL instead of BAD, helping an investigator to distinguish package issues with build system issues.

If the rebuild fails, i.e. due to low storage, missing dependencies or other
reason based on the setup, not the software itself, expose that error. As a
result, such package is marked as FAIL instead of BAD, helping an investigator
to distinguish package issues with build system issues.

Signed-off-by: Paul Spooren <mail@aparcar.org>
Copilot AI review requested due to automatic review settings July 17, 2026 09:01

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR changes the rebuild verification step so that a rebuild backend process that exits unsuccessfully causes the overall rebuild to fail, allowing the system to report an infrastructure/build-system failure (FAIL) instead of treating it like a package reproducibility result (BAD).

Changes:

  • Capture the backend process success boolean from proc::run.
  • Convert an unsuccessful backend exit into an error (bail!) so the rebuild is reported as failed.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread worker/src/rebuild.rs
Comment on lines +270 to +273
let exit_ok = proc::run(bin.as_ref(), &[input_path], opts, log).await?;
if !exit_ok {
bail!("Rebuild backend exited with a non-zero status");
}
Comment thread worker/src/rebuild.rs
};

proc::run(bin.as_ref(), &[input_path], opts, log).await?;
let exit_ok = proc::run(bin.as_ref(), &[input_path], opts, log).await?;
@kpcyrd

kpcyrd commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Ignoring the exit code is intentional :) A build may have multiple build ouputs, and e.g. archlinux-repro and debrebuild set exit=1 if at least one of them failed to reproduce. For the other ones we want to record that we could successfully reproduce them, however.

If I recall correctly, the status is set to FAIL if no package was produced, which should apply when a build was aborted due to low disk.

@aparcar

aparcar commented Jul 17, 2026

Copy link
Copy Markdown
Author

Okay, thanks for the clarification. I'll close this and check why my OpenWrt scripts resulted in BAD not FAIL

@aparcar aparcar closed this Jul 17, 2026
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.

3 participants