|
Triggering the "Maximum token size reached" uassert causes a leak when querying:
> db.foo.ensureIndex({a: 'text'})
|
{
|
"createdCollectionAutomatically" : false,
|
"numIndexesBefore" : 2,
|
"numIndexesAfter" : 2,
|
"note" : "all indexes already exist",
|
"ok" : 1
|
}
|
> db.foo.find({$text: {$search: new Array(1024 * 16 + 2).join('a'), $language: 'zht'}});
|
Error: error: { "$err" : "Maximum token size reached", "code" : 28632 }
|
==19613== Thread 1:
|
==19613== 37,235 (40 direct, 37,195 indirect) bytes in 1 blocks are definitely lost in loss record 5,468 of 5,481
|
==19613== at 0x4C2B0E0: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
|
==19613== by 0x173FD58: mongo::QueryPlannerAnalysis::analyzeDataAccess(mongo::CanonicalQuery const&, mongo::QueryPlannerParams const&, mongo::QuerySolutionNode*) (planner_analysis.cpp:531)
|
==19613== by 0x174B468: mongo::QueryPlanner::plan(mongo::CanonicalQuery const&, mongo::QueryPlannerParams const&, std::vector<mongo::QuerySolution*, std::allocator<mongo::QuerySolution*> >*) (query_planner.cpp:772)
|
==19613== by 0x16F1163: mongo::(anonymous namespace)::prepareExecution(mongo::OperationContext*, mongo::Collection*, mongo::WorkingSet*, mongo::CanonicalQuery*, unsigned long, mongo::PlanStage**, mongo::QuerySolution**) (get_executor.cpp:364)
|
==19613== by 0x16F1F22: mongo::getExecutor(mongo::OperationContext*, mongo::Collection*, mongo::CanonicalQuery*, mongo::PlanExecutor::YieldPolicy, mongo::PlanExecutor**, unsigned long) (get_executor.cpp:453)
|
==19613== by 0x16F31FD: mongo::getExecutorFind(mongo::OperationContext*, mongo::Collection*, mongo::NamespaceString const&, mongo::CanonicalQuery*, mongo::PlanExecutor::YieldPolicy, mongo::PlanExecutor**) (get_executor.cpp:641)
|
==19613== by 0x16EDEEB: mongo::runQuery(mongo::OperationContext*, mongo::QueryMessage&, mongo::NamespaceString const&, mongo::CurOp&, mongo::Message&) (find.cpp:560)
|
==19613== by 0x15B889C: mongo::receivedQuery(mongo::OperationContext*, mongo::NamespaceString const&, mongo::Client&, mongo::DbResponse&, mongo::Message&) (instance.cpp:368)
|
==19613== by 0x15B9205: mongo::assembleResponse(mongo::OperationContext*, mongo::Message&, mongo::DbResponse&, mongo::HostAndPort const&) (instance.cpp:504)
|
==19613== by 0x128B8A9: mongo::MyMessageHandler::process(mongo::Message&, mongo::AbstractMessagingPort*) (db.cpp:167)
|
==19613== by 0x1B12528: mongo::PortMessageServer::handleIncomingMsg(void*) (message_server_port.cpp:227)
|
==19613== by 0x640F181: start_thread (pthread_create.c:312)
|
|