Изменения сценария инициализации для MongoDB

341
user598529

У нас есть MongoDB (версия 3.0) как в автономном, так и в кластерном режиме. В настоящее время мы столкнулись с проблемой, которая в основном гласит:

Обнаружено нечистое отключение, следовательно, невозможно запустить mongod.

  1. После отладки мы узнали, что mongod показывал другой pid в (O / p of ps -> ie
ps -eo pid,cmd | grep "/usr/bin/mongod" | grep -v "grep" | awk '') and there was different pid in /var/run/mongodb/mongod.pid. 
  1. Во втором сценарии команда тестирования выполнила несколько операций перезапуска, в этом случае мы получили ситуацию, когда mongod находился в рабочем состоянии, но файл pid отсутствовал.

Для первого сценария мы просто изменили сценарий инициализации, чтобы проверить, отличается ли запущенный PID от присутствующего в нем PID, а mongod.pidзатем просто записали запущенный PID в mongod.pidфайл.

Любая помощь, чтобы понять эти сценарии, будет высоко ценится.

2

1 ответ на вопрос

0
Adam C

Так что есть несколько причин, по которым это может произойти, включая эту ошибку, которая звучит довольно близко к вашей ситуации (и исправлена ​​в более поздней сборке 3.0 в соответствии с заявкой).

Существует также тот факт, что некоторые процессы демонизации требуют, чтобы процесс был запущен с помощью fork = false, чтобы правильно работать и получить правильный PID, подробнее см. SERVER-7254 .

Это две наиболее вероятные причины, возможно, потребуется более конкретная информация (точная версия MongoDB, ОС и т. Д.), Чтобы попытаться воспроизвести что-либо еще.