NullPointerExceptions во время исправления узла Cassandra

Мы используем java-драйвер datastax (v3.6.0) для подключения к Cassandra (v3.11). Всякий раз, когда наша инфра-команда отключает Cassandra на узле (чтобы исправить ОС, узел за узлом), наши запросы продолжают работать нормально. Тем не менее, мы видим довольно много ошибок в журналах, вызванных NullPointers в драйвере datastax:

Error parsing schema from Cassandra system tables: the schema in Cluster#getMetadata() will appear incomplete or stale

java.lang.NullPointerException: null
    at c.d.d.mapping.MappingManager$1.onTableChanged(MappingManager.java:160)
    at c.d.driver.core.Metadata.triggerOnTableChanged(Metadata.java:696)
    at c.d.driver.core.SchemaParser.updateTables(SchemaParser.java:484)
    at c.d.driver.core.SchemaParser.refresh(SchemaParser.java:130)
    at c.d.d.core.ControlConnection.refreshSchema(ControlConnection.java:408)
    at c.d.d.core.ControlConnection.refreshSchema(ControlConnection.java:354)
    at c.d.d.c.Cluster$Manager$SchemaRefreshRequestDeliveryCallback$1.runMayThrow(Cluster.java:2867)
    at c.d.d.c.ExceptionCatchingRunnable.run(ExceptionCatchingRunnable.java:32)
    at j.u.c.Executors$RunnableAdapter.call(Executors.java:511)
    at c.g.c.u.c.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:111)
    at c.g.c.u.c.InterruptibleTask.run(InterruptibleTask.java:58)
    at c.g.c.u.c.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:75)
    at j.u.c.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at j.u.c.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at i.n.u.c.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.lang.Thread.run(Thread.java:748)

Кому-нибудь это кажется знакомым? Во время поиска по этой проблеме я не смог найти многого, поэтому мне интересно, делаем ли мы что-то не так или это известная проблема...


person Pepijn de Jong    schedule 01.04.2019    source источник
comment
Вы уверены в версии? Номера строк в трассировке стека не совпадают, похоже, вы используете более раннюю версию, например. 3.5.1 (источник). Обратите внимание, что маппер поставляется как отдельный артефакт, поэтому, возможно, ваши зависимости имеют разные версии.   -  person Olivier Michallat    schedule 05.04.2019
comment
Спасибо за ответ, вы абсолютно правы! Я перепутал номер версии для этой конкретной трассировки. Однако у меня возникает та же проблема с версией, о которой я упоминал (3.6.0). Я обновил трассировку в посте.   -  person Pepijn de Jong    schedule 09.04.2019


Ответы (1)


Это ошибка в драйвере. Я создал тикет JIRA: JAVA-2223.

person Olivier Michallat    schedule 09.04.2019
comment
Спасибо! Таким образом, обходным путем будет установка пространства ключей для объекта до тех пор, пока ошибка не будет исправлена. - person Pepijn de Jong; 10.04.2019