[SERVER-27177] Segfault after lowering jsHeapLimitMB Created: 23/Nov/16  Updated: 05/Apr/17  Resolved: 01/Dec/16

Status: Closed
Project: Core Server
Component/s: JavaScript
Affects Version/s: 3.3.14
Fix Version/s: 3.4.3, 3.5.1

Type: Bug Priority: Major - P3
Reporter: Robert Guo (Inactive) Assignee: Jonathan Reams
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Depends
Related
is related to SERVER-22688 Provide a setParameter and shell opti... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Backport Requested:
v3.4
Sprint: Platforms 2016-11-21, Platforms 2017-01-23
Participants:
Linked BF Score: 0

 Description   

This affects all versions starting from 3.3.14 (which introduced the jsHeapLimitMB parameter).

Here is a stacktrace when running 3.4.0-rc3:

[MongoDFixture:job0] 2016-11-23T18:00:34.925-0500 W QUERY    [conn4] JavaScript may not be able to initialize with a heap limit less than 10MB.
[MongoDFixture:job0] 2016-11-23T18:00:34.927-0500 F -        [conn4] Invalid access at address: 0x0
[MongoDFixture:job0] 2016-11-23T18:00:34.940-0500 F -        [conn4] Got signal: 11 (Segmentation fault: 11).
[MongoDFixture:job0] 
[MongoDFixture:job0]  0x10ce997da 0x10ce991d0 0x7fffc8c78bba 0x7fc6e91616e8 0x10cdd0444 0x10d731090 0x10d75ad39 0x10d182d67 0x10d17f68e 0x10d17a6f3 0x10d178bbc 0x10d174466 0x10d7342a2 0x10d7358f1 0x10d4e04a1 0x10d4e0335 0x10d69b076 0x10d4d3dd6 0x10cdbca39 0x10cdbd05a 0x10cdb81e2 0x10c593f46 0x10c598418 0x10c54cc56 0x10c54bd27 0x10ca92389 0x10c6fb3a9 0x10c3a9827 0x10c3aa0d8 0x10ce074ad 0x10ce07b61 0x7fffc8c82aab 0x7fffc8c829f7 0x7fffc8c82221
[MongoDFixture:job0] ----- BEGIN BACKTRACE -----
[js_test:repro1] 2016-11-23T18:00:34.942-0500 2016-11-23T18:00:34.942-0500 I NETWORK  [main] trying reconnect to 127.0.0.1:20000 (127.0.0.1) failed
[js_test:repro1] 2016-11-23T18:00:34.943-0500 2016-11-23T18:00:34.942-0500 W NETWORK  [main] Failed to connect to 127.0.0.1:20000, reason: Connection refused
[js_test:repro1] 2016-11-23T18:00:34.943-0500 2016-11-23T18:00:34.942-0500 I NETWORK  [main] reconnect 127.0.0.1:20000 (127.0.0.1) failed failed
[js_test:repro1] 2016-11-23T18:00:34.946-0500 2016-11-23T18:00:34.944-0500 I NETWORK  [main] trying reconnect to 127.0.0.1:20000 (127.0.0.1) failed
[js_test:repro1] 2016-11-23T18:00:34.948-0500 2016-11-23T18:00:34.944-0500 W NETWORK  [main] Failed to connect to 127.0.0.1:20000, reason: Connection refused
[js_test:repro1] 2016-11-23T18:00:34.949-0500 2016-11-23T18:00:34.944-0500 I NETWORK  [main] reconnect 127.0.0.1:20000 (127.0.0.1) failed failed
[js_test:repro1] 2016-11-23T18:00:34.950-0500 2016-11-23T18:00:34.948-0500 I NETWORK  [main] trying reconnect to 127.0.0.1:20000 (127.0.0.1) failed
[js_test:repro1] 2016-11-23T18:00:34.951-0500 2016-11-23T18:00:34.949-0500 W NETWORK  [main] Failed to connect to 127.0.0.1:20000, reason: Connection refused
[js_test:repro1] 2016-11-23T18:00:34.951-0500 2016-11-23T18:00:34.949-0500 I NETWORK  [main] reconnect 127.0.0.1:20000 (127.0.0.1) failed failed
[MongoDFixture:job0] {"backtrace":[{"b":"10C39A000","o":"AFF7DA","s":"_ZN5mongo15printStackTraceERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEE"},{"b":"10C39A000","o":"AFF1D0","s":"_ZN5mongo12_GLOBAL__N_124abruptQuitWithAddrSignalEiP9__siginfoPv"},{"b":"7FFFC8C76000","o":"2BBA","s":"_sigtramp"},{"b":"0","o":"7FC6E91616E8"},{"b":"10C39A000","o":"A36444","s":"_Z9js_mallocm"},{"b":"10C39A000","o":"1397090","s":"_ZN2js9LifoAlloc16getOrCreateChunkEm"},{"b":"10C39A000","o":"13C0D39","s":"_ZN2js8frontend18ParseNodeAllocator9allocNodeEv"},{"b":"10C39A000","o":"DE8D67","s":"_ZN2js8frontend6ParserINS0_16FullParseHandlerEE11functionDefENS0_10InHandlingENS0_13YieldHandlingEN2JS6HandleIPNS_12PropertyNameEEENS0_18FunctionSyntaxKindENS_13GeneratorKindENS3_17InvokedPredictionE"},{"b":"10C39A000","o":"DE568E","s":"_ZN2js8frontend6ParserINS0_16FullParseHandlerEE12functionStmtENS0_13YieldHandlingENS0_15DefaultHandlingE"},{"b":"10C39A000","o":"DE06F3","s":"_ZN2js8frontend6ParserINS0_16FullParseHandlerEE9statementENS0_13YieldHandlingEb"},{"b":"10C39A000","o":"DDEBBC","s":"_ZN2js8frontend6ParserINS0_16FullParseHandlerEE10statementsENS0_13YieldHandlingE"},{"b":"10C39A000","o":"DDA466","s":"_ZN2js8frontend6ParserINS0_16FullParseHandlerEE10globalBodyEv"},{"b":"10C39A000","o":"139A2A2","s":"_ZN16BytecodeCompiler13compileScriptEN2JS6HandleIP8JSObjectEENS1_IP8JSScriptEE"},{"b":"10C39A000","o":"139B8F1","s":"_ZN2js8frontend13CompileScriptEPNS_16ExclusiveContextEPNS_9LifoAllocEN2JS6HandleIP8JSObjectEENS6_IPNS_11ScopeObjectEEENS6_IP8JSScriptEERKNS5_22ReadOnlyCompileOptionsERNS5_18SourceBufferHolderEP8JSStringPNS_21SourceCompressionTaskEPPNS_18ScriptSourceObjectE"},{"b":"10C39A000","o":"11464A1","s":"_ZL8EvaluateP9JSContextN2JS6HandleIP8JSObjectEENS2_IPN2js11ScopeObjectEEERKNS1_22ReadOnlyCompileOptionsERNS1_18SourceBufferHolderENS1_13MutableHandleINS1_5ValueEEE"},{"b":"10C39A000","o":"1146335","s":"_ZN2JS8EvaluateEP9JSContextRKNS_22ReadOnlyCompileOptionsEPKcmNS_13MutableHandleINS_5ValueEEE"},{"b":"10C39A000","o":"1301076","s":"_ZN9JSRuntime15initSelfHostingEP9JSContext"},{"b":"10C39A000","o":"1139DD6","s":"_ZN2js10NewContextEP9JSRuntimem"},{"b":"10C39A000","o":"A22A39","s":"_ZN5mongo5mozjs14MozJSImplScope10MozRuntimeC2EPKNS0_17MozJSScriptEngineE"},{"b":"10C39A000","o":"A2305A","s":"_ZN5mongo5mozjs14MozJSImplScopeC2EPNS0_17MozJSScriptEngineE"},{"b":"10C39A000","o":"A1E1E2","s":"_ZN5mongo5mozjs17MozJSScriptEngine27createScopeForCurrentThreadEv"},{"b":"10C39A000","o":"1F9F46","s":"_ZN5mongo2mr5State4initEv"},{"b":"10C39A000","o":"1FE418","s":"_ZN5mongo2mr16MapReduceCommand3runEPNS_16OperationContextERKNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEERNS_7BSONObjEiRSA_RNS_14BSONObjBuilderE"},{"b":"10C39A000","o":"1B2C56","s":"_ZN5mongo7Command3runEPNS_16OperationContextERKNS_3rpc16RequestInterfaceEPNS3_21ReplyBuilderInterfaceE"},{"b":"10C39A000","o":"1B1D27","s":"_ZN5mongo7Command11execCommandEPNS_16OperationContextEPS0_RKNS_3rpc16RequestInterfaceEPNS4_21ReplyBuilderInterfaceE"},{"b":"10C39A000","o":"6F8389","s":"_ZN5mongo11runCommandsEPNS_16OperationContextERKNS_3rpc16RequestInterfaceEPNS2_21ReplyBuilderInterfaceE"},{"b":"10C39A000","o":"3613A9","s":"_ZN5mongo16assembleResponseEPNS_16OperationContextERNS_7MessageERNS_10DbResponseERKNS_11HostAndPortE"},{"b":"10C39A000","o":"F827","s":"_ZN5mongo23ServiceEntryPointMongod12_sessionLoopERKNSt3__110shared_ptrINS_9transport7SessionEEE"},{"b":"10C39A000","o":"100D8","s":"_ZNSt3__110__function6__funcIZN5mongo23ServiceEntryPointMongod12startSessionENS_10shared_ptrINS2_9transport7SessionEEEE3$_0NS_9allocatorIS8_EEFvRKS7_EEclESC_"},{"b":"10C39A000","o":"A6D4AD","s":"_ZN5mongo12_GLOBAL__N_17runFuncEPv"},{"b":"10C39A000","o":"A6DB61","s":"_ZNSt3__114__thread_proxyINS_5tupleIJNS_6__bindIRFPvS3_EJPN5mongo12_GLOBAL__N_17ContextEEEEEEEEES3_S3_"},{"b":"7FFFC8C7F000","o":"3AAB","s":"_pthread_body"},{"b":"7FFFC8C7F000","o":"39F7","s":"_pthread_body"},{"b":"7FFFC8C7F000","o":"3221","s":"thread_start"}],"processInfo":{ "mongodbVersion" : "3.4.0-rc3", "gitVersion" : "7d68067e5a6272bb463acc4e7a6c6a144148039c", "compiledModules" : [], "uname" : { "sysname" : "Darwin", "release" : "16.1.0", "version" : "Darwin Kernel Version 16.1.0: Thu Oct 13 21:26:57 PDT 2016; root:xnu-3789.21.3~60/RELEASE_X86_64", "machine" : "x86_64" }, "somap" : [ { "path" : "/Users/guo/dev.mongo/./mongod", "machType" : 2, "b" : "10C39A000", "vmaddr" : "100000000", "buildId" : "EFFC9906E37A335BBDB054128277D164" }, { "path" : "/usr/lib/libssl.0.9.8.dylib", "machType" : 6, "b" : "7FFFC8775000", "vmaddr" : "7FFF89FEA000", "buildId" : "CCE6971829653E28A88641C79EB94C67" }, { "path" : "/usr/lib/libcrypto.0.9.8.dylib", "machType" : 6, "b" : "7FFFC776B000", "vmaddr" : "7FFF88FE0000", "buildId" : "4CB423CE0B86334A9335FEE75198024F" }, { "path" : "/usr/lib/libSystem.B.dylib", "machType" : 6, "b" : "7FFFC74D4000", "vmaddr" : "7FFF88D49000", "buildId" : "CFC3669CFB443A5188151E84A168F3C5" }, { "path" : "/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation", "machType" : 6, "b" : "7FFFB3919000", "vmaddr" : "7FFF7518E000", "buildId" : "C25C6FB8E934349C952C26CF913BAC33" }, { "path" : "/System/Library/Frameworks/Security.framework/Versions/A/Security", "machType" : 6, "b" : "7FFFB9C09000", "vmaddr" : "7FFF7B47E000", "buildId" : "7E95D13A0D5236A9A1C4C21EE26AB2AB" }, { "path" : "/usr/lib/libc++.1.dylib", "machType" : 6, "b" : "7FFFC7606000", "vmaddr" : "7FFF88E7B000", "buildId" : "BEE86868F831384C919E2B286ACFE87C" }, { "path" : "/System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent", "machType" : 6, "b" : "7FFFC5FF6000", "vmaddr" : "7FFF8786B000", "buildId" : "6793B664C4FC3CD4B0E725B9933391AC" }, { "path" : "/usr/lib/libz.1.dylib", "machType" : 6, "b" : "7FFFC896F000", "vmaddr" : "7FFF8A1E4000", "buildId" : "46E3FFA24328327A8D34A03E20BFFB8E" }, { "path" : "/usr/lib/system/libcache.dylib", "machType" : 6, "b" : "7FFFC898F000", "vmaddr" : "7FFF8A204000", "buildId" : "84E55656FDA93B299E4FBE31B2C0AA3C" }, { "path" : "/usr/lib/system/libcommonCrypto.dylib", "machType" : 6, "b" : "7FFFC8994000", "vmaddr" : "7FFF8A209000", "buildId" : "31040F105E573B9C8D5B33AD87D1BEE8" }, { "path" : "/usr/lib/system/libcompiler_rt.dylib", "machType" : 6, "b" : "7FFFC899F000", "vmaddr" : "7FFF8A214000", "buildId" : "486BDE5281B43446BD7223977CAE556F" }, { "path" : "/usr/lib/system/libcopyfile.dylib", "machType" : 6, "b" : "7FFFC89A7000", "vmaddr" : "7FFF8A21C000", "buildId" : "0DA49B7756EC362D98FFFA78CFD986D6" }, { "path" : "/usr/lib/system/libcorecrypto.dylib", "machType" : 6, "b" : "7FFFC89B0000", "vmaddr" : "7FFF8A225000", "buildId" : "2684CC01087E33E28219AAA3BBD9BFD7" }, { "path" : "/usr/lib/system/libdispatch.dylib", "machType" : 6, "b" : "7FFFC8A33000", "vmaddr" : "7FFF8A2A8000", "buildId" : "877B505D826C324684F70F850636039E" }, { "path" : "/usr/lib/system/libdyld.dylib", "machType" : 6, "b" : "7FFFC8A66000", "vmaddr" : "7FFF8A2DB000", "buildId" : "7BFA347662103BCB8CE89B952F87BD84" }, { "path" : "/usr/lib/system/libkeymgr.dylib", "machType" : 6, "b" : "7FFFC8A6C000", "vmaddr" : "7FFF8A2E1000", "buildId" : "09CD7CA646D23A9FB9F17C4CA5CA0D68" }, { "path" : "/usr/lib/system/liblaunch.dylib", "machType" : 6, "b" : "7FFFC8A7A000", "vmaddr" : "7FFF8A2EF000", "buildId" : "7AB2E2EA8B47342087CE5EE18A4EEE49" }, { "path" : "/usr/lib/system/libmacho.dylib", "machType" : 6, "b" : "7FFFC8A7B000", "vmaddr" : "7FFF8A2F0000", "buildId" : "1EAE5ADD490C3B1F9F97447BA8E0E90F" }, { "path" : "/usr/lib/system/libquarantine.dylib", "machType" : 6, "b" : "7FFFC8A81000", "vmaddr" : "7FFF8A2F6000", "buildId" : "F3E47D7C8776327C9426DD7DEB30DBDD" }, { "path" : "/usr/lib/system/libremovefile.dylib", "machType" : 6, "b" : "7FFFC8A84000", "vmaddr" : "7FFF8A2F9000", "buildId" : "C4FC07FFED86382EB06F33C34718080C" }, { "path" : "/usr/lib/system/libsystem_asl.dylib", "machType" : 6, "b" : "7FFFC8A86000", "vmaddr" : "7FFF8A2FB000", "buildId" : "F09874908427367FB302A05A7D61FEBF" }, { "path" : "/usr/lib/system/libsystem_blocks.dylib", "machType" : 6, "b" : "7FFFC8A9F000", "vmaddr" : "7FFF8A314000", "buildId" : "B8C3701D5A913D35999D2DC8D5393525" }, { "path" : "/usr/lib/system/libsystem_c.dylib", "machType" : 6, "b" : "7FFFC8AA0000", "vmaddr" : "7FFF8A315000", "buildId" : "5F9531F5EDA33D25A8273E0FD6B392BA" }, { "path" : "/usr/lib/system/libsystem_configuration.dylib", "machType" : 6, "b" : "7FFFC8B2E000", "vmaddr" : "7FFF8A3A3000", "buildId" : "CDC55FCBC1FC350DA9195DBCFC835B63" }, { "path" : "/usr/lib/system/libsystem_coreservices.dylib", "machType" : 6, "b" : "7FFFC8B32000", "vmaddr" : "7FFF8A3A7000", "buildId" : "5DE691C67EE63210895D9EA3ECBC09B4" }, { "path" : "/usr/lib/system/libsystem_coretls.dylib", "machType" : 6, "b" : "7FFFC8B36000", "vmaddr" : "7FFF8A3AB000", "buildId" : "8F7E9B12400D3276A9C54546B0258554" }, { "path" : "/usr/lib/system/libsystem_dnssd.dylib", "machType" : 6, "b" : "7FFFC8B4F000", "vmaddr" : "7FFF8A3C4000", "buildId" : "28E52C39DF10340FA3ECC0119AF6361F" }, { "path" : "/usr/lib/system/libsystem_info.dylib", "machType" : 6, "b" : "7FFFC8B56000", "vmaddr" : "7FFF8A3CB000", "buildId" : "C686B8345E7D382CAF6E44AB78EE83E2" }, { "path" : "/usr/lib/system/libsystem_kernel.dylib", "machType" : 6, "b" : "7FFFC8B80000", "vmaddr" : "7FFF8A3F5000", "buildId" : "EC53F92A0DFA3027A220414A01F17B2E" }, { "path" : "/usr/lib/system/libsystem_m.dylib", "machType" : 6, "b" : "7FFFC8BA3000", "vmaddr" : "7FFF8A418000", "buildId" : "7F86C291B10531C1992390EBAB22B73F" }, { "path" : "/usr/lib/system/libsystem_malloc.dylib", "machType" : 6, "b" : "7FFFC8BEB000", "vmaddr" : "7FFF8A460000", "buildId" : "F98400804C2C3F3B80877C738F12A1C7" }, { "path" : "/usr/lib/system/libsystem_network.dylib", "machType" : 6, "b" : "7FFFC8C0A000", "vmaddr" : "7FFF8A47F000", "buildId" : "2BAFB24F999C3148BDD8F28E05F716F7" }, { "path" : "/usr/lib/system/libsystem_networkextension.dylib", "machType" : 6, "b" : "7FFFC8C62000", "vmaddr" : "7FFF8A4D7000", "buildId" : "971DD3ADD17A32FF95DE0A5A979E68AE" }, { "path" : "/usr/lib/system/libsystem_notify.dylib", "machType" : 6, "b" : "7FFFC8C6C000", "vmaddr" : "7FFF8A4E1000", "buildId" : "EAD023A2AD3F31C89489274B9A42DA61" }, { "path" : "/usr/lib/system/libsystem_platform.dylib", "machType" : 6, "b" : "7FFFC8C76000", "vmaddr" : "7FFF8A4EB000", "buildId" : "2F2D6A81C36C353DB27BA6643A32375E" }, { "path" : "/usr/lib/system/libsystem_pthread.dylib", "machType" : 6, "b" : "7FFFC8C7F000", "vmaddr" : "7FFF8A4F4000", "buildId" : "46375095473130349D87396DE95FC697" }, { "path" : "/usr/lib/system/libsystem_sandbox.dylib", "machType" : 6, "b" : "7FFFC8C8A000", "vmaddr" : "7FFF8A4FF000", "buildId" : "2D42A2BFA7AF352AA821D8F6E85A63AC" }, { "path" : "/usr/lib/system/libsystem_secinit.dylib", "machType" : 6, "b" : "7FFFC8C8E000", "vmaddr" : "7FFF8A503000", "buildId" : "A54B8FEFE7923C548E0BE80A376662F2" }, { "path" : "/usr/lib/system/libsystem_symptoms.dylib", "machType" : 6, "b" : "7FFFC8C90000", "vmaddr" : "7FFF8A505000", "buildId" : "8FB7CA3779EF3651B5B9B5E1E0947067" }, { "path" : "/usr/lib/system/libsystem_trace.dylib", "machType" : 6, "b" : "7FFFC8C98000", "vmaddr" : "7FFF8A50D000", "buildId" : "C029B910A65F35F6B194B933B454EAB4" }, { "path" : "/usr/lib/system/libunwind.dylib", "machType" : 6, "b" : "7FFFC8CB9000", "vmaddr" : "7FFF8A52E000", "buildId" : "9F7C2AD8A9A73DE4828DB0F0F166AAA0" }, { "path" : "/usr/lib/system/libxpc.dylib", "machType" : 6, "b" : "7FFFC8CBF000", "vmaddr" : "7FFF8A534000", "buildId" : "85EB25FD218F38EE9E69391CC8EBE6C5" }, { "path" : "/usr/lib/libobjc.A.dylib", "machType" : 6, "b" : "7FFFC8178000", "vmaddr" : "7FFF899ED000", "buildId" : "F9AFE665A3A23285949519803A565861" }, { "path" : "/usr/lib/libauto.dylib", "machType" : 6, "b" : "7FFFC75E5000", "vmaddr" : "7FFF88E5A000", "buildId" : "5BBF6A00CC76389D84E7CA88EDADE683" }, { "path" : "/usr/lib/libc++abi.dylib", "machType" : 6, "b" : "7FFFC765D000", "vmaddr" : "7FFF88ED2000", "buildId" : "1CEF8ABB7E6D3C2F8E0AE7884478DD23" }, { "path" : "/usr/lib/libDiagnosticMessagesClient.dylib", "machType" : 6, "b" : "7FFFC7296000", "vmaddr" : "7FFF88B0B000", "buildId" : "422911A4E2733E88BFC4DF6470E48242" }, { "path" : "/usr/lib/libicucore.A.dylib", "machType" : 6, "b" : "7FFFC7BC3000", "vmaddr" : "7FFF89438000", "buildId" : "C817693792713F0E829DF3BBB9DD44B5" }, { "path" : "/usr/lib/libcoretls.dylib", "machType" : 6, "b" : "7FFFC76AF000", "vmaddr" : "7FFF88F24000", "buildId" : "F3BAB54CDA8237C3A21846FEB179D555" }, { "path" : "/usr/lib/libcoretls_cfhelpers.dylib", "machType" : 6, "b" : "7FFFC76B0000", "vmaddr" : "7FFF88F25000", "buildId" : "D12709F3BBE33CF79070C2A0803F5526" }, { "path" : "/usr/lib/libbsm.0.dylib", "machType" : 6, "b" : "7FFFC75E6000", "vmaddr" : "7FFF88E5B000", "buildId" : "20084796B04D3B35A003EA11459557A9" }, { "path" : "/usr/lib/libxar.1.dylib", "machType" : 6, "b" : "7FFFC8844000", "vmaddr" : "7FFF8A0B9000", "buildId" : "AAFCF32181003622880B9661DCA35D69" }, { "path" : "/usr/lib/libsqlite3.dylib", "machType" : 6, "b" : "7FFFC860A000", "vmaddr" : "7FFF89E7F000", "buildId" : "FCA29CD2E8E433248E2C19BDC11F0338" }, { "path" : "/usr/lib/libpam.2.dylib", "machType" : 6, "b" : "7FFFC854B000", "vmaddr" : "7FFF89DC0000", "buildId" : "352F8FF622483594B3578D031DEFB06C" }, { "path" : "/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit", "machType" : 6, "b" : "7FFFB58D7000", "vmaddr" : "7FFF7714C000", "buildId" : "EEFE7FF0CE41326AA5718AA0B2E89271" }, { "path" : "/usr/lib/libOpenScriptingUtil.dylib", "machType" : 6, "b" : "7FFFC74CF000", "vmaddr" : "7FFF88D44000", "buildId" : "D025E180BB3B3FFA98FCB6835354D723" }, { "path" : "/usr/lib/libbz2.1.0.dylib", "machType" : 6, "b" : "7FFFC75F7000", "vmaddr" : "7FFF88E6C000", "buildId" : "6FD3B63F0F863A25BD5BE243F58792C9" }, { "path" : "/usr/lib/libxml2.2.dylib", "machType" : 6, "b" : "7FFFC8855000", "vmaddr" : "7FFF8A0CA000", "buildId" : "2667615564CE323FB73CAD77AF5982E8" }, { "path" : "/usr/lib/liblzma.5.dylib", "machType" : 6, "b" : "7FFFC7DF0000", "vmaddr" : "7FFF89665000", "buildId" : "44BD027999DD36B58A6EC11432E2098D" }, { "path" : "/usr/lib/libenergytrace.dylib", "machType" : 6, "b" : "7FFFC7ABA000", "vmaddr" : "7FFF8932F000", "buildId" : "A1B040A2797730979ADF34FF181EB970" }, { "path" : "/usr/lib/system/libkxld.dylib", "machType" : 6, "b" : "7FFFC8A6D000", "vmaddr" : "7FFF8A2E2000", "buildId" : "F12B527444AD3268A79331EF351A4BD9" } ] }}
[MongoDFixture:job0]  mongod(_ZN5mongo15printStackTraceERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEE+0x3A) [0x10ce997da]
[MongoDFixture:job0]  mongod(_ZN5mongo12_GLOBAL__N_124abruptQuitWithAddrSignalEiP9__siginfoPv+0x140) [0x10ce991d0]
[MongoDFixture:job0]  libsystem_platform.dylib(_sigtramp+0x1A) [0x7fffc8c78bba]
[js_test:repro1] 2016-11-23T18:00:34.957-0500 2016-11-23T18:00:34.957-0500 I NETWORK  [main] trying reconnect to 127.0.0.1:20000 (127.0.0.1) failed
[MongoDFixture:job0]  ??? [0x7fc6e91616e8]
[js_test:repro1] 2016-11-23T18:00:34.957-0500 2016-11-23T18:00:34.957-0500 W NETWORK  [main] Failed to connect to 127.0.0.1:20000, reason: Connection refused
[MongoDFixture:job0]  mongod(_Z9js_mallocm+0x44) [0x10cdd0444]
[MongoDFixture:job0]  mongod(_ZN2js9LifoAlloc16getOrCreateChunkEm+0xA0) [0x10d731090]
[js_test:repro1] 2016-11-23T18:00:34.958-0500 2016-11-23T18:00:34.957-0500 I NETWORK  [main] reconnect 127.0.0.1:20000 (127.0.0.1) failed failed
[MongoDFixture:job0]  mongod(_ZN2js8frontend18ParseNodeAllocator9allocNodeEv+0x59) [0x10d75ad39]
[MongoDFixture:job0]  mongod(_ZN2js8frontend6ParserINS0_16FullParseHandlerEE11functionDefENS0_10InHandlingENS0_13YieldHandlingEN2JS6HandleIPNS_12PropertyNameEEENS0_18FunctionSyntaxKindENS_13GeneratorKindENS3_17InvokedPredictionE+0x57) [0x10d182d67]
[MongoDFixture:job0]  mongod(_ZN2js8frontend6ParserINS0_16FullParseHandlerEE12functionStmtENS0_13YieldHandlingENS0_15DefaultHandlingE+0x25E) [0x10d17f68e]
[MongoDFixture:job0]  mongod(_ZN2js8frontend6ParserINS0_16FullParseHandlerEE9statementENS0_13YieldHandlingEb+0x223) [0x10d17a6f3]
[MongoDFixture:job0]  mongod(_ZN2js8frontend6ParserINS0_16FullParseHandlerEE10statementsENS0_13YieldHandlingE+0x29C) [0x10d178bbc]
[MongoDFixture:job0]  mongod(_ZN2js8frontend6ParserINS0_16FullParseHandlerEE10globalBodyEv+0x16) [0x10d174466]
[MongoDFixture:job0]  mongod(_ZN16BytecodeCompiler13compileScriptEN2JS6HandleIP8JSObjectEENS1_IP8JSScriptEE+0x282) [0x10d7342a2]
[MongoDFixture:job0]  mongod(_ZN2js8frontend13CompileScriptEPNS_16ExclusiveContextEPNS_9LifoAllocEN2JS6HandleIP8JSObjectEENS6_IPNS_11ScopeObjectEEENS6_IP8JSScriptEERKNS5_22ReadOnlyCompileOptionsERNS5_18SourceBufferHolderEP8JSStringPNS_21SourceCompressionTaskEPPNS_18ScriptSourceObjectE+0x71) [0x10d7358f1]
[MongoDFixture:job0]  mongod(_ZL8EvaluateP9JSContextN2JS6HandleIP8JSObjectEENS2_IPN2js11ScopeObjectEEERKNS1_22ReadOnlyCompileOptionsERNS1_18SourceBufferHolderENS1_13MutableHandleINS1_5ValueEEE+0xE1) [0x10d4e04a1]
[MongoDFixture:job0]  mongod(_ZN2JS8EvaluateEP9JSContextRKNS_22ReadOnlyCompileOptionsEPKcmNS_13MutableHandleINS_5ValueEEE+0xD5) [0x10d4e0335]
[MongoDFixture:job0]  mongod(_ZN9JSRuntime15initSelfHostingEP9JSContext+0x246) [0x10d69b076]
[MongoDFixture:job0]  mongod(_ZN2js10NewContextEP9JSRuntimem+0x416) [0x10d4d3dd6]
[MongoDFixture:job0]  mongod(_ZN5mongo5mozjs14MozJSImplScope10MozRuntimeC2EPKNS0_17MozJSScriptEngineE+0x549) [0x10cdbca39]
[MongoDFixture:job0]  mongod(_ZN5mongo5mozjs14MozJSImplScopeC2EPNS0_17MozJSScriptEngineE+0x4A) [0x10cdbd05a]
[MongoDFixture:job0]  mongod(_ZN5mongo5mozjs17MozJSScriptEngine27createScopeForCurrentThreadEv+0x22) [0x10cdb81e2]
[MongoDFixture:job0]  mongod(_ZN5mongo2mr5State4initEv+0x46) [0x10c593f46]
[MongoDFixture:job0]  mongod(_ZN5mongo2mr16MapReduceCommand3runEPNS_16OperationContextERKNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEERNS_7BSONObjEiRSA_RNS_14BSONObjBuilderE+0x698) [0x10c598418]
[MongoDFixture:job0]  mongod(_ZN5mongo7Command3runEPNS_16OperationContextERKNS_3rpc16RequestInterfaceEPNS3_21ReplyBuilderInterfaceE+0x416) [0x10c54cc56]
[MongoDFixture:job0]  mongod(_ZN5mongo7Command11execCommandEPNS_16OperationContextEPS0_RKNS_3rpc16RequestInterfaceEPNS4_21ReplyBuilderInterfaceE+0xC27) [0x10c54bd27]
[MongoDFixture:job0]  mongod(_ZN5mongo11runCommandsEPNS_16OperationContextERKNS_3rpc16RequestInterfaceEPNS2_21ReplyBuilderInterfaceE+0x259) [0x10ca92389]
[MongoDFixture:job0]  mongod(_ZN5mongo16assembleResponseEPNS_16OperationContextERNS_7MessageERNS_10DbResponseERKNS_11HostAndPortE+0x1489) [0x10c6fb3a9]
[MongoDFixture:job0]  mongod(_ZN5mongo23ServiceEntryPointMongod12_sessionLoopERKNSt3__110shared_ptrINS_9transport7SessionEEE+0x187) [0x10c3a9827]
[MongoDFixture:job0]  mongod(_ZNSt3__110__function6__funcIZN5mongo23ServiceEntryPointMongod12startSessionENS_10shared_ptrINS2_9transport7SessionEEEE3$_0NS_9allocatorIS8_EEFvRKS7_EEclESC_+0x18) [0x10c3aa0d8]
[MongoDFixture:job0]  mongod(_ZN5mongo12_GLOBAL__N_17runFuncEPv+0x2AD) [0x10ce074ad]
[MongoDFixture:job0]  mongod(_ZNSt3__114__thread_proxyINS_5tupleIJNS_6__bindIRFPvS3_EJPN5mongo12_GLOBAL__N_17ContextEEEEEEEEES3_S3_+0x61) [0x10ce07b61]
[MongoDFixture:job0]  libsystem_pthread.dylib(_pthread_body+0xB4) [0x7fffc8c82aab]
[MongoDFixture:job0]  libsystem_pthread.dylib(_pthread_body+0x0) [0x7fffc8c829f7]
[MongoDFixture:job0]  libsystem_pthread.dylib(thread_start+0xD) [0x7fffc8c82221]
[MongoDFixture:job0] -----  END BACKTRACE  -----



 Comments   
Comment by Githook User [ 17/Mar/17 ]

Author:

{u'username': u'jbreams', u'name': u'Jonathan Reams', u'email': u'jbreams@mongodb.com'}

Message: SERVER-27177 initialize kCurrentScope before creating mozjs runtime/scope

(cherry picked from commit 7cb646696ba926a577a23572afa857b4360b9bac)
Branch: v3.4
https://github.com/mongodb/mongo/commit/f07437fb5a6cca07c10bafa78365456eb1d6d5e1

Comment by Githook User [ 01/Dec/16 ]

Author:

{u'username': u'jbreams', u'name': u'Jonathan Reams', u'email': u'jbreams@mongodb.com'}

Message: SERVER-27177 initialize kCurrentScope before creating mozjs runtime/scope
Branch: master
https://github.com/mongodb/mongo/commit/7cb646696ba926a577a23572afa857b4360b9bac

Comment by Jonathan Reams [ 28/Nov/16 ]

I've been running the repro script on a number of platforms and re-running the jstestfuzz files to try to get this to repro. So far, several hundreds of executions later, I haven't seen this failure again.

I expect that interrupting running JIT code is probably unsafe when the JSContext hasn't been fully constructed yet, and it wouldn't be hard to make sure that JS_RequestInterruptCallback isn't called until after the context has been fully initialized. That said, this is all speculative though until we can actually repro this. Also, I tried unconditionally interrupting the scope on every allocation to try to reproduce this, and have yet to see another failure.

Comment by Jonathan Reams [ 28/Nov/16 ]

I haven't been able to actually repro this anywhere with the repro script, but I was able to look at the core files attached to the task in BF-4181, and the underlying issue seems pretty interesting.

It appears that we run out of memory during JS_NewContext, and our OOM handler sets the OOM flag on the ImplScope and requests that spidermonkey interrupt the running context, which then sends the SIGSEGV signal to the ASMJS signal handler, which then aborts the process.

Stack trace included below:

#0  0x00007fb7ade9175b in raise () from /lib64/libpthread.so.0
#1  0x00007fb7b07bb894 in mongo::(anonymous namespace)::endProcessWithSignal (signalNum=11) at src/mongo/util/signal_handlers_synchronous.cpp:90
#2  0x00007fb7b07bc243 in mongo::(anonymous namespace)::abruptQuitWithAddrSignal (signalNum=11, siginfo=<optimized out>) at src/mongo/util/signal_handlers_synchronous.cpp:276
#3  0x00007fb7b0b1c271 in AsmJSFaultHandler (signum=<optimized out>, info=0x7fb7af1edcb0, context=0x7fb7af1edb80)
    at src/third_party/mozjs-45/extract/js/src/asmjs/AsmJSSignalHandlers.cpp:1159
#4  <signal handler called>
#5  0x00007fb7ade8f0a0 in pthread_kill () from /lib64/libpthread.so.0
#6  0x00007fb7b0b1d81d in js::InterruptRunningJitCode (rt=<optimized out>) at src/third_party/mozjs-45/extract/js/src/asmjs/AsmJSSignalHandlers.cpp:1356
#7  0x00007fb7b0f07693 in JSRuntime::requestInterrupt (this=<optimized out>, mode=<optimized out>) at src/third_party/mozjs-45/extract/js/src/vm/Runtime.cpp:652
#8  0x00007fb7b0d965ec in JS_RequestInterruptCallback (rt=<optimized out>) at src/third_party/mozjs-45/extract/js/src/jsapi.cpp:4675
#9  0x00007fb7b06d3398 in mongo::mozjs::MozJSImplScope::setOOM (this=<optimized out>) at src/mongo/scripting/mozjs/implscope.cpp:918
#10 0x00007fb7b06ddb52 in mongo::sm::wrap_alloc<js_malloc(size_t)::<lambda(void*, size_t)> >(size_t, void *, <unknown type in /data/mci/artifacts-229574-suse12_compile/mongod.debug, CU 0x118d1c13, DIE 0x118df208>) (bytes=bytes@entry=4096, ptr=0x0, func=<optimized out>) at src/mongo/scripting/mozjs/jscustomallocator.cpp:118
#11 0x00007fb7b06ddc2a in js_malloc (bytes=bytes@entry=4096) at src/mongo/scripting/mozjs/jscustomallocator.cpp:167
#12 0x00007fb7b0f9b5d1 in js::detail::BumpChunk::new_ (chunkSize=4096) at src/third_party/mozjs-45/extract/js/src/ds/LifoAlloc.cpp:23
#13 0x00007fb7b0f9b741 in js::LifoAlloc::getOrCreateChunk (this=this@entry=0x7fb7b9176300, n=n@entry=56) at src/third_party/mozjs-45/extract/js/src/ds/LifoAlloc.cpp:105
#14 0x00007fb7b0fbd6f8 in allocImpl (n=56, this=0x7fb7b9176300) at src/third_party/mozjs-45/extract/js/src/ds/LifoAlloc.h:223
#15 alloc (n=56, this=0x7fb7b9176300) at src/third_party/mozjs-45/extract/js/src/ds/LifoAlloc.h:275
#16 js::frontend::ParseNodeAllocator::allocNode (this=this@entry=0x7fb7af1f0210) at src/third_party/mozjs-45/extract/js/src/frontend/ParseNode.cpp:590
#17 0x00007fb7b0fbd7aa in allocParseNode (size=56, this=0x7fb7af1f0210) at src/third_party/mozjs-45/extract/js/src/frontend/FullParseHandler.h:33
#18 new_<js::frontend::ListNode, js::frontend::ParseNodeKind&, JSOp&, js::frontend::ParseNode*&> (this=0x7fb7af1f0210)
    at src/third_party/mozjs-45/extract/js/src/frontend/FullParseHandler.h:70
#19 js::frontend::ParseNode::appendOrCreateList (kind=kind@entry=js::frontend::PNK_ADD, op=JSOP_ADD, left=left@entry=0x7fb7b8f65f70, right=0x7fb7b8f65fa8,
    handler=handler@entry=0x7fb7af1f0210, pc=0x7fb7af1eed10) at src/third_party/mozjs-45/extract/js/src/frontend/ParseNode.cpp:632
#20 0x00007fb7b0ad1a47 in appendOrCreateList (op=<optimized out>, pc=<optimized out>, right=<optimized out>, left=0x7fb7b8f65f70, kind=js::frontend::PNK_ADD, this=0x7fb7af1f0210)
...
#41 0x00007fb7b0ab0a11 in js::frontend::Parser<js::frontend::FullParseHandler>::globalBody (this=0x7fb7af1efd40) at src/third_party/mozjs-45/extract/js/src/frontend/Parser.cpp:1059
#42 0x00007fb7b0fab005 in BytecodeCompiler::compileScript (this=this@entry=0x7fb7af1ef780, scopeChain=..., scopeChain@entry=..., evalCaller=evalCaller@entry=...)
    at src/third_party/mozjs-45/extract/js/src/frontend/BytecodeCompiler.cpp:527
#43 0x00007fb7b0fab47c in js::frontend::CompileScript (cx=cx@entry=0x7fb7b86fc840, alloc=<optimized out>, scopeChain=scopeChain@entry=..., enclosingStaticScope=...,
    enclosingStaticScope@entry=..., evalCaller=evalCaller@entry=..., options=..., srcBuf=..., source_=0x0, extraSct=0x7fb7af1f0620, sourceObjectOut=0x0)
    at src/third_party/mozjs-45/extract/js/src/frontend/BytecodeCompiler.cpp:738
#44 0x00007fb7b0d9a5cd in Evaluate (cx=cx@entry=0x7fb7b86fc840, scope=scope@entry=..., staticScope=staticScope@entry=..., optionsArg=..., srcBuf=..., rval=..., rval@entry=...)
    at src/third_party/mozjs-45/extract/js/src/jsapi.cpp:4495
#45 0x00007fb7b0d9aa44 in JS::Evaluate (cx=cx@entry=0x7fb7b86fc840, options=...,
    bytes=bytes@entry=0x7fb7b9148000 "var std_Array_indexOf = ArrayIndexOf;\nvar std_String_substring = String_substring;\nvar std_WeakMap = WeakMap;\nvar std_StopIteration= StopIteration;\nvar std_Map_iterator_next = MapIteratorNext;\nfuncti"..., length=length@entry=164270, rval=rval@entry=...) at src/third_party/mozjs-45/extract/js/src/jsapi.cpp:4559
#46 0x00007fb7b0f2aa51 in JSRuntime::initSelfHosting (this=this@entry=0x7fb7b9176000, cx=cx@entry=0x7fb7b86fc840) at src/third_party/mozjs-45/extract/js/src/vm/SelfHosting.cpp:1789
#47 0x00007fb7b0d9974b in js::NewContext (rt=0x7fb7b9176000, stackChunkSize=stackChunkSize@entry=8192) at src/third_party/mozjs-45/extract/js/src/jscntxt.cpp:122
#48 0x00007fb7b0d997aa in JS_NewContext (rt=<optimized out>, stackChunkSize=stackChunkSize@entry=8192) at src/third_party/mozjs-45/extract/js/src/jsapi.cpp:566
#49 0x00007fb7b06d71c7 in mongo::mozjs::MozJSImplScope::MozRuntime::MozRuntime (this=0x7fb7b8f5e0a0, engine=0x7fb7b3ec6000) at src/mongo/scripting/mozjs/implscope.cpp:339
#50 0x00007fb7b06d78d8 in mongo::mozjs::MozJSImplScope::MozJSImplScope (this=0x7fb7b8f5e000, engine=0x7fb7b3ec6000) at src/mongo/scripting/mozjs/implscope.cpp:393
#51 0x00007fb7b06c8582 in mongo::mozjs::MozJSScriptEngine::createScopeForCurrentThread (this=0x7fb7b3ec6000) at src/mongo/scripting/mozjs/engine.cpp:88
#52 0x00007fb7afd1299b in newScopeForCurrentThread (this=<optimized out>) at src/mongo/scripting/engine.h:239
#53 mongo::mr::State::init (this=this@entry=0x7fb7af1f1710) at src/mongo/db/commands/mr.cpp:829
#54 0x00007fb7afd1e70b in mongo::mr::MapReduceCommand::run (this=<optimized out>, txn=0x7fb7b96c15e0, dbname=..., cmd=..., errmsg=..., result=...)
    at src/mongo/db/commands/mr.cpp:1430
#55 0x00007fb7afcaf508 in mongo::Command::run (this=this@entry=0x7fb7b1f1f580 <mongo::mr::mapReduceCommand>, txn=txn@entry=0x7fb7b96c15e0, request=...,
    replyBuilder=replyBuilder@entry=0x7fb7af1f25b0) at src/mongo/db/commands/dbcommands.cpp:1528
#56 0x00007fb7afcb0530 in mongo::Command::execCommand (txn=txn@entry=0x7fb7b96c15e0, command=command@entry=0x7fb7b1f1f580 <mongo::mr::mapReduceCommand>, request=...,
    replyBuilder=replyBuilder@entry=0x7fb7af1f25b0) at src/mongo/db/commands/dbcommands.cpp:1438
#57 0x00007fb7b02c6a4d in mongo::runCommands (txn=txn@entry=0x7fb7b96c15e0, request=..., replyBuilder=replyBuilder@entry=0x7fb7af1f25b0) at src/mongo/db/run_commands.cpp:73
#58 0x00007fb7afecf9bd in receivedRpc (client=..., message=..., dbResponse=..., txn=0x7fb7b96c15e0) at src/mongo/db/instance.cpp:271

Generated at Thu Feb 08 04:14:22 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.