Details
Description
Chunk::_getExtremeKey has this code:
if (doSplitAtLower) {
|
// Splitting close to the lower bound means that the split point will be the
|
// upper bound. Chunk range upper bounds are exclusive so skip a document to
|
// make the lower half of the split end up with a single document.
|
unique_ptr<DBClientCursor> cursor = conn->query(_manager->getns(),
|
q,
|
1, /* nToReturn */
|
1 /* nToSkip */);
|
|
|
if (cursor->more()) {
|
end = cursor->next().getOwned();
|
}
|
cursor can be NULL when conn->query fails to initialize a client cursor due to an unreachable node (in this case, the node has been killed).
Backtrace:
Program received signal SIGSEGV, Segmentation fault.
|
[Switching to Thread 0x7f79405f6700 (LWP 16290)]
|
0x00000000011d5f31 in mongo::Chunk::_getExtremeKey (this=0x7f79180048b0, doSplitAtLower=true) at src/mongo/s/chunk.cpp:252
|
252 if (cursor->more()) {
|
|
|
(gdb) p cursor.get()
|
$2 = (mongo::DBClientCursor *) 0x0
|
|
|
(gdb) bt
|
#0 0x00000000011d5f31 in mongo::Chunk::_getExtremeKey (this=0x7f79180048b0, doSplitAtLower=true) at src/mongo/s/chunk.cpp:252
|
#1 0x00000000011d7182 in mongo::Chunk::split (this=0x7f79180048b0, mode=mongo::Chunk::autoSplitInternal, resultingSplits=0x7f791f6fbda0, res=0x7f791f6fbdc0) at src/mongo/s/chunk.cpp:386
|
#2 0x00000000011d8f3d in mongo::Chunk::splitIfShould (this=0x7f79180048b0, dataWritten=35) at src/mongo/s/chunk.cpp:553
|
#3 0x000000000121213d in mongo::(anonymous namespace)::splitIfNeeded (nss=..., stats=...) at src/mongo/s/cluster_write.cpp:147
|
#4 0x0000000001213073 in mongo::ClusterWriter::write (this=0x7f791f6fc3b0, origRequest=..., response=0x7f791f6fc410) at src/mongo/s/cluster_write.cpp:263
|
#5 0x0000000001245a1a in mongo::(anonymous namespace)::ClusterWriteCmd::run (this=0x1adbd40 <mongo::(anonymous namespace)::clusterInsertCmd>, txn=0x7f78f8006130, dbname=..., cmdObj=..., options=0,
|
errmsg=..., result=...) at src/mongo/s/commands/cluster_write_cmd.cpp:150
|
#6 0x000000000126c99e in mongo::Command::execCommandClientBasic (txn=0x7f78f8006130, c=0x1adbd40 <mongo::(anonymous namespace)::clusterInsertCmd>, client=..., queryOptions=0,
|
ns=0x7f78f8000e64 "test.$cmd", cmdObj=..., result=...) at src/mongo/s/s_only.cpp:123
|
#7 0x000000000126ce3a in mongo::Command::runAgainstRegistered (ns=0x7f78f8000e64 "test.$cmd", jsobj=..., anObjBuilder=..., queryOptions=0) at src/mongo/s/s_only.cpp:164
|
#8 0x0000000001275c42 in mongo::Strategy::clientCommandOp (r=...) at src/mongo/s/strategy.cpp:309
|
#9 0x000000000126ba3f in mongo::Request::process (this=0x7f791f6fcb90, attempt=0) at src/mongo/s/request.cpp:112
|
#10 0x0000000000d92d44 in mongo::ShardedMessageHandler::process (this=0x7fff1692b920, m=..., p=0x3af5230) at src/mongo/s/server.cpp:142
|
#11 0x00000000012dc9dd in mongo::PortMessageServer::handleIncomingMsg (arg=0x3af5230) at src/mongo/util/net/message_server_port.cpp:229
|
#12 0x00007f79603a0182 in start_thread (arg=0x7f791f6fd700) at pthread_create.c:312
|
#13 0x00007f79600cd47d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
|
Version: 6c49d69bbae5d8807fc205dbca12eecf1a60258b