eolivelli opened a new pull request #8590:
URL: https://github.com/apache/pulsar/pull/8590
### Motivation
Upgrade to latest stable ZK version 3.6.2. The new minor versions brings
several advantages:
Performance improvements (eg: tuning group commit on txn log)
Prometheus based metrics (so that we can get rid of AspectJ hacky way to
instrument ZK)
New features like persistent recursive watches which would greatly simplify
the logic to handle metadata cache invalidations.
The possibility of rollback to previous version has also been validated.
### Modifications
- Update ZooKeeper to 3.6.2
- Updated Apache Curator to 5.1.0 (that supports ZK 3.6.x), Curator was
implicitly imported by BookKeeper Storage Service
### Verifying this change
- This change is already covered by existing tests, such as *(please
describe tests)*.
- Test manually a Pulsar service and Pulsar Standalone
- Test ZooKeeper metrics
### Problems
Unfortunately we cannot upgrade Curator because there is an error with
"pulsar standalone":
**Basically we have to upgrade ZooKeeper and Curator on BookKeeper before
doing this change here**
```
09:40:36.781 [main] ERROR
org.apache.bookkeeper.common.component.AbstractLifecycleComponent - Failed to
start Component: zk-storage-container-manager
java.lang.NoSuchMethodError:
'org.apache.curator.framework.listen.ListenerContainer
org.apache.curator.framework.recipes.cache.NodeCache.getListenable()'
at
org.apache.bookkeeper.stream.storage.impl.cluster.ZkClusterMetadataStore.watchClusterAssignmentData(ZkClusterMetadataStore.java:169)
~[org.apache.bookkeeper-stream-storage-service-impl-4.12.0.jar:4.12.0]
at
org.apache.bookkeeper.stream.storage.impl.sc.ZkStorageContainerManager.doStart(ZkStorageContainerManager.java:105)
~[org.apache.bookkeeper-stream-storage-service-impl-4.12.0.jar:4.12.0]
at
org.apache.bookkeeper.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:83)
[org.apache.bookkeeper-bookkeeper-common-4.12.0.jar:4.12.0]
at
org.apache.bookkeeper.stream.storage.impl.StorageContainerStoreImpl.doStart(StorageContainerStoreImpl.java:97)
[org.apache.bookkeeper-stream-storage-service-impl-4.12.0.jar:4.12.0]
at
org.apache.bookkeeper.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:83)
[org.apache.bookkeeper-bookkeeper-common-4.12.0.jar:4.12.0]
at
org.apache.bookkeeper.stream.server.service.StorageService.doStart(StorageService.java:47)
[org.apache.bookkeeper-stream-storage-server-4.12.0.jar:4.12.0]
at
org.apache.bookkeeper.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:83)
[org.apache.bookkeeper-bookkeeper-common-4.12.0.jar:4.12.0]
at
org.apache.bookkeeper.common.component.LifecycleComponentStack.lambda$start$4(LifecycleComponentStack.java:144)
[org.apache.bookkeeper-bookkeeper-common-4.12.0.jar:4.12.0]
at
com.google.common.collect.ImmutableList.forEach(ImmutableList.java:405)
[com.google.guava-guava-30.0-jre.jar:?]
at
org.apache.bookkeeper.common.component.LifecycleComponentStack.start(LifecycleComponentStack.java:144)
[org.apache.bookkeeper-bookkeeper-common-4.12.0.jar:4.12.0]
at
org.apache.bookkeeper.stream.server.StreamStorageLifecycleComponent.doStart(StreamStorageLifecycleComponent.java:51)
[org.apache.bookkeeper-stream-storage-server-4.12.0.jar:4.12.0]
at
org.apache.bookkeeper.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:83)
[org.apache.bookkeeper-bookkeeper-common-4.12.0.jar:4.12.0]
at
org.apache.pulsar.zookeeper.LocalBookkeeperEnsemble.runStreamStorage(LocalBookkeeperEnsemble.java:350)
[org.apache.pulsar-pulsar-zookeeper-utils-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
at
org.apache.pulsar.zookeeper.LocalBookkeeperEnsemble.startStandalone(LocalBookkeeperEnsemble.java:432)
[org.apache.pulsar-pulsar-zookeeper-utils-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
at org.apache.pulsar.PulsarStandalone.start(PulsarStandalone.java:258)
[org.apache.pulsar-pulsar-broker-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
at
org.apache.pulsar.PulsarStandaloneStarter.main(PulsarStandaloneStarter.java:115)
[org.apache.pulsar-pulsar-broker-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT]
09:40:36.782 [main] ERROR
org.apache.bookkeeper.common.component.AbstractLifecycleComponent - Failed to
start Component: range-service
java.lang.NoSuchMethodError:
'org.apache.curator.framework.listen.ListenerContainer
org.apache.curator.framework.recipes.cache.NodeCache.getListenable()'
at
org.apache.bookkeeper.stream.storage.impl.cluster.ZkClusterMetadataStore.watchClusterAssignmentData(ZkClusterMetadataStore.java:169)
~[org.apache.bookkeeper-stream-storage-service-impl-4.12.0.jar:4.12.0]
at
org.apache.bookkeeper.stream.storage.impl.sc.ZkStorageContainerManager.doStart(ZkStorageContainerManager.java:105)
~[org.apache.bookkeeper-stream-storage-service-impl-4.12.0.jar:4.12.0]
```
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]