Temos um cluster Cassandra com três nós instalados no RedHat. No passado, o cluster podia ser parado e iniciado sem problemas. Após reinicializar o cluster, o Cassandra não inicia mais. Ocorre o seguinte erro
ERROR [main] 2025-02-25 11:25:58,771 CassandraDaemon.java:708 - Exception encountered during startup
java.lang.IllegalArgumentException: e9311530-b596-11e8-b635-dd45db3e561g is already bound in reverseMap to (demo,airports)
at org.apache.cassandra.utils.ConcurrentBiMap.put(ConcurrentBiMap.java:97) ~[apache-cassandra-3.11.2.jar:3.11.2]
Como esse problema pode ser resolvido?
Há uma discussão mais antiga em https://issues.apache.org/jira/browse/CASSANDRA-15166 , mas nenhuma solução proposta.
Você não forneceu muitas informações, mas suspeito que haja algo errado com o esquema de uma (ou mais) das tabelas. A mensagem de erro completa MAIS o rastreamento de pilha completo confirmariam minha suspeita.
Em todo caso, o que a mensagem me diz é que pelo menos uma das tabelas tem uma entrada de esquema duplicada. O erro está dizendo que o ID da tabela já está associado à
demo.airports
tabela, mas encontrou outra tabela no esquema com o mesmoe9311530-b596-11e8-b635-dd45db3e561g
ID.Vale ressaltar que esse ID de tabela é um UUID de tempo que tem um registro de data e hora incorporado indicando que a tabela foi criada em 11 de setembro de 2018, às 07:47:19 GMT.
Algo aconteceu que causou entradas duplicadas no esquema. Por exemplo, se você tentou restaurar tabelas nas
schema_*/
pastas, algo pode ter dado errado para corromper o esquema. Para registro, estou apenas pensando alto e não uma acusação. 🙂Em qualquer caso, uma possível solução alternativa é recriar o esquema em um nó e, em seguida, copiar manualmente as SSTables para as novas pastas para recuperar os dados como se você os estivesse restaurando de snapshots, como documentei neste post . Abraços!