Recentemente, promovi um novo membro a primário de um replicaset mongo. As coisas parecem estar funcionando bem por vários dias e não estou vendo nenhum sintoma de aplicativo de nenhum problema. No entanto, olhando para rs.status() hoje, notei que está listando maintenanceMode -7. Eu não acho que isso deveria ser possível, pois é o principal. Estou tendo problemas para encontrar algo útil nos documentos sobre o que isso significa.
O que isto significa?
{
"_id" : 26,
"name" : "mongohost5:27032",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 106966,
"optime" : Timestamp(1379627877000, 77),
"optimeDate" : ISODate("2013-09-19T21:57:57Z"),
"maintenanceMode" : -7,
"self" : true
}
O modo de manutenção é usado ao executar determinados comandos, geralmente o comando compact . O que você tem aqui é o bug mencionado em SERVER-9338, pelo qual suponho que você executou o comando compact em seus nós várias vezes. Existem algumas circunstâncias, especialmente quando executado em um primário, quando geralmente causa uma mudança de estado (ou seja, não é primário quando o compacto termina), que faz
maintenanceMode
com que seja decrementado erroneamente.No momento de escrever esta resposta, isso foi corrigido no ramo de desenvolvimento e foi marcado para backport, embora (ainda) não tenha sido direcionado para um lançamento nas versões anteriores. Até que a correção seja lançada, deve ser seguro ignorar o valor, mas farei alguns testes para confirmar e relatar.