[SERVER-15011] Segfault in 'mongos --upgrade' if local env variable LC_ALL not set Created: 24/Aug/14  Updated: 25/Jun/15  Resolved: 25/Aug/14

Status: Closed
Project: Core Server
Component/s: Diagnostics
Affects Version/s: 2.6.4
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Meni Livne Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: community-team, polish
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates SERVER-9032 mongod fails when launched with misco... Closed
Operating System: ALL
Steps To Reproduce:

LC_ALL= /usr/bin/mongos --configdb [...]

Participants:

 Description   

Environment variable LC_ALL is not set on system. Running 'mongos --upgrade' to upgrade a 2.4 cluster to 2.6 results in a segfault:

2014-08-24T07:46:42.315+0000 SEVERE: terminate() called, printing stack (if implemented for platform):
0xdbc1f1 0xdbb478 0x7f7f48f72846 0x7f7f48f72873 0x7f7f48f7296e 0x7f7f48f1fa07 0x7f7f48f2f284 0x7f7f48f23a74 0x7f7f48f24b6b 0xdd601f 0xdce8a9 0xad3313 0xc43d84 0x6e8550 0x6e0a7c 0x6ec34e 0x6ec7a2 0x6ecb78 0x6e0258 0x6e0919
/usr/bin/mongos(_ZN5mongo15printStackTraceERSo+0x21) [0xdbc1f1]
/usr/bin/mongos() [0xdbb478]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb5846) [0x7f7f48f72846]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb5873) [0x7f7f48f72873]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb596e) [0x7f7f48f7296e]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(ZSt21_throw_runtime_errorPKc+0x57) [0x7f7f48f1fa07]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x72284) [0x7f7f48f2f284]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(_ZNSt6locale5_ImplC1EPKcm+0x44) [0x7f7f48f23a74]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(_ZNSt6localeC1EPKc+0x73b) [0x7f7f48f24b6b]
/usr/bin/mongos(_ZN5boost11filesystem34path21wchar_t_codecvt_facetEv+0x4f) [0xdd601f]
/usr/bin/mongos(_ZN5boost11filesystem36detail12current_pathEPNS_6system10error_codeE+0xf9) [0xdce8a9]
/usr/bin/mongos(_ZN5mongo18storeServerOptionsERKNS_17optionenvironment11EnvironmentERKSt6vectorISsSaISsEE+0x1bc3) [0xad3313]
/usr/bin/mongos(_ZN5mongo18storeMongosOptionsERKNS_17optionenvironment11EnvironmentERKSt6vectorISsSaISsEE+0x24) [0xc43d84]
/usr/bin/mongos(_ZN5mongo45_mongoInitializerFunction_MongosOptions_StoreEPNS_18InitializerContextE+0x30) [0x6e8550]
/usr/bin/mongos(ZN5boost6detail8function17function_invoker1IPFN5mongo6StatusEPNS3_18InitializerContextEES4_S6_E6invokeERNS1_15function_bufferES6+0xc) [0x6e0a7c]
/usr/bin/mongos(_ZNK5mongo11Initializer7executeERKSt6vectorISsSaISsEERKSt3mapISsSsSt4lessISsESaISt4pairIKSsSsEEE+0x21e) [0x6ec34e]
/usr/bin/mongos(_ZN5mongo21runGlobalInitializersERKSt6vectorISsSaISsEERKSt3mapISsSsSt4lessISsESaISt4pairIKSsSsEEE+0x32) [0x6ec7a2]
/usr/bin/mongos(ZN5mongo21runGlobalInitializersEiPKPKcS3+0x3b8) [0x6ecb78]
/usr/bin/mongos(Z10mongoSMainiPPcS0+0x78) [0x6e0258]
/usr/bin/mongos(main+0x9) [0x6e0919]

Running with LC_ALL=C works around this.



 Comments   
Comment by Matt Kangas [ 25/Aug/14 ]

An exception is thrown from boost::filesystem3::detail::current_path during mongo::storeServerOptions

Related to SERVER-9032 and SERVER-10563. Demangled stack trace below.

/usr/bin/mongos(boost::filesystem3::path::wchar_t_codecvt_facet()+0x4f) [0xdd601f]
/usr/bin/mongos(boost::filesystem3::detail::current_path(boost::system::error_code*)+0xf9) [0xdce8a9]
/usr/bin/mongos(mongo::storeServerOptions(mongo::optionenvironment::Environment const&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)+0x1bc3) [0xad3313]
/usr/bin/mongos(mongo::storeMongosOptions(mongo::optionenvironment::Environment const&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)+0x24) [0xc43d84]
/usr/bin/mongos(mongo::_mongoInitializerFunction_MongosOptions_Store(mongo::InitializerContext*)+0x30) [0x6e8550]
/usr/bin/mongos(ZN5boost6detail8function17function_invoker1IPFN5mongo6StatusEPNS3_18InitializerContextEES4_S6_E6invokeERNS1_15function_bufferES6+0xc) [0x6e0a7c]
/usr/bin/mongos(mongo::Initializer::execute(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) const+0x21e) [0x6ec34e]
/usr/bin/mongos(mongo::runGlobalInitializers(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)+0x32) [0x6ec7a2]
/usr/bin/mongos(ZN5mongo21runGlobalInitializersEiPKPKcS3+0x3b8) [0x6ecb78]
/usr/bin/mongos(Z10mongoSMainiPPcS0+0x78) [0x6e0258]
/usr/bin/mongos(main+0x9) [0x6e0919]

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