-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
DB Integration & Observability
-
Fully Compatible
-
ALL
-
0
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Overview
All jstestfuzz-driven tasks fail immediately in the mongodb-main-staging-poc Evergreen project (a branch closely tracking master). This is not a real test failure — the fuzzer never runs, because jstestfuzz rejects the branch name before generating any tests.
Root cause
The Evergreen built-in expansion branch_name is passed straight through to jstestfuzz as its --branch argument, in two places:
- evergreen/jstestfuzz_run.sh (final line): ./src/scripts/npm_run.sh ${npm_command} -- ... --branch ${branch_name}
- etc/evergreen_yml_components/definitions.yml:1677: --//bazel/resmoke:jstestfuzz_branch=${branch_name}
jstestfuzz validates that value (it selects which server features the generated tests may use) and rejects anything that is not master or a v. version branch:
Error: Branch version main\-staging\-poc does not match the required format. Please enter a branch in the format 'v4.2' or enter 'master'.
Because the project's branch is main-staging-poc, every fuzzer task aborts at the "generate tests" step. Both the shell path (jstestfuzz_run.sh) and the Bazel path (_jstestfuzz_generate rule, jstestfuzz_branch flag) are affected.
Impact
525 of the 587 currently-untriaged BFGs in mongodb-main-staging-poc are this single failure (tracked by BF to be linked here). Affected task families include: jstestfuzz_*, aggregation__fuzzer, resharding_fuzzer, rollback_fuzzer, query_fuzzer_, update_fuzzer, move_collection_fuzzer, initial_sync_fuzzer, unshard_collection_fuzzer, change_stream_optimization_fuzzer, disagg___fuzzer, and any resmoke_tests task that generates fuzzer tests.
Proposed fix
Decouple the jstestfuzz target branch from the git branch:
- Introduce an expansion (e.g. jstestfuzz_branch_name) that defaults to branch_name but can be overridden per project.
- Use it at both call sites above instead of branch_name.
- Set it to master for mongodb-main-staging-poc.
Note the Bazel flag //bazel/resmoke:jstestfuzz_branch already defaults to master, so for master-tracking projects the override simply restores the default.
Testing
Run a jstestfuzz task (e.g. jstestfuzz_sharded) as a patch on mongodb-main-staging-poc and confirm the test-generation step succeeds.
- is related to
-
SERVER-138521 Bump pinned jstestfuzz rev for deterministic fuzzer tasks to pick up SERVER-137767
-
- Needs Merge
-