Skip to content

evaluator: queue builds while the evaluation runs - #297

Open
amaanq wants to merge 1 commit into
drv-show-formatfrom
stream-builds
Open

amaanq wants to merge 1 commit into
drv-show-formatfrom
stream-builds

Conversation

@amaanq

@amaanq amaanq commented Oct 14, 2026

Copy link
Copy Markdown
Member

No description provided.

@amaanq
amaanq added this pull request to stack #298 October 14, 2026 05:46
@DerDennisOP

This comment was marked as off-topic.

@Kruziikrel13

This comment was marked as off-topic.

@DerDennisOP

This comment was marked as off-topic.

Comment thread crates/evaluator/src/builds.rs Outdated
) -> color_eyre::Result<Option<Vec<Build>>> {
let jobs = jobs
.into_iter()
.filter(|job| !self.name_to_build.contains_key(&job.name))

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Restart now preserves running and succeeded builds. The retry reads current jobset inputs and writes their newly computed hash here, but this filter skips incoming jobs solely because their names already exist.

The consequence of this is that evaluation can complete using the old build while being cached under the new inputs hash, i.e., metric ton of cache misses. Previously restart deleted all builds before re-eval.

Comment thread crates/evaluator/src/eval_loop.rs Outdated
Comment on lines +602 to +609
circus_notification::dispatch_build_created(
pool,
build,
project,
&eval.commit_hash,
notifications_config,
notification_secret_key,
)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

An early batch can synthesize dependency build B, which finishes before a later batch discovers B's top-level job name. Its original completion notification is suppressed because dependency-prefixed jobs are internal. The callback above then invokes only the created notification path, which excludes Slack, email, and generic-webhook channels, those channels never receive B's named-job completion

@NotAShelf

Copy link
Copy Markdown
Member

CI is failing by the way.

Agents sat idle for the whole evaluation on large jobsets. Each batch
commits with its dependency builds and edges, so list_pending never
sees a build before what it waits on.
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.

4 participants