[SERVER-19382] mongod enterprise crash running as snmp sub-agent Created: 13/Jul/15  Updated: 27/Jul/15  Resolved: 14/Jul/15

Status: Closed
Project: Core Server
Component/s: Stability
Affects Version/s: 3.0.4
Fix Version/s: 3.0.5, 3.1.6

Type: Bug Priority: Major - P3
Reporter: James Wahlin Assignee: James Wahlin
Resolution: Done Votes: 0
Labels: pull-request
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
Backwards Compatibility: Minor Change
Operating System: ALL
Backport Completed:
Steps To Reproduce:

1) Run mongoD as snmp sub-agent
2) Run snmpwalk against mongoD (via the SNMP master process, in my test snmpd)

Sprint: Quint Iteration 6
Participants:

 Description   

Running snmpwalk against mongoD running as an SNMP sub-agent causes a mongoD crash with the following stack:

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000000
[Switching to process 17950 thread 0x1603]
0x0000000000000000 in ?? ()
(gdb) backtrace
#0  0x0000000000000000 in ?? ()
#1  0x0000000100446ec8 in mongo::(anonymous namespace)::DirectClientScope::DirectClientScope (this=0x105584758, txn=0x1055859b8) at src/mongo/db/dbdirectclient.cpp:55
#2  0x00000001004465dd in mongo::(anonymous namespace)::DirectClientScope::DirectClientScope (this=0x105584758, txn=0x1055859b8) at src/mongo/db/dbdirectclient.cpp:57
#3  0x000000010044643a in mongo::DBDirectClient::call (this=0x10379cac0, toSend=@0x105584920, response=@0x10379d090, assertOk=false, actualServer=0x10379c9d8) at src/mongo/db/dbdirectclient.cpp:123
#4  0x000000010044665e in non-virtual thunk to mongo::DBDirectClient::call(mongo::Message&, mongo::Message&, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) (this=0x10379cb58, toSend=@0x105584920, response=@0x10379d090, assertOk=false, actualServer=0x10379c9d8) at src/mongo/db/dbdirectclient.cpp:137
#5  0x00000001000f71f5 in mongo::DBClientCursor::init (this=0x10379c9b0) at src/mongo/client/dbclientcursor.cpp:87
#6  0x00000001000c42a0 in mongo::DBClientBase::query (this=0x10379cac0, ns=@0x105585330, query={static ReadPrefField = <optimized out>, static ReadPrefModeField = <optimized out>, static ReadPrefTagsField = <optimized out>, obj = {_objdata = 0x10379ce84 "\003\001", _ownedBuffer = {_holder = {px = 0x10379ce80}}}}, nToReturn=1, nToSkip=0, fieldsToReturn=0x0, queryOptions=0, batchSize=0) at src/mongo/client/dbclient.cpp:1164
#7  0x00000001004468b7 in mongo::DBDirectClient::query (this=0x10379cac0, ns=@0x105585330, query=<value temporarily unavailable, due to optimizations>, nToReturn=1, nToSkip=0, fieldsToReturn=0x0, queryOptions=0, batchSize=0) at src/mongo/db/dbdirectclient.cpp:157
#8  0x00000001000bf33a in mongo::DBClientInterface::findN (this=0x10379cac0, out=@0x105585100, ns=@0x105585330, query={static ReadPrefField = <optimized out>, static ReadPrefModeField = <optimized out>, static ReadPrefTagsField = <optimized out>, obj = {_objdata = 0x10379ce84 "\003\001", _ownedBuffer = {_holder = {px = 0x10379ce80}}}}, nToReturn=1, nToSkip=0, fieldsToReturn=0x0, queryOptions=0) at src/mongo/client/dbclient.cpp:1005
#9  0x00000001000bfd15 in mongo::DBClientInterface::findOne (this=0x10379cac0, ns=@0x105585330, query=@0x105585260, fieldsToReturn=0x0, queryOptions=0) at src/mongo/client/dbclient.cpp:1024
#10 0x00000001000b4108 in mongo::DBClientWithCommands::runCommand (this=0x10379cac0, dbname=@0x105585628, cmd=@0x10379cba0, info=@0x105585660, options=0) at src/mongo/client/dbclient.cpp:459
#11 0x00000001006cf6e6 in mongo::ServerStatusClient::load (this=0x10379cac0) at src/mongo/db/modules/subscription/src/snmp/serverstatus_client.cpp:117
#12 0x00000001006cf599 in mongo::ServerStatusClient::loadIfNeeded (this=0x10379cac0) at src/mongo/db/modules/subscription/src/snmp/serverstatus_client.cpp:100
#13 0x00000001006cfe42 in mongo::ServerStatusClient::getElement (this=0x10379cac0, name=@0x105585a10) at src/mongo/db/modules/subscription/src/snmp/serverstatus_client.cpp:139
#14 0x00000001006d00bd in mongo::ServerStatusClient::getInt64Field (this=0x10379cac0, name=@0x105585a10) at src/mongo/db/modules/subscription/src/snmp/serverstatus_client.cpp:173
#15 0x00000001006d005d in mongo::ServerStatusClient::getDurationField (this=0x10379cac0, name=@0x105585a10) at src/mongo/db/modules/subscription/src/snmp/serverstatus_client.cpp:162
#16 0x00000001006f42ea in mongo::callbacks::ServerStatusCallback::respond (this=0x1043268a0, var=0x10379b880) at src/mongo/db/modules/subscription/src/snmp/snmp.cpp:509
#17 0x00000001006d1ffb in mongo::my_snmp_callback (handler=0x10430c860, reginfo=0x10430c520, reqinfo=0x103749520, requests=0x1037495e0) at src/mongo/db/modules/subscription/src/snmp/snmp.cpp:873
#18 0x000000010342b0de in netsnmp_call_handler ()
#19 0x000000010342b0de in netsnmp_call_handler ()
#20 0x0000000103453986 in netsnmp_serialize_helper_handler ()
#21 0x000000010342b0de in netsnmp_call_handler ()
#22 0x0000000103437a85 in handle_var_requests ()
#23 0x00000001034386ba in handle_pdu ()
#24 0x00000001034365b5 in netsnmp_handle_request ()
#25 0x00000001034349db in handle_snmp_packet ()
#26 0x000000010359b1bd in _sess_read ()
#27 0x00000001035998bb in _sess_read ()
#28 0x0000000103598eee in snmp_read2 ()
#29 0x0000000103598eb4 in snmp_read ()
#30 0x0000000103433e30 in agent_check_and_process ()
#31 0x00000001006d3809 in mongo::SNMPAgent::run (this=0x101dc5148) at src/mongo/db/modules/subscription/src/snmp/snmp.cpp:789
#32 0x0000000100f77da5 in mongo::BackgroundJob::jobBody (this=0x101dc5148) at src/mongo/util/background.cpp:163
#33 0x0000000100f7bbec in _ZN5boost6detail11thread_dataINSt3__16__bindIMN5mongo13BackgroundJobEFvvEJPS5_EEEE3runEv (this=0x104323790) at __functional_base:380
#34 0x0000000101100204 in boost::(anonymous namespace)::thread_proxy (param=0x104323790) at src/third_party/boost/libs/thread/src/pthread/thread.cpp:121
#35 0x00007fff8e469268 in _pthread_body ()
#36 0x00007fff8e4691e5 in _pthread_start ()
#37 0x00007fff8e46741d in thread_start ()



 Comments   
Comment by Githook User [ 14/Jul/15 ]

Author:

{u'name': u'James Wahlin', u'email': u'james.wahlin@10gen.com'}

Message: SERVER-19382 Don't cache OperationContext in SNMP module
Branch: v3.0
https://github.com/10gen/mongo-enterprise-modules/commit/012df009e0ee7a690403d48c4be7f1547157664d

Comment by Githook User [ 14/Jul/15 ]

Author:

{u'name': u'James Wahlin', u'email': u'james.wahlin@10gen.com'}

Message: SERVER-19382 Don't cache OperationContext in SNMP module
Branch: master
https://github.com/10gen/mongo-enterprise-modules/commit/a8766ddd68e3fee3ca8e2972aeaaa9293adc345f

Generated at Thu Feb 08 03:50:46 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.