Skip to content

Update verify tasks thresholds - #1949

Open
rsc3 wants to merge 11 commits into
developfrom
update-verify-tasks-thresholds
Open

Update verify tasks thresholds#1949
rsc3 wants to merge 11 commits into
developfrom
update-verify-tasks-thresholds

Conversation

@rsc3

@rsc3 rsc3 commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

…-determinism

Description

Give your PR a concise yet descriptive title.
Please explain the changes you made here.
Explain the motivation for making this change. What existing problem does the pull request solve?
Mention any issues fixed, addressed, or otherwise related to this pull request, including issue numbers or hard links for issues in other repos.
You can delete these instructions once you have written your PR description.


Checklist

If you can answer "yes" to the following items, please add a checkmark next to the appropriate checklist item(s) and notify our WARP team by tagging @broadinstitute/warp-admins in a comment on this PR.

  • Did you add inputs, outputs, or tasks to a workflow?
  • Did you modify, delete or move: file paths, file names, input names, output names, or task names?
  • If you made a changelog update, did you update the pipeline version number?

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

Remember to squash merge!

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

🔍Changelog Validation Results:

Comparing changelogs for pipelines that differ from the versions on 'origin/develop':
All changelog files are valid for this release.

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

🔍Version Validation Results:

Comparing versions and changelogs for pipelines that differ from the versions on 'origin/staging':
All WDLs and changelog files appear to be valid for this release.

The threshold-update commit dropped the def calculate_md5 header,
hash_md5 init, and file-open lines, leaving the read loop dangling.
Every run failed with IndentationError before comparing any metric.
Restore the 3 lines so md5 comparison runs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

Remember to squash merge!

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

🔍Changelog Validation Results:

Comparing changelogs for pipelines that differ from the versions on 'origin/develop':
All changelog files are valid for this release.

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

🔍Version Validation Results:

Comparing versions and changelogs for pipelines that differ from the versions on 'origin/staging':
All WDLs and changelog files appear to be valid for this release.

The threshold-update commit dropped five metrics the scientific
Multiome test compares (fraction_confidently_mapped, fraction_unmapped,
fraction_nonnuclear, tss_enrichment_score,
fraction_of_high-quality_fragments_overlapping_peaks) and the
thresholds{k.lower()} normalization line. Without them those metrics
default to a 0 tolerance and fail on any nondeterministic drift, and
the mixed-case fraction_Q30 key never matched the lowercased lookup.

Re-add the five metrics (fraction_unmapped and overlapping_peaks
widened to 1e-5 / 1e-6 since their prior values still flaked), add a
number_of_cells tolerance (~10 cells), and restore the .lower()
normalization. Verified against submission 22618e75: all 14 previously
failing metrics now within threshold.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

Remember to squash merge!

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

🔍Version Validation Results:

Comparing versions and changelogs for pipelines that differ from the versions on 'origin/staging':
All WDLs and changelog files appear to be valid for this release.

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

🔍Changelog Validation Results:

Comparing changelogs for pipelines that differ from the versions on 'origin/develop':
All changelog files are valid for this release.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

Remember to squash merge!

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

🔍Changelog Validation Results:

Comparing changelogs for pipelines that differ from the versions on 'origin/develop':
All changelog files are valid for this release.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

🔍Version Validation Results:

Comparing versions and changelogs for pipelines that differ from the versions on 'origin/staging':
All WDLs and changelog files appear to be valid for this release.

The CompareAtacLibraryMetrics thresholds were tuned to barely clear a
single run's observed drift (several at 1.1-1.7x), which flakes
intermittently as run-to-run nondeterminism varies. Recompute every
metric that drifted in the latest scientific run to exactly 2x its
observed relative drift (|test-truth|/truth). Still orders of magnitude
below any real regression, so no loss of sensitivity; buys margin
against flakes.

Metrics decreased from prior values (number_of_cells,
mean_raw_read_pairs_per_cell, median_high-quality_fragments_per_cell,
overlapping_tss) were previously >2x and are brought in line with the
uniform 2x-observed policy.
Capture the principle behind the CompareAtacLibraryMetrics threshold
update: when a human accepts an observed nondeterminism drift, set the
tolerance to double it, and note that metrics missing from a
percentage-threshold table default to exact match.
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

Remember to squash merge!

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

🔍Changelog Validation Results:

Comparing changelogs for pipelines that differ from the versions on 'origin/develop':
All changelog files are valid for this release.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

🔍Version Validation Results:

Comparing versions and changelogs for pipelines that differ from the versions on 'origin/staging':
All WDLs and changelog files appear to be valid for this release.

FISS_MCP_RUNBOOK.md at repo root documents the path from a Terra
submission URL to the exact failing task/metric via the fiss-mcp tools:
the Test<Pipeline>.Verify subworkflow drill-down (empty parent logs),
GCS log traversal, stdout-over-stderr, and stale-run checks. Scoped to
Terra-based WDL pipeline tests only. Container-specific read quirks are
marked as sandboxed-agent caveats that don't apply to a human with
gsutil. Linked near the top of AGENTS.md.
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

Remember to squash merge!

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

🔍Version Validation Results:

Comparing versions and changelogs for pipelines that differ from the versions on 'origin/staging':
All WDLs and changelog files appear to be valid for this release.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

🔍Changelog Validation Results:

Comparing changelogs for pipelines that differ from the versions on 'origin/develop':
All changelog files are valid for this release.

CompareH5adFilesGEX (called as CompareH5adFilesOptimus, and by Multiome/
PairedTag/SlideSeq/SlideTags) gates emptydrops_* column-sum drift at a
hard 1%. emptydrops_PValue is an EmptyDrops Monte-Carlo p-value column
and drifted 1.13% in a TestOptimus scientific run, tripping the 1% gate.
Per the nondeterminism-threshold rule (AGENTS.md: double the
human-accepted drift), raise the tolerance to 2x observed = 2.3%. Hoisted
the constant to a single emptydrops_tol so the log strings can't drift
from the value.
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

Remember to squash merge!

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

🔍Changelog Validation Results:

Comparing changelogs for pipelines that differ from the versions on 'origin/develop':
All changelog files are valid for this release.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

🔍Version Validation Results:

Comparing versions and changelogs for pipelines that differ from the versions on 'origin/staging':
All WDLs and changelog files appear to be valid for this release.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

Remember to squash merge!

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

🔍Changelog Validation Results:

Comparing changelogs for pipelines that differ from the versions on 'origin/develop':
All changelog files are valid for this release.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

🔍Version Validation Results:

Comparing versions and changelogs for pipelines that differ from the versions on 'origin/staging':
All WDLs and changelog files appear to be valid for this release.

@rsc3 rsc3 mentioned this pull request Sep 10, 2026
3 tasks
@rsc3

rsc3 commented Sep 10, 2026

Copy link
Copy Markdown
Collaborator Author

GH run 33893240806 "Test PeakCalling" → completed/success on attempt 2 (updated 16:02:51Z, sha 1d46f60).

The re-run drove Terra submission 383ff911… (today 15:24Z) → workflow Succeeded, 5/5 tasks Done. Attempt 1 had only 4 tasks with Verify blocked; this time CopyToTestResults ran
(VM bootstrapped clean) and Verify ran and passed.

Chain confirmed end to end:

  • Attempt 1 (Terra 6ae21ff0): GCP Batch VM startup couldn't pull gcr.io/google.com/cloudsdktool/google-cloud-cli:499.0.0-slim (manifest unknown), 4 retries, startup exit 1 →
    Cromwell blamed CopyToTestResults → Verify never ran.
  • Attempt 2 (Terra 383ff911, same commit): clean bootstrap, all green.

Two takeaways:

  1. Transient Google-side Batch issue, confirmed — identical commit 1d46f60 now passes untouched. Not your branch, not WARP code.
  2. Threshold change is validated — Verify executed against the loosened VerifyTasks.wdl and passed.

One gotcha to ignore: the job endpoint 101089717375 still reads failure/attempt 1 — that's the old attempt's record; re-runs mint new per-attempt job ids. The run-level
conclusion (success, attempt 2) is the truth.

Nothing to fix in WARP. Branch left at 1d46f60, no files changed by me. Full trail in /workspace/JOURNAL.md.

Fleet scan is now moot (re-run success already proves transient), but if you want blast-radius for the record, run this in your gcloud env:
gcloud logging read 'labels.job_uid=~"job-.*" AND textPayload:"google-cloud-cli:499.0.0-slim" AND textPayload:"manifest unknown"'
--project=terra-f8e3de20 --freshness=20d --limit=50 --format='value(timestamp,resource.labels.job_uid)'

✻ Cooked for 3m 20s

@github-actions

Copy link
Copy Markdown

Remember to squash merge!

@github-actions

Copy link
Copy Markdown

🔍Version Validation Results:

Comparing versions and changelogs for pipelines that differ from the versions on 'origin/staging':
All WDLs and changelog files appear to be valid for this release.

@github-actions

Copy link
Copy Markdown

🔍Changelog Validation Results:

Comparing changelogs for pipelines that differ from the versions on 'origin/develop':
All changelog files are valid for this release.

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.

2 participants