У меня есть экземпляр MongoDB, работающий на виртуальной машине VMWare с Ubuntu Server 12.04. Внезапно сервер упал, и когда я пытаюсь запустить его заново, я получаю следующую ошибку:
jonathanong@ubuntu:~/mongodb/solo$ /usr/bin/mongod --fork --port 27027 --dbpath ~/mongodb/solo --logpath ~/mongodb/solo/mongodb.log
Thu Jan 17 00:54:25 Assertion failure getcwd( buffer , 1000 ) src/mongo/db/cmdline.cpp 188
0xaffd31 0xac65cd 0x6878a8 0x55f070 0x565d39 0x7f2b226d176d 0x558149
/usr/bin/mongod(_ZN5mongo15printStackTraceERSo+0x21) [0xaffd31]
/usr/bin/mongod(_ZN5mongo12verifyFailedEPKcS1_j+0xfd) [0xac65cd]
/usr/bin/mongod(_ZN5mongo7CmdLine5storeEiPPcRN5boost15program_options19options_descriptionES6_RNS4_30positional_options_descriptionERNS4_13variables_mapE+0x4a38) [0x6878a8]
/usr/bin/mongod() [0x55f070]
/usr/bin/mongod(main+0x9) [0x565d39]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) [0x7f2b226d176d]
/usr/bin/mongod(__gxx_personality_v0+0x471) [0x558149]
Thu Jan 17 00:54:25 terminate() called, printing stack (if implemented for platform):
0xaffd31 0x55840e 0x7f2b23036846 0x7f2b23036873 0x7f2b2303696e 0xac6776 0x6878a8 0x55f070 0x565d39 0x7f2b226d176d 0x558149
/usr/bin/mongod(_ZN5mongo15printStackTraceERSo+0x21) [0xaffd31]
/usr/bin/mongod(_ZN5mongo11myterminateEv+0x3e) [0x55840e]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb5846) [0x7f2b23036846]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb5873) [0x7f2b23036873]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb596e) [0x7f2b2303696e]
/usr/bin/mongod(_ZN5mongo12verifyFailedEPKcS1_j+0x2a6) [0xac6776]
/usr/bin/mongod(_ZN5mongo7CmdLine5storeEiPPcRN5boost15program_options19options_descriptionES6_RNS4_30positional_options_descriptionERNS4_13variables_mapE+0x4a38) [0x6878a8]
/usr/bin/mongod() [0x55f070]
/usr/bin/mongod(main+0x9) [0x565d39]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) [0x7f2b226d176d]
/usr/bin/mongod(__gxx_personality_v0+0x471) [0x558149]
Thu Jan 17 00:54:25 Got signal: 6 (Aborted).
Thu Jan 17 00:54:25 Backtrace:
0xaffd31 0x558bb9 0x7f2b226e64a0 0x7f2b226e6425 0x7f2b226e9b8b 0x558413 0x7f2b23036846 0x7f2b23036873 0x7f2b2303696e 0xac6776 0x6878a8 0x55f070 0x565d39 0x7f2b226d176d 0x558149
/usr/bin/mongod(_ZN5mongo15printStackTraceERSo+0x21) [0xaffd31]
/usr/bin/mongod(_ZN5mongo10abruptQuitEi+0x399) [0x558bb9]
/lib/x86_64-linux-gnu/libc.so.6(+0x364a0) [0x7f2b226e64a0]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0x35) [0x7f2b226e6425]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x17b) [0x7f2b226e9b8b]
/usr/bin/mongod(_ZN5mongo11myterminateEv+0x43) [0x558413]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb5846) [0x7f2b23036846]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb5873) [0x7f2b23036873]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb596e) [0x7f2b2303696e]
/usr/bin/mongod(_ZN5mongo12verifyFailedEPKcS1_j+0x2a6) [0xac6776]
/usr/bin/mongod(_ZN5mongo7CmdLine5storeEiPPcRN5boost15program_options19options_descriptionES6_RNS4_30positional_options_descriptionERNS4_13variables_mapE+0x4a38) [0x6878a8]
/usr/bin/mongod() [0x55f070]
/usr/bin/mongod(main+0x9) [0x565d39]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) [0x7f2b226d176d]
/usr/bin/mongod(__gxx_personality_v0+0x471) [0x558149]
Это MongoDB 2.2.2, загруженная с mongodb-10gen: http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
Любые идеи?
Изменить: Итак, я просто создал новую виртуальную машину с нуля, и все в порядке. Так что это не препятствие для меня, так как я планирую использовать управляемый хостинг. Тем не менее, было бы хорошо знать, в чем проблема!
Похоже, вы в порядке, но к вашему сведению: это только что случилось со мной. Практически такая же трассировка стека. Проблема заключалась в том, что когда я перезапускал mongod, мой текущий каталог в этой оболочке оказался тем, который я удалил недавно (в другой оболочке). Вот почему getcwd терпел неудачу.
Первое, на что следует обратить внимание, это предоставленная строка кода в верхней части сбоя:
https://github.com/mongodb/mongo/blob/v2.2/src/mongo/db/cmdline.cpp#L188
По сути, это получение текущего рабочего каталога. Странное место для сбоя - это может указывать на довольно простую проблему на уровне файловой системы - каталог не найден или поврежден каким-либо другим образом.
Согласно addr2line (см. Разбор трассировок стека) первая соответствующая строка (0x6878a8) указывает здесь:
https://github.com/mongodb/mongo/blob/v2.2/src/mongo/db/cmdline.cpp#L349
Это снова указывает на некоторую проблему с доступом к соответствующему mongod
папка (возможно, / var / lib / mongodb или аналогичный). На этот раз соответствующая ошибка:
Не могу chdir () при разветвлении серверного процесса
Опять же, указывая на аналогичную основную причину с точки зрения доступа к файловой системе / папке, которую программа пытается использовать.
По моему опыту, я получил такую ошибку: «СЕРЬЕЗНО: вызов terminate (), стек печати» из-за проблемы с поиском. тип:
экспорт LC_CTYPE = "en_US.UTF-8"
вероятно, решит проблему.