-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Change streams
-
None
-
DB Integration & Observability
-
Fully Compatible
-
ALL
-
QE 2026-09-15, QE 2026-09-28
-
0
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
- Description
The `minDifferentPBRTs` assertion in `change_stream_response_deadline_sharded.js` is structurally dependent on periodic noop oplog entry count, which varies with platform speed. In sharded change streams, mongos takes the minimum PBRT across shards, pinning client-visible progress to the laggard shard. When the target document is on shard1, shard0 can only advance its PBRT past the target's timestamp by scanning noop entries. Fewer noops (from a faster setup phase on Windows CI) means fewer PBRT advances, causing the assertion to fail.
Experimentally verified: raising `periodicNoopIntervalSecs` from 1s to 10s deterministically collapses the PBRT count from ~5 to 1 (5/5 runs), confirming noop traversal — not sleep timing — as the governing mechanism.
*Possible fix:* Replace the fixed `minDifferentPBRTs` threshold with a lower, more tolerant assertion (≥1 to confirm the knob was forwarded). The existing log message 10290000 check on each shard already proves the deadline was applied; the PBRT count should not be a strict threshold given its inherent dependence on oplog content that varies across platforms.