Por que o replicaset do MongoDB não está sincronizando dados externos do RBAC $ no upgrade de 3.0 para 3.2?

2

Eu estou querendo saber se alguém viu um problema atualizando de 3.0.9 para 3.2.8 com o banco de dados de usuário externo $ não sendo replicado?

Eu tenho um ambiente de conjunto de réplicas 3.0.9 existente em execução sem comunicação criptografada (sem TLS) e sem autenticação; o ambiente funciona bem. Mas quando eu atualizo usando 3.2.8 que tem TLS e RBAC (usando $ external) os membros SECONDARY no cluster não parecem ter obtido os dados do usuário $ externo.

Se eu executar uma instalação intocada do 3.2.8 com a minha configuração, ele funciona bem, ou seja, aplicativos que se conectam ao conjunto de réplica e leitura / gravação do primário ou apenas leitura do secundário podem se conectar e auth. Mas se eu tentar fazer o mesmo a partir de um cluster 3.0.9-3.2.8 atualizado, o connect, auth e read / write do primary é bom, mas eles podem se conectar mas não o auth ao secundário.

Este é um bug conhecido? Eu li todos os documentos de atualização no mongodb, mas não consigo encontrar onde alguém tentou isso.

O erro que recebo quando falha é:

test7-mongodb-rs:SECONDARY> db.getSiblingDB("$external").auth( {   mechanism: "MONGODB-X509", user:       "CN=*******,OU=******,O=**********,L=***,ST=**,C=US@$external"
Error: 11 { ok: 0.0, errmsg: "Could not find user CN=*******,OU=******,O=**********,L=***,ST=**,C=US@$external", code: 11 }

0

Alguma informação adicional que parece interessante. Se eu usar meu certificado de membro de cluster em vez do certificado de cliente, posso conectar e autenticar aos secundários. Então, quando eu executo o comando getUsers () no banco de dados $ externo, ele gera o seguinte erro:

test7-mongodb-rs:SECONDARY> 
db.getSiblingDB("$external").getUsers() 2016-08-17T16:49:56.188-0400 E QUERY Error: not master and slaveOk=false at Error (<anonymous>) at DB.getUsers (src/mongo/shell/db.js:1342:15) at (shell):1:30 at src/mongo/shell/db.js:1342

Também adicionarei que, assim que eu atingir o problema acima, se eu parar os membros do cluster e, em seguida, remover o diretório lib e reiniciar minha configuração, ele funcionará. Portanto, há algo nos dados da versão 3.0.9 que está causando o problema. Devo talvez executar um dropAllUsers () antes de criar os novos para o RBAC? Ou seja, existem dados padrão ou ocultos que são criados sem autenticação no 3.0.9 que impeçam essa replicação $ externa durante a atualização?

Atualize, vejo qual é o problema, mas não sei por que isso é um problema. O banco de dados 'admin' no primário não está sendo replicado. Se eu copiá-lo para os secundários, a autenticação lá funciona. Pergunta agora, por que não está sincronizando este DB

    
por Erick Griffin 07.09.2016 / 14:16

0 respostas