-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Query Optimization
-
Fully Compatible
-
ALL
-
-
None
-
None
-
None
-
None
-
None
-
None
-
None
If an index is dropped concurrently to a join query, the following tripwire happens:
[j0] {"t":{"$date":"2026-09-08T16:30:36.121+00:00"},"s":"E", "c":"ASSERT", "id":4457000, "ctx":"conn118","msg":"Tripwire assertion","attr":{"error":{"code":12926305,"codeName":"Location12926305","errmsg":"Could not find index l_partkey_1 for INLJ collection test0_fsmdb0.lineitem"},"location":"src/mongo/db/query/compiler/optimizer/join/reorder_joins.cpp:668:65:auto mongo::join_ordering::fromCachedJoinPlan(OperationContext *, const JoinGraph &, const MultipleCollectionAccessor &, const AvailableIndexes &, const CachedJoinPlan &)::(anonymous class)::operator()(const CachedInljNode &) const"}}
[j0] #0 0x0000c3e08b609753 in printCppTrace
[j0] #1 0x0000c3e08b5f84f7 in logErrorBlock
[j0] #2 0x0000c3e08b5fa6e3 in mongo::error_details::tassertFailed(mongo::Status const&, mongo::WrappedStdSourceLocation)
[j0] #3 0x0000c3e088a5847f in operator()
[j0] #8 0x0000c3e088a57c17 in __do_visit<std::__detail::__variant::__deduce_visit_result<std::unique_ptr<mongo::QuerySolutionNode>>, mongo::OverloadedVisitor<(lambda at src/mongo/db/query/compiler/optimizer/join/reorder_joins.cpp:626:13), (lambda at src/mongo/db/query/compiler/optimizer/join/reorder_joins.cpp:653:13), (lambda at src/mongo/db/query/compiler/optimizer/join/reorder_joins.cpp:670:13)>, const std::variant<mongo::CachedAccessPath, mongo::CachedJoinNode, mongo::CachedInljNode> &>
[j0] #15 0x0000c3e088a5748f in __do_visit<std::__detail::__variant::__deduce_visit_result<std::unique_ptr<mongo::QuerySolutionNode>>, mongo::OverloadedVisitor<(lambda at src/mongo/db/query/compiler/optimizer/join/reorder_joins.cpp:626:13), (lambda at src/mongo/db/query/compiler/optimizer/join/reorder_joins.cpp:653:13), (lambda at src/mongo/db/query/compiler/optimizer/join/reorder_joins.cpp:670:13)>, const std::variant<mongo::CachedAccessPath, mongo::CachedJoinNode, mongo::CachedInljNode> &>
[j0] #22 0x0000c3e088a5748f in __do_visit<std::__detail::__variant::__deduce_visit_result<std::unique_ptr<mongo::QuerySolutionNode>>, mongo::OverloadedVisitor<(lambda at src/mongo/db/query/compiler/optimizer/join/reorder_joins.cpp:626:13), (lambda at src/mongo/db/query/compiler/optimizer/join/reorder_joins.cpp:653:13), (lambda at src/mongo/db/query/compiler/optimizer/join/reorder_joins.cpp:670:13)>, const std::variant<mongo::CachedAccessPath, mongo::CachedJoinNode, mongo::CachedInljNode> &>
[j0] #29 0x0000c3e088a5744f in __do_visit<std::__detail::__variant::__deduce_visit_result<std::unique_ptr<mongo::QuerySolutionNode>>, mongo::OverloadedVisitor<(lambda at src/mongo/db/query/compiler/optimizer/join/reorder_joins.cpp:626:13), (lambda at src/mongo/db/query/compiler/optimizer/join/reorder_joins.cpp:653:13), (lambda at src/mongo/db/query/compiler/optimizer/join/reorder_joins.cpp:670:13)>, const std::variant<mongo::CachedAccessPath, mongo::CachedJoinNode, mongo::CachedInljNode> &>
[j0] #36 0x0000c3e088a5744f in __do_visit<std::__detail::__variant::__deduce_visit_result<std::unique_ptr<mongo::QuerySolutionNode>>, mongo::OverloadedVisitor<(lambda at src/mongo/db/query/compiler/optimizer/join/reorder_joins.cpp:626:13), (lambda at src/mongo/db/query/compiler/optimizer/join/reorder_joins.cpp:653:13), (lambda at src/mongo/db/query/compiler/optimizer/join/reorder_joins.cpp:670:13)>, const std::variant<mongo::CachedAccessPath, mongo::CachedJoinNode, mongo::CachedInljNode> &>
[j0] #43 0x0000c3e088a5748f in __do_visit<std::__detail::__variant::__deduce_visit_result<std::unique_ptr<mongo::QuerySolutionNode>>, mongo::OverloadedVisitor<(lambda at src/mongo/db/query/compiler/optimizer/join/reorder_joins.cpp:626:13), (lambda at src/mongo/db/query/compiler/optimizer/join/reorder_joins.cpp:653:13), (lambda at src/mongo/db/query/compiler/optimizer/join/reorder_joins.cpp:670:13)>, const std::variant<mongo::CachedAccessPath, mongo::CachedJoinNode, mongo::CachedInljNode> &>
[j0] #45 0x0000c3e088a5537f in fromCachedJoinPlan
[j0] #47 0x0000c3e0887fffcf in getJoinReorderedExecutor
[j0] #48 0x0000c3e08763d32f in executeResolvedAggregate
[j0] #49 0x0000c3e087639e63 in _runAggregate
[j0] #53 0x0000c3e0876388ff in runAggregate
[j0] #54 0x0000c3e0875e4e37 in run
[j0] #55 0x0000c3e08a659ad7 in runCommandInvocation
[j0] #58 0x0000c3e087738737 in _runImpl
[j0] #60 0x0000c3e08773788f in run
[j0] #64 0x0000c3e087734443 in executeCommand
[j0] #67 0x0000c3e087731107 in handleRequest
[j0] #68 0x0000c3e08a591b6f in _dispatchWork
[j0] #72 0x0000c3e08a5944ef in operator()
[j0] #76 0x0000c3e08a592bc3 in _doOneIteration
[j0] #78 0x0000c3e08a5952d3 in call
[j0] #81 0x0000c3e08a597187 in run<(lambda at src/mongo/transport/session_workflow.cpp:471:32)>
[j0] #83 0x0000c3e08a59706f in call
[j0] #85 0x0000c3e08a766d0f in run
[j0] #87 0x0000c3e08a766543 in call
[j0] #90 0x0000c3e08a76864b in call
[j0] #92 0x0000c3e08a7683b7 in runFunc
[j0] #93 0x0000f487ddbd0397 in start_thread
- is related to
-
SERVER-134942 Tripwire assertion 3994303 "$expr comparison predicates on multikey paths cannot use an index" index_bounds_builder/index_bounds_builder.cpp:1060 mongo::IndexBoundsBuilder::_translatePredicate
-
- Backlog
-
-
SERVER-130790 Handle bumping CollectionTag/index fingerprints if multikeyness flips due to document write
-
- Backlog
-
-
SERVER-132838 [Join Optimization] Encode multikeyness of every field referenced by a join-opt eligible query into plan cache key
-
- Backlog
-