Skip to content

Fix missing rollouts in dashboard - #531

Open
zhouhelena1 wants to merge 5 commits into
mainfrom
helena/fix-missing-rollouts
Open

Fix missing rollouts in dashboard#531
zhouhelena1 wants to merge 5 commits into
mainfrom
helena/fix-missing-rollouts

Conversation

@zhouhelena1

@zhouhelena1 zhouhelena1 commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

The dashboard reads training-rollouts-summary/summary.json to build the rollout list.

  1. Previously, some rollouts are stored but missing in the summary and thus, missing from the dashboard. This PR recovers missing summaries from canonical records, preserve legacy summaries, and cache recovery so subsequent requests avoid rereading large payloads and the global legacy index.
  2. Previously, concurrent writes can lose summary entries. This PR uses one summary file per rollout and commits it together with its data, preventing shared-index races and interrupted overwrites from leaving stale summaries.
  3. This PR also adds size-aware timeouts, bounded transient retries, a matching shutdown budget, and explicit failure diagnostics.

@github-actions

Copy link
Copy Markdown

devin-ai-integration[bot]

This comment was marked as resolved.

@zhouhelena1 zhouhelena1 changed the title Fix missing rollout summaries and retry transient uploads Fix missing rollouts Sep 10, 2026
@zhouhelena1 zhouhelena1 changed the title Fix missing rollouts Fix missing rollouts in dashboard Sep 10, 2026
devin-ai-integration[bot]

This comment was marked as resolved.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Devin Review found 1 new potential issue.

Devin Review

continue
return sorted(summaries, key=lambda summary: summary.rollout_id)
key = f"{training_run_id}__{summary.rollout_id:08d}"
if key not in summaries and key not in keys:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Malformed canonical record hides rollout

When a canonical record is malformed, list_summaries_for_run discards its valid legacy summary. Failed canonical validation then removes that rollout from the dashboard.

Learn more

A legacy summary is usable independently of its canonical rollout payload. This condition suppresses that summary solely because the canonical filename exists. The later recovery loop catches malformed canonical data and continues, but it cannot restore the discarded summary. The method therefore omits a rollout that it could still list.

Example: run__00000012.json exists but contains an invalid rollout payload, while the legacy index has a valid summary for rollout 12. The legacy summary is skipped, canonical validation fails, and rollout 12 is absent instead of retaining its summary.

Recommended fix: Keep valid legacy summaries as fallbacks for canonical keys. Replace them only after the corresponding canonical payload validates and produces a rebuilt summary.

Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

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