KeeperErrorCode = Не реализовано с документированными версиями - PullRequest
0 голосов
/ 08 мая 2020

Я нахожусь в процессе обновления множества зависимостей, чтобы избавиться от любых известных уязвимостей. Одной из них была старая версия zookeeper в качестве временной зависимости.

Итак, используя gradle, я заменил версию последней версией zookeeper

substitute module('org.apache.zookeeper:zookeeper') with module('org.apache.zookeeper:zookeeper:3.6.1')

Однако, конечно, это было не так просто, и я получил эту ошибку при запуске

2020-05-08 12:03:53,509 [ERROR] (main) org.apache.curator.x.discovery.details.ServiceDiscoveryImpl    - Could not register instances - will try again later
org.apache.zookeeper.KeeperException$UnimplementedException: KeeperErrorCode = Unimplemented for /applications/...

Из того, что я могу сказать, это потому, что куратор (также временная зависимость) несовместим с этой версией zookeeper.

Посмотрев здесь http://curator.apache.org/zk-compatibility.html Я так понимаю, что куратор несовместим с zk 3.6.x

, поэтому я остановился на этом, который, как я предполагал, будет работать

substitute module('org.apache.zookeeper:zookeeper') with module('org.apache.zookeeper:zookeeper:3.5.7')
substitute module('org.apache.curator:curator-recipes') with module('org.apache.curator:curator-recipes:4.3.0')
substitute module('org.apache.curator:curator-x-discovery') with module('org.apache.curator:curator-x-discovery:4.3.0')

Но это не так. Я получаю тот же UnimplementedException, что и раньше, хотя они должны быть совместимы?

Значит, я упускаю что-то очевидное, почему это не работает?

Ради этого я ' Запустите это как для zookeeper, так и для cura

./gradlew -q dependencyInsight -p ./ --dependency zookeeper

, и все версии верны (4.3.0 для всего, что связано с cura, и 3.5.7 для zk)

ОБНОВЛЕНИЕ:

Итак, я не уверен, что это просто погоня за дымом или нет, но я обнаружил некоторые ошибки в отношении dropwizard. Я работал с этой зависимостью

io.dropwizard:dropwizard-core:2.0.9

, которая будет дайте ранее упомянутое исключение UnimplementedException. однако я увидел, что куратор также реализовал dropwizard, но в другой версии: https://github.com/apache/curator/blob/apache-curator-4.3.0/pom.xml#L88 Поэтому я понизил версию dropwizard до 1.3.7, что дало мне несколько других ошибок:

2020-05-11 12:46:39,776 [WARN ] (main) org.eclipse.jetty.server.handler.ContextHandler.ROOT    - unavailable
java.lang.ArrayStoreException: org.glassfish.jersey.internal.ServiceFinderBinder

и после расследования похоже, что dropwizard использует старую версию jersey, поэтому я обновил эту

substitute module('org.glassfish.jersey.ext:jersey-metainf-services') with module('org.glassfish.jersey.ext:jersey-metainf-services:2.30')
substitute module('org.glassfish.jersey.ext:jersey-bean-validation') with module('org.glassfish.jersey.ext:jersey-bean-validation:2.30')

, и теперь я вернулся к исходной проблеме UnimplementedException. Так что не уверен, было ли что-то из этого актуальным или нет.

Я действительно не чувствую, что исключение совпадает с этим, но может ли проблема быть в моей версии майки? https://github.com/apache/curator/blob/apache-curator-4.3.0/pom.xml#L72 Я использую трикотаж 2.30

...