web-dev-qa-db-fra.com

ZooKeeper continue d'obtenir EndOfStreamException, provoquant un crash

My Zookeeper contrôle plusieurs files d'attente différentes pour différents travaux, en conservant les données de travail pertinentes dans chaque nœud jusqu'à ce que l'ordinateur soit prêt à traiter. Si j'arrête le service global, de telle sorte qu'aucun travail ne puisse être démarré, ZooKeeper fonctionne très bien après un redémarrage. Cependant, certains de ces travaux semblent entraîner le blocage de ZooKeeper avec le message suivant dans le journal ZooKeeper:

WARN  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@349] - caught end of stream exception
EndOfStreamException: Unable to read additional data from client sessionid 0x15677f740ad002a, likely client has closed socket
        at org.Apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.Java:220)
        at org.Apache.zookeeper.server.NIOServerCnxnFactory.run(NIOServerCnxnFactory.Java:208)
        at Java.lang.Thread.run(Thread.Java:745)
INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1001] - Closed socket connection for client /127.0.0.1:46998 which had sessionid 0x15677f740ad002a

Ma connaissance de ZooKeeper est très limitée, car je succède au gars qui l'a configuré à l'origine.

J'ai essayé de supprimer de nombreux nœuds avec rmr [path] dans le zookeeper Shell, qui semblait avoir un certain effet (supprimé 50k + nœuds qui étaient restés/inutiles), mais il a continué à planter quotidiennement, et hier soir, je n'ai pas pu le faire fonctionner pendant plus d'un couple de minutes avant que la même erreur/panne ne se produise.

Comment puis-je savoir ce qui cause cela?

Je suis à peu près sûr que c'est un problème général avec les données qui sont reçues, ou les données/nœuds stockés. Le disque n'est plein qu'à 92%. J'ai également trouvé ce message: Zookeeper continue d'obtenir le WARN: "exception de fin de flux interceptée" , mais la solution n'a pas beaucoup de sens pour moi. De plus, je suis à peu près sûr qu'aucun des messages conservés dans mes znodes ne dépasse 1 Mo, mais je ne sais pas comment le confirmer.

Existe-t-il un moyen de modifier le journal ZooKeeper afin de pouvoir imprimer des informations supplémentaires, telles que le contenu/nom du znode sur lequel il fonctionne avant qu'il ne se bloque?

19
Nixxon

J'ai pu résoudre le problème en supprimant tous les instantanés zookeeper et les fichiers journaux du serveur exécutant ZooKeeper. Je ne sais pas pourquoi cela a fait une différence, mais cela fonctionne bien depuis 22 heures.

5
Nixxon