Skip to content

ci: rebase merge-gate required jobs on measured failure data - #4178

Draft
Leiyks wants to merge 3 commits into
masterfrom
leiyks/ci-update-merge-gate-required-jobs
Draft

ci: rebase merge-gate required jobs on measured failure data#4178
Leiyks wants to merge 3 commits into
masterfrom
leiyks/ci-update-merge-gate-required-jobs

Conversation

@Leiyks

@Leiyks Leiyks commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Updates .gitlab/flaky-jobs.txt from a failure-frequency export covering 5006 job failures. The list had been hand-maintained at family granularity since #4028 and was never derived from data. This change is a pure removal: 149 → 61 patterns, 0 insertions / 88 deletions.

Re-required after the CI-image outage (8 globs, 150 jobs) — the six compile * globs, verify windows, and System Tests:*. They carry 1137 of the export's failures, but that volume is the outage window (598 for System Tests:*, 84–178 for four compile * families), not flakiness; the outage itself was fixed in #4171.

No evidence (54 globs, 510 jobs) — 46 globs match real jobs but recorded zero failures, and 8 more had exactly one failure across the whole window while covering 72 jobs between them.

Structurally dead (26 globs, 0 jobs) — they match nothing in any pipeline merge-gate.sh can see. 18 are SSI scenario globs (*.SID0:*, *.SI94:*, php-app.*.DOC:*, K8S_LIB_INJECTION_UDS:*) whose jobs live in the system_tests pipeline, a grandchild reached through a bridge inside the package-trigger child; the gate expands only the parent's direct bridges. The other 8 match no job anywhere, including appsec integration tests (helper-rust):* (job removed in #3725) and update-latest-versions (a GitHub Actions job).

Six zero-failure globs are deliberately kept because they never ran rather than never failed: generate-lib-init-pinned-tag-values (manual, tag-only), package-oci:* and create-multiarch-lib-injection-image ($SKIP_SHARED_PIPELINE-gated), and three php-*-realworld-parallel-* benchmark jobs gated on master/nightly.

helper-rust integration coverage stays out. It is the only glob any prior commit ever deleted — c237bf4a2 (#3725) removed it as part of making that job reliable — so re-adding it would silently un-require a job a maintainer had just deliberately made required.

Jobs that can block a merge: 636 → 1296 of 2098. The denominator is the 2099 distinct job names observed in master pipeline 136253425 and its five direct child pipelines, minus merge-gate itself, which the gate skips. Every pattern was matched with merge-gate.sh's exact semantics ([[ "$job" == $g ]], unquoted glob, whole-string, case-sensitive).

Re-require six compile globs, verify windows, and System Tests:* (a CI
outage, not flakiness). Newly exempt 13 families with measured
failures. Prune 88 globs with no evidence behind them (zero failures,
single-failure, or unreachable jobs). Net: 149 -> 74 patterns; gating
jobs 636 -> 1225 of 2098.
@datadog-datadog-prod-us1

datadog-datadog-prod-us1 Bot commented Sep 9, 2026

Copy link
Copy Markdown

Pipelines  Tests

Unblock PR with BitsAI

⚠️ Warnings

Your PR has failed checks. Please review the issues below and take necessary action before merging.

🚦 10 Pipeline jobs failed

DataDog/apm-reliability/dd-trace-php | appsec integration tests: [test8.4-release-zts] — ❌ 51 tests failed · 🔧 Needs a code fix, caused by this PR

View more details · View in GitLab

❌ POST request sets content type and length() from com.datadog.appsec.php.integration.FrankenphpClassicTests
Assertion failed: 

assert span.meta['http.request.headers.content-type'] == 'application/json'
       |    |   |                                     |
       |    |   null                                  false
       |    ['http.status_code':'200', 'http.endpoint':'/hello.php', '_dd.p.ksr':'1', 'span.kind':'server', '_dd.p.dm':'-1', 'http.url':'http://docker:32773/hello.php', 'runtime-id':'fee5f43e-ec88-48f1-94c5-58c4a725929a', 'env':'integration', 'http.method':'POST', 'http.useragent':'Java-http-client/17.0.20']
       com.datadog.appsec.php.model.Span@4fafd27e

Assertion failed: 

...
❌ [1] file_get_contents, 19 from com.datadog.appsec.php.integration.FrankenphpClassicTests
Assertion failed: 

assert span.metrics."_dd.appsec.enabled" == 1.0d
       |    |       |                    |
       |    |       null                 false
       |    ['process_id':14.0, 'php.memory.peak_usage_bytes':542936.0, 'php.compilation.total_time_ms':0.181, '_dd.agent_psr':1.0, 'php.memory.peak_real_usage_bytes':2097152.0, '_sampling_priority_v1':1.0]
       com.datadog.appsec.php.model.Span@11295cb1

Assertion failed: 

...
❌ [1] file_put_contents, /tmp/dummy, 9 from com.datadog.appsec.php.integration.FrankenphpClassicTests
Assertion failed: 

assert span.metrics."_dd.appsec.enabled" == 1.0d
       |    |       |                    |
       |    |       null                 false
       |    ['process_id':14.0, 'php.memory.peak_usage_bytes':541032.0, '_dd.agent_psr':1.0, 'php.compilation.total_time_ms':0.462, 'php.memory.peak_real_usage_bytes':2097152.0, '_sampling_priority_v1':1.0]
       com.datadog.appsec.php.model.Span@22361e23

Assertion failed: 

...
❌ [2] fopen, 16 from com.datadog.appsec.php.integration.FrankenphpClassicTests
Assertion failed: 

assert span.metrics."_dd.appsec.enabled" == 1.0d
       |    |       |                    |
       |    |       null                 false
       |    ['process_id':14.0, 'php.memory.peak_usage_bytes':503896.0, '_dd.agent_psr':1.0, 'php.compilation.total_time_ms':0.0, 'php.memory.peak_real_usage_bytes':2097152.0, '_sampling_priority_v1':1.0]
       com.datadog.appsec.php.model.Span@3620eab

Assertion failed: 

...
❌ [2] readfile, /tmp/dummy, 15 from com.datadog.appsec.php.integration.FrankenphpClassicTests
Assertion failed: 

assert span.metrics."_dd.appsec.enabled" == 1.0d
       |    |       |                    |
       |    |       null                 false
       |    ['process_id':14.0, 'php.memory.peak_usage_bytes':485528.0, 'php.memory.peak_real_usage_bytes':2097152.0, 'php.compilation.total_time_ms':0.0, '_dd.agent_psr':1.0, '_sampling_priority_v1':1.0]
       com.datadog.appsec.php.model.Span@26aee0a6

Assertion failed: 

...
↳ and 46 more — View all
DataDog/apm-reliability/dd-trace-php | check libxml2 version — 🔧 Needs a code fix, caused by this PR

View more details · View in GitLab

DataDog/apm-reliability/dd-trace-php | test_extension_ci: [8.0] — 🔧 Needs a code fix, caused by this PR

View more details · View in GitLab

View all 10 failed jobs.

ℹ️ Info

No other issues found (see more)

❄️ No new flaky tests detected

🎯 Code Coverage (details)
Patch Coverage: 100.00%
Overall Coverage: 55.02% (-0.01%)

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 0f229dc | Docs | View more details | Give us feedback!

Leiyks and others added 2 commits September 10, 2026 13:48
The previous commit newly exempted 13 job families that master's
flaky-jobs.txt did not list. A family absent from that list was already
deemed not flaky, so re-exempting it is a regression in gate coverage --
most clearly for helper-rust integration coverage, which #3725
(c237bf4) deliberately removed.

Keep every pruning the previous commit made. Net vs master: pure
deletion, 149 -> 61 patterns; gating jobs 744 -> 1402 of 2193.
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