mongod разбился без регистрации

Я использую mongodb v2.2.2 на одном сервере (Ubuntu 12.04).

Произошел сбой без входа в /var/log/mongodb/mongodb.log. Похоже, во время регистрации произошел сбой. (Персонаж прерывается. И этот журнал является обычным журналом запросов.)

И я проверил в системном журнале проблему с памятью (например, killed proccess), но не смог ее найти.

Затем я обнаружил следующую ошибку в mongo-shell (команда db.printCollectionStats()).

DLLConnectionResultData { «ns»: «UserData.DLLConnectionResultData», «count»: 8215398, «size»: 4831306500, «avgObjSize»: 588.0794211065611, «errmsg»: «исключение: утверждение src/mongo/db/database.cpp:300» , «код»: 0, «ок»: 0 }

Как мне понять проблемы?

Спасибо,


person user3242587    schedule 28.01.2014    source источник
comment
похоже ошибка памяти. Является ли версия mongod 32-битной или 64-битной?   -  person arunb2w    schedule 28.01.2014
comment
Спасибо за комментарии. Я использую 64-битную версию mongod.   -  person user3242587    schedule 28.01.2014
comment
не могли бы вы проверить, можете ли вы найти какие-либо ошибки в журнале сервера? И если вы включите ведение журнала, пожалуйста, отключите и попробуйте   -  person arunb2w    schedule 28.01.2014
comment
Спасибо arunb2w. Я проверил не только mongodb.log и syslog, но и kern.log, dmesg. Но ошибок в них не нашел. К сожалению, в то время я установил уровень журнала 1. Связан ли Journaling с этой или другой проблемой? (Я всегда использую ведение журнала.)   -  person user3242587    schedule 30.01.2014


Ответы (1)


Я проверил эту строку в исходном коде для версии 2.2.2 (см. здесь для справки). Эта ошибка конкретно связана с применением квот в MongoDB. Вы не упомянули здесь о принудительном применении квот или о том, что вы установили ограничение на количество файлов (по умолчанию 8), но здесь вы можете столкнуться с ограничением.

Во-первых, я бы порекомендовал перейти на более позднюю версию 2.2 (и в конечном итоге перейти на 2.4, но изначально определенно на 2.2.7+). Если вы используете квоты, это исправление, появившееся в версии 2.2.5, будет регистрировать сообщения о превышении квоты. (ранее протоколировался только на уровне журнала 1, по умолчанию используется уровень журнала 0). Следовательно, если виновником здесь является нарушение квоты, вы можете получить раннее предупреждение.

Если это основная причина, то у вас есть несколько вариантов:

  1. После обновления до последней версии 2.2, если проблема повторяется, отправьте отчет об ошибке для сбоя на 2.2.
  2. Обновитесь до версии 2.4, убедитесь, что проблема все еще возникает, и сообщите об ошибке (или добавьте в приведенный выше отчет для версии 2.2).

В любом случае временное отключение квот было бы очевидным способом предотвратить сбой.

person Adam Comerford    schedule 28.01.2014
comment
Спасибо за ответ, Адам С. Я не использую квоты. Я сейчас проверяю квоты/распределения. - person user3242587; 30.01.2014