-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Execution
-
ALL
-
-
None
-
None
-
None
-
None
-
None
-
None
-
None
This one is similar to SERVER-124358 but happens further down in the same file.
[j0] {"t":{"$date":"2026-06-02T09:24:35.982+00:00"},"s":"F", "c":"CONTROL", "id":6384300, "ctx":"conn25","msg":"Writing fatal message","attr":{"message":"Invalid access at address: 0x50d000000000\n"}}
[j0] {"t":{"$date":"2026-06-02T09:24:35.982+00:00"},"s":"F", "c":"CONTROL", "id":6384300, "ctx":"conn25","msg":"Writing fatal message","attr":{"message":"Dumping siginfo (si_code=2): 0b 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 d0 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n"}}
[j0] {"t":{"$date":"2026-06-02T09:24:35.982+00:00"},"s":"F", "c":"CONTROL", "id":6384300, "ctx":"conn25","msg":"Writing fatal message","attr":{"message":"Got signal: 11 (Segmentation fault).\n"}}
[j0] BACKTRACE:
[j0] #0 0x0000c5a4f009fd37 in printCppTrace
[j0] at src/mongo/util/stacktrace.cpp:126:18
[j0] 125: void printCppTrace(StackTraceSink* sink) {
[j0] > 126: auto trace = cpptrace::generate_trace(0, kStackTraceFrameMax);
[j0] ^
[j0] 127: static StaticImmortal<cpptrace::formatter> baseFormat =
[j0] 128: cpptrace::formatter{}
[j0] #1 (inlined) in printStackTraceNoRecursion
[j0] at src/mongo/util/signal_handlers_synchronous.cpp:200:9
[j0] 198: writeMallocFreeStreamToLog();
[j0] 199: } else {
[j0] > 200: printStackTrace();
[j0] ^
[j0] 201: }
[j0] 202: }
[j0] #2 0x0000c5a4f009e83b in printErrorBlock
[j0] at src/mongo/util/signal_handlers_synchronous.cpp:228:5
[j0] 226: // must hold MallocFreeOStreamGuard to call
[j0] 227: void printErrorBlock() {
[j0] > 228: printStackTraceNoRecursion();
[j0] ^
[j0] 229: writeMallocFreeStreamToLog();
[j0] 230: dumpScopedDebugInfo(mallocFreeOStream);
[j0] #3 0x0000c5a4f009edbf in abruptQuitWithAddrSignal
[j0] at src/mongo/util/signal_handlers_synchronous.cpp:330:5
[j0] 328: printSigInfo(siginfo);
[j0] 329: printSignal(signalNum);
[j0] > 330: printErrorBlock();
[j0] ^
[j0] 331:
[j0] 332: breakpoint();
[j0] #4 0x0000f7c7445169cf at linux-vdso.so.1
[j0] #5 0x0000f7c743c3ae8b at string/../sysdeps/aarch64/multiarch/memcpy_advsimd.S:162:0
[j0] #6 (inlined) in memcpy
[j0] at /usr/include/aarch64-linux-gnu/bits/string_fortified.h:29:10
[j0] #7 0x0000c5a4ed4e440f in copyValue
[j0] at src/mongo/db/exec/sbe/values/value.h:2345:13
[j0] 2343: // with the BSONObj/BSONArray class.
[j0] 2344: auto buffer = UniqueBuffer::allocate(size);
[j0] > 2345: memcpy(buffer.get(), bson, size);
[j0] ^
[j0] 2346: return {tag, reinterpret_cast<Value>(buffer.release())};
[j0] 2347: }
[j0] #8 0x0000c5a4ed91ab6b in saveState
[j0] at src/mongo/db/exec/sbe/stages/hybrid_hash_join.cpp:131:71
[j0] 129: for (size_t i = 0; i < _probeProject.size(); ++i) {
[j0] 130: auto [tag, val] = _probeProject.getViewOfValue(i);
[j0] > 131: _savedProbeProject.reset(i, value::TagValueOwned::fromRaw(value::copyValue(tag, val)));
[j0] ^
[j0] 132: }
[j0] 133: }
[j0] #9 0x0000c5a4ed4e5a87 in saveState
[j0] at src/mongo/db/exec/sbe/stages/stages.h:203:16
[j0] 201: }
[j0] 202:
[j0] > 203: stage->doSaveState();
[j0] ^
[j0] 204: // Save the children in a right to left order so dependent stages (i.e. one using correlated
[j0] 205: // slots) are saved first.
[j0] #10 0x0000c5a4ed4e5ad7 in saveState
[j0] at src/mongo/db/exec/sbe/stages/stages.h:208:28
[j0] 206: auto& children = stage->_children;
[j0] 207: for (auto idx = children.size(); idx-- > 0;) {
[j0] > 208: children[idx]->saveState(disableSlotAccess ? shouldOptimizeSaveState(idx) : false);
[j0] ^
[j0] 209: }
[j0] #11 0x0000c5a4edb223ef in saveState
[j0] at src/mongo/db/query/plan_yield_policy_sbe.cpp:77:15
[j0] 75: void PlanYieldPolicySBE::saveState(OperationContext* opCtx) {
[j0] 76: for (auto&& root : _yieldingPlans) {
[j0] > 77: root->saveState();
[j0] ^
[j0] 78: }
[j0] 79: }
[j0] #12 0x0000c5a4ee088bd3 in yieldOrInterrupt
[j0] at src/mongo/db/query/plan_yield_policy.cpp:149:13
[j0] 147: for (int attempt = 1; true; attempt++) {
[j0] 148: try {
[j0] > 149: saveState(opCtx);
[j0] ^
[j0] 150:
[j0] 151: // TODO SERVER-103267: Remove setAbandonSnapshotMode() and related.
[j0] #13 0x0000c5a4ed8d71d3 in checkForInterruptAndYield
[j0] at src/mongo/db/exec/sbe/stages/stages.h:652:13
[j0] 650: checkForInterruptNoYield(opCtx);
[j0] 651: } else if (_yieldPolicy->shouldYieldOrInterrupt(opCtx)) {
[j0] > 652: uassertStatusOK(_yieldPolicy->yieldOrInterrupt(
[j0] ^
[j0] 653: opCtx, nullptr, RestoreContext::RestoreType::kYield));
[j0] 654: }
[j0] #14 0x0000c5a4ed9e7597 in getNext
[j0] at src/mongo/db/exec/sbe/stages/ix_scan.cpp:269:5
[j0] 267: disableSlotAccess();
[j0] 268:
[j0] > 269: checkForInterruptAndYield(_opCtx);
[j0] ^
[j0] 270:
[j0] 271: auto& ru = *shard_role_details::getRecoveryUnit(_opCtx);
[j0] #15 0x0000c5a4ed92571f in getNext
[j0] at src/mongo/db/exec/sbe/stages/loop_join.cpp:179:30
[j0] 178: for (;;) {
[j0] > 179: while (_children[1]->getNext() == PlanState::ADVANCED) {
[j0] ^
[j0] 180: if (!_predicateCode || _bytecode.runPredicate(_predicateCode.get())) {
[j0] 181: return trackPlanState(PlanState::ADVANCED);
[j0] #16 0x0000c5a4ed8f7b1b in getNext
[j0] at src/mongo/db/exec/sbe/stages/fetch.cpp:237:36
[j0] 235: // try to seek the record id.
[j0] 236: do {
[j0] > 237: auto state = _children[0]->getNext();
[j0] ^
[j0] 238: if (state == PlanState::IS_EOF) {
[j0] 239: return trackPlanState(PlanState::IS_EOF);
[j0] #17 0x0000c5a4ed8a3e3b in getNext
[j0] at src/mongo/db/exec/sbe/stages/filter.h:131:35
[j0] 130: do {
[j0] > 131: state = _children[0]->getNext();
[j0] ^
[j0] 132:
[j0] 133: if (state == PlanState::ADVANCED) {
[j0] #18 0x0000c5a4ed92571f in getNext
[j0] at src/mongo/db/exec/sbe/stages/loop_join.cpp:179:30
[j0] 178: for (;;) {
[j0] > 179: while (_children[1]->getNext() == PlanState::ADVANCED) {
[j0] ^
[j0] 180: if (!_predicateCode || _bytecode.runPredicate(_predicateCode.get())) {
[j0] 181: return trackPlanState(PlanState::ADVANCED);
[j0] #19 0x0000c5a4ed934a37 in getNext
[j0] at src/mongo/db/exec/sbe/stages/project.cpp:94:32
[j0] 92: // case it yields as the state will be completely overwritten after the getNext() call.
[j0] 93: disableSlotAccess();
[j0] > 94: auto state = _children[0]->getNext();
[j0] ^
[j0] 95:
[j0] 96: if (state == PlanState::ADVANCED) {
[j0] #20 0x0000c5a4ed906d83 in getNext
[j0] at src/mongo/db/exec/sbe/stages/hash_join.cpp:198:48
[j0] 196: switch (_joinPhase) {
[j0] 197: case JoinPhase::kProbing:
[j0] > 198: if (auto state = outerChild()->getNext(); state == PlanState::ADVANCED) {
[j0] ^
[j0] 199:
[j0] 200: size_t idx = 0;
[j0] #21 0x0000c5a4ed934a37 in getNext
[j0] at src/mongo/db/exec/sbe/stages/project.cpp:94:32
[j0] 92: // case it yields as the state will be completely overwritten after the getNext() call.
[j0] 93: disableSlotAccess();
[j0] > 94: auto state = _children[0]->getNext();
[j0] ^
[j0] 95:
[j0] 96: if (state == PlanState::ADVANCED) {
[j0] #22 0x0000c5a4ed4e227b in fetchNextImpl<mongo::BSONObj, mongo::BSONObj::DefaultSizeTrait>
[j0] at src/mongo/db/query/plan_executor_sbe.cpp:688:24
[j0] 687: tassert(11052114, "out must not be null", out);
[j0] > 688: auto state = root->getNext();
[j0] ^
[j0] 689:
[j0] 690: if (state == sbe::PlanState::IS_EOF) {
[j0] #23 0x0000c5a4ed4e1bff in getNextImpl<mongo::BSONObj>
[j0] at src/mongo/db/query/plan_executor_sbe.cpp:334:23
[j0] 332: ? &_metadataAccessors
[j0] 333: : nullptr;
[j0] > 334: auto result = fetchNextImpl(_root.get(),
[j0] ^
[j0] 335: _result,
[j0] 336: _resultRecordId,
[j0] #24 0x0000c5a4ed4e177f in getNext
[j0] at src/mongo/db/query/plan_executor_sbe.cpp:244:19
[j0] 243: BSONObj obj;
[j0] > 244: auto result = getNextImpl(&obj, dlOut);
[j0] ^
[j0] 245: if (out && result == PlanExecutor::ExecState::ADVANCED) {
[j0] 246: *out = std::move(obj);
[j0] #25 0x0000c5a4edb2356b in getNextBatch
[j0] at src/mongo/db/query/plan_executor.cpp:99:37
[j0] 98: while (numResults < batchSize) {
[j0] > 99: if (PlanExecutor::IS_EOF == getNext(objPtr, nullptr)) {
[j0] ^
[j0] 100: break;
[j0] 101: }
[j0] #26 (inlined) in executePlan
[j0] at src/mongo/db/query/explain.cpp:374:17
[j0] 372: // loop. We are passing a null callback function because explain wishes to simply discard the
[j0] 373: // query result set.
[j0] > 374: (void)exec->getNextBatch(std::numeric_limits<int64_t>::max(), nullptr);
[j0] ^
...
[j0] {"t":{"$date":"2026-06-02T09:24:37.343+00:00"},"s":"F", "c":"CONTROL", "id":6384300, "ctx":"conn25","msg":"Writing fatal message","attr":{"message":"\n"}}
[j0] {"t":{"$date":"2026-06-02T09:24:37.344+00:00"},"s":"F", "c":"CONTROL", "id":6384300, "ctx":"conn25","msg":"Writing fatal message","attr":{"message":"ScopedDebugInfo: [\"curOpDiagnostics: {'currentOp': { op: \"command\", ns: \"plan_stability_tpch_fuzzed.customer\", isFromPriorityPortConnection: false, opid: 51215, numYield: 14, queryShapeHash: \"4C03D75EEE523FA54D16304DEEA9458AA864D850CFE63A0E6F296C0F42D79787\", locks: {}, flowControl: {}, protocol: \"op_msg\", millis: 291, planningTimeMicros: 45105, deadline: new Date(1780392283116) }, 'opDescription': { explain: { aggregate: \"customer\", pipeline: [ { $match: { $expr: { $eq: [ \"$c_mktsegment\", \"BUILDING\" ] } } }, { $lookup: { from: \"orders\", localField: \"c_custkey\", foreignField: \"o_custkey\", as: \"orders\", pipeline: [ { $match: { $expr: { $lt: [ \"$o_orderdate\", new Date(798323546877) ] } } } ] } }, { $unwind: \"$orders\" }, { $lookup: { from: \"lineitem\", localField: \"orders.o_orderkey\", foreignField: \"l_orderkey\", as: \"lineitem\", pipeline: [ { $match: { $expr: { $gt: [ \"$l_shipdate\", new Date(803542843647) ] } } } ] } }, { $unwind: \"$lineitem\" } ], cursor: {} }, verbosity: \"executionStats\", maxTimeMS: 7666, lsid: { id: UUID(\"1f18a01c-bf50-431c-a624-c3c840dc9df0\") }, $db: \"plan_stability_tpch_fuzzed\" }}\", \"ShardKeyDiagnostics: omitted: collection isn't sharded\", \"ExpCtxDiagnostics: {collator: { locale: \"simple\" }, uuid: 314eaafe-2738-4c68-a5d8-7415bc50562c, needsMerge: false, allowDiskUse: true, isMapReduceCommand: false, inLookup: false, inUnionWith: false, forcePlanCache: false, sbeCompatibility: 3, sbeGroupCompatibility: 3, sbeWindowCompatibility: 3, sbePipelineCompatibility: 3, subPipelineDepth: 0}\", \"explainDiagnostics: {'winningPlan': { isCached: false, usedJoinOptimization: false, queryPlan: { stage: \"HASH_JOIN_EMBEDDING\", planNodeId: 6, leftEmbeddingField: \"none\", rightEmbeddingField: \"none\", joinPredicates: [ \"c_custkey = orders.o_custkey\" ], inputStages: [ { stage: \"COLLSCAN\", planNodeId: 1, filter: { $and: [ { $expr: { $eq: [ \"$c_mktsegment\", { $const: \"BUILDING\" } ] } } ] }, nss: \"plan_stability_tpch_fuzzed.customer\", direction: \"forward\" }, { stage: \"INDEXED_NESTED_LOOP_JOIN_EMBEDDING\", planNodeId: 5, leftEmbeddingField: \"lineitem\", rightEmbeddingField: \"orders\", joinPredicates: [ \"l_orderkey = o_orderkey\" ], inputStages: [ { stage: \"COLLSCAN\", planNodeId: 2, filter: { $and: [ { $expr: { $gt: [ \"$l_shipdate\", { $const: new Date(803542843647) } ] } } ] }, nss: \"plan_stability_tpch_fuzzed.lineitem\", direction: \"forward\" }, { stage: \"FETCH\", planNodeId: 4, filter: { $and: [ { $expr: { $lt: [ \"$o_orderdate\", { $const: new Date(798323546877) } ] } }, { o_orderdate: { $_internalExprLt: new Date(798323546877) } } ] }, nss: \"plan_stability_tpch_fuzzed.orders\", inputStage: { stage: \"INDEX_PROBE_NODE\", planNodeId: 3, nss: \"plan_stability_tpch_fuzzed.orders\", keyPattern: { o_orderkey: 1 }, indexName: \"o_orderkey_1\", isMultiKey: false, isUnique: true, isSparse: false, isPartial: false, indexVersion: 2 } } ] } ] }, slotBasedPlan: { slots: \"$$RESULT=s23 env: { s16 = {\"o_orderkey\" : 1}, s20 = Nothing (nothing) }\", stages: \"[6] project [s23 = makeBsonObj(MakeObjSpec([lineitem = Set(0), orders = Set(1)], Open, NewObj, 0), s1, s5, s17)] \n[6] hj \n left [s22] [s5, s17] \n ...\" } }, 'executionStats': { stage: \"project\", planNodeId: 6, nReturned: 7, executionTimeMillisEstimate: 260, opens: 1, closes: 0, saveState: 14, restoreState: 13, isEOF: 0, projections: { 23: \"makeBsonObj(MakeObjSpec([lineitem = Set(0), orders = Set(1)], Open, NewObj, 0), s1, s5, s17) \" }, inputStage: { stage: \"hj\", planNodeId: 6, nReturned: 7, executionTimeMillisEstimate: 260, opens: 1, closes: 0, saveState: 14, restoreState: 13, isEOF: 0, totalDocsExamined: 158434, totalKeysExamined: 2817, collectionScans: 2, collectionSeeks: 2817, indexScans: 0, indexSeeks: 2817, indexesUsed: [ \"o_orderkey_1\" ], usedDisk: false, numPartitionsSpilled: 0, numPartitionSwaps: 0, recursionDepthMax: 0, numFallbacksToBlockNestedLoopJoin: 0, numProbeRecordsDiscarded: 0, spills: 0, spilledRecords: 0, spilledBytes: 0, spilledDataStorageSize: 0, peakTrackedMemBytes: 10746548, outerStage: { stage: \"project\", planNodeId: 6, nReturned: 32, executionTimeMillisEstimate: 140, opens: 1, closes: 0, saveState: 13, restoreState: 13, isEOF: 0, projections: { 22: \"(getField(s17, \"o_custkey\") ?: null) \" }, inputStage: { stage: \"nlj\", planNodeId: 5, nReturned: 32, executionTimeMillisEstimate: 140, opens: 1, closes: 0, saveState: 13, restoreState: 13, isEOF: 0, totalDocsExamined: 8434, totalKeysExamined: 2817, collectionScans: 1, collectionSeeks: 2817, indexScans: 0, indexSeeks: 2817, indexesUsed: [ \"o_orderkey_1\" ], innerOpens: 2817, innerCloses: 0, outerProjects: [ 5, 7 ], outerCorrelated: [ 5, 7 ], predicate: \"((s7 ?: null) == (s19 ?: null)) \", outerStage: { stage: \"filter\", planNodeId: 2, nReturned: 2817, executionTimeMillisEstimate: 0, opens: 1, closes: 0, saveState: 13, restoreState: 13, isEOF: 0, numTested: 5617, filter: \"(((s8 <=> Date(803542843647)) > 0) ?: ((exists(s8) && typeMatch(s8, -65)) > true)) \", inputStage: { stage: \"scan\", planNodeId: 2, nReturned: 5617, executionTimeMillisEstimate: 0, opens: 1, closes: 0, saveState: 13, restoreState: 13, isEOF: 0, numReads: 5617, recordSlot: 5, recordIdSlot: 6, scanFieldNames: [ \"l_orderkey\", \"l_shipdate\" ], scanFieldSlots: [ 7, 8 ] } }, innerStage: { stage: \"filter\", planNodeId: 5, nReturned: 32, executionTimeMillisEstimate: 140, opens: 2817, closes: 0, saveState: 13, restoreState: 13, isEOF: 1, numTested: 2817, filter: \"(\n let [\n l6.0 = getField(s17, \"o_orderdate\") \n ] \n in (((l6.0 <=> Date(798323546877)) < 0) ?: ((exists(l6.0) && typeMatch(l6.0, -65))...\", inputStage: { stage: \"fetch\", planNodeId: 4, nReturned: 2817, executionTimeMillisEstimate: 150, opens: 2817, closes: 0, saveState: 13, restoreState: 13, isEOF: 1, numReads: 2817, inputStage: { stage: \"nlj\", planNodeId: 4, nReturned: 2817, executionTimeMillisEstimate: 140, opens: 2817, closes: 0, saveState: 13, restoreState: 13, isEOF: 1, totalDocsExamined: 0, totalKeysExamined: 2817, collectionScans: 0, collectionSeeks: 0, indexScans: 0, indexSeeks: 2817, indexesUsed: [ \"o_orderkey_1\" ], innerOpens: 2817, innerCloses: 0, outerProjects: [], outerCorrelated: [ 10, 11 ], outerStage: { stage: \"project\", planNodeId: 4, nReturned: 2817, executionTimeMillisEstimate: 10, opens: 2817, closes: 0, saveState: 13, restoreState: 13, isEOF: 1, projections: { 10: \"ks(1ll, 0, s9, 1ll) \", 11: \"ks(1ll, 0, s9, 2ll) \" }, inputStage: { stage: \"project\", planNodeId: 5, nReturned: 2817, executionTimeMillisEstimate: 10, opens: 2817, closes: 0, saveState: 13, restoreState: 13, isEOF: 1, projections: { 9: \"(s7 ?: null) \" }, inputStage: { stage: \"limit\", planNodeId: 5, nReturned: 2817, executionTimeMillisEstimate: 0, opens: 2817, closes: 0, saveState: 13, restoreState: 13, isEOF: 1, limit: 1, inputStage: { stage: \"coscan\", planNodeId: 5, nReturned: 2817, executionTimeMillisEstimate: 0, opens: 2817, closes: 0, saveState: 13, restoreState: 13, isEOF: 0 } } } }, innerStage: { stage: \"ixseek\", planNodeId: 4, nReturned: 2817, executionTimeMillisEstimate: 130, opens: 2817, closes: 0, saveState: 13, restoreState: 13, isEOF: 1, indexName: \"o_orderkey_1\", keysExamined: 2817, seeks: 2817, numReads: 2817, indexKeySlot: 14, recordIdSlot: 12, snapshotIdSlot: 15, indexIdentSlot: 13, outputSlots: [], indexKeysToInclude: \"00000000000000000000000000000000\", seekKeyLow: \"s10 \", seekKeyHigh: \"s11 \" } } } } } }, innerStage: { stage: \"project\", planNodeId: 6, nReturned: 30142, executionTimeMillisEstimate: 109, opens: 1, closes: 1, saveState: 13, restoreState: 13, isEOF: 1, projections: { 21: \"(s3 ?: null) \" }, inputStage: { stage: \"filter\", planNodeId: 1, nReturned: 30142, executionTimeMillisEstimate: 109, opens: 1, closes: 1, saveState: 13, restoreState: 13, isEOF: 1, numTested: 150000, filter: \"(((s4 <=> \"BUILDING\") == 0) ?: (exists(s4) && typeMatch(s4, -65))) \", inputStage: { stage: \"scan\", planNodeId: 1, nReturned: 150000, executionTimeMillisEstimate: 109, opens: 1, closes: 1, saveState: 13, restoreState: 13, isEOF: 1, numReads: 150000, recordSlot: 1, recordIdSlot: 2, scanFieldNames: [ \"c_custkey\", \"c_mktsegment\" ], scanFieldSlots: [ 3, 4 ] } } } } }}\"]\n\n"}}
- blocks
-
SERVER-127530 Join optimization testing: test spill-to-disk
-
- Blocked
-
-
SERVER-120661 Join optimization testing: stretch the product in various dimensions
-
- Closed
-
- is related to
-
SERVER-103267 Remove experimental SBE yielding parameters from command-level code
-
- Closed
-