Skip to content

[debug] Isolate replicateBlobV2MultipleCases flake#3243

Closed
snalli wants to merge 2 commits intomasterfrom
snalli/debug-replicate-blobv2
Closed

[debug] Isolate replicateBlobV2MultipleCases flake#3243
snalli wants to merge 2 commits intomasterfrom
snalli/debug-replicate-blobv2

Conversation

@snalli
Copy link
Copy Markdown
Contributor

@snalli snalli commented May 3, 2026

Why

Master's server-int-test started failing intermittently after PR #3235 merged. The recurring offender is ServerHttp2Test.replicateBlobV2MultipleCases with two related symptoms:

  • expected:<BlobNotFound> but was:<NoError> (a state assertion in getBlobAndVerify)
  • expected:<NoError> but was:<ReplicaUnavailable> (replica startup race)

Goal: capture verbose logs from a green-vs-red comparison so we can see what the test sees vs expects, instead of guessing.

Setup

  • Disabled all jobs except server-int-test.
  • :ambry-server:intTest --tests "com.github.ambry.server.ServerHttp2Test.replicateBlobV2MultipleCases" (both parameter variants).
  • Root logger: infodebug. Re-enabled BlockingChannelConnectionPool, BlockingChannelInfo, ReplicThread (master silences these because end-to-end tests are noisy; we want the noise now).
  • intTest retry budget: maxRetries 2 → 0 so the first failure is captured cleanly.

Do not merge.

🤖 Generated with Claude Code

snalli and others added 2 commits May 2, 2026 18:21
…l debug logs

Goal: capture verbose logs of the flaky `replicateBlobV2MultipleCases`
failure ("expected:<BlobNotFound> but was:<NoError>" or
"expected:<NoError> but was:<ReplicaUnavailable>") that intermittently
breaks server-int-test on master.

Changes (debug-only, do NOT merge):
- Disable all jobs except server-int-test in the workflow.
- Restrict server-int-test gradle args to:
    --scan --info --warning-mode=summary :ambry-server:intTest
    --tests "com.github.ambry.server.ServerHttp2Test.replicateBlobV2MultipleCases"
- log4j-test-config/log4j2.xml:
  - Root level: info -> debug
  - Re-enable BlockingChannelConnectionPool, BlockingChannelInfo,
    ReplicThread loggers (they were `off` to suppress noise; we want
    that noise now).
- intTest retry budget: maxRetries 2 -> 0 so first failure is captured
  cleanly (no retry-masked attempts).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Gradle's --tests filter doesn't match parameterized variants ([0], [1])
without a trailing wildcard. Filter "...replicateBlobV2MultipleCases"
matched 0 tests; "...replicateBlobV2MultipleCases*" matches both
parameter values.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@snalli snalli closed this May 3, 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.

1 participant