gaozhangmin opened a new pull request #11947:
URL: https://github.com/apache/pulsar/pull/11947
### Motivation
NPE when `ZkBookieRackAffinityMapping`
```
17:24:03.724 [main-SendThread(bigdata-pulsar-bookie004.ys:2181)] INFO
org.apache.zookeeper.ClientCnxn - Session establishment complete on server
bigdata-pulsar-bookie004.ys/10.89.146.53:2181, session id = 0x57ba9d6a8d800a8,
negotiated timeout = 30000
17:24:03.725 [main-EventThread] INFO
org.apache.bookkeeper.zookeeper.ZooKeeperWatcherBase - ZooKeeper client is
connected now.
17:24:03.792 [main] ERROR
org.apache.pulsar.zookeeper.ZkBookieRackAffinityMapping - Error creating
zookeeper client
java.lang.IllegalArgumentException: Path must not end with / character
at
org.apache.zookeeper.common.PathUtils.validatePath(PathUtils.java:55)
~[org.apache.zookeeper-zookeeper-3.6.3.jar:3.6.3]
at
org.apache.zookeeper.client.ConnectStringParser.<init>(ConnectStringParser.java:61)
~[org.apache.zookeeper-zookeeper-3.6.3.jar:3.6.3]
at
org.apache.zookeeper.ZooKeeper.createDefaultHostProvider(ZooKeeper.java:1515)
~[org.apache.zookeeper-zookeeper-3.6.3.jar:3.6.3]
at org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:1108)
~[org.apache.zookeeper-zookeeper-3.6.3.jar:3.6.3]
at
org.apache.bookkeeper.zookeeper.ZooKeeperClient.<init>(ZooKeeperClient.java:286)
~[org.apache.bookkeeper-bookkeeper-server-4.15.0-SNAPSHOT.jar:4.15.0-SNAPSHOT]
at
org.apache.bookkeeper.zookeeper.ZooKeeperClient$Builder.build(ZooKeeperClient.java:247)
~[org.apache.bookkeeper-bookkeeper-server-4.15.0-SNAPSHOT.jar:4.15.0-SNAPSHOT]
at
org.apache.pulsar.zookeeper.ZkBookieRackAffinityMapping.getAndSetZkCache(ZkBookieRackAffinityMapping.java:138)
[org.apache.pulsar-pulsar-zookeeper-utils-2.8.0.jar:2.8.0]
at
org.apache.pulsar.zookeeper.ZkBookieRackAffinityMapping.setConf(ZkBookieRackAffinityMapping.java:75)
[org.apache.pulsar-pulsar-zookeeper-utils-2.8.0.jar:2.8.0]
at
org.apache.bookkeeper.client.RackawareEnsemblePlacementPolicyImpl.initialize(RackawareEnsemblePlacementPolicyImpl.java:264)
[org.apache.bookkeeper-bookkeeper-server-4.15.0-SNAPSHOT.jar:4.15.0-SNAPSHOT]
at
org.apache.bookkeeper.client.RackawareEnsemblePlacementPolicyImpl.initialize(RackawareEnsemblePlacementPolicyImpl.java:80)
[org.apache.bookkeeper-bookkeeper-server-4.15.0-SNAPSHOT.jar:4.15.0-SNAPSHOT]
at
org.apache.bookkeeper.client.BookKeeper.initializeEnsemblePlacementPolicy(BookKeeper.java:582)
[org.apache.bookkeeper-bookkeeper-server-4.15.0-SNAPSHOT.jar:4.15.0-SNAPSHOT]
at
org.apache.bookkeeper.client.BookKeeper.<init>(BookKeeper.java:506)
[org.apache.bookkeeper-bookkeeper-server-4.15.0-SNAPSHOT.jar:4.15.0-SNAPSHOT]
at
org.apache.bookkeeper.client.BookKeeper$Builder.build(BookKeeper.java:307)
[org.apache.bookkeeper-bookkeeper-server-4.15.0-SNAPSHOT.jar:4.15.0-SNAPSHOT]
at
org.apache.bookkeeper.replication.Auditor.createBookKeeperClient(Auditor.java:270)
[org.apache.bookkeeper-bookkeeper-server-4.15.0-SNAPSHOT.jar:4.15.0-SNAPSHOT]
at
org.apache.bookkeeper.replication.AutoRecoveryMain.<init>(AutoRecoveryMain.java:92)
[org.apache.bookkeeper-bookkeeper-server-4.15.0-SNAPSHOT.jar:4.15.0-SNAPSHOT]
at
org.apache.bookkeeper.server.service.AutoRecoveryService.<init>(AutoRecoveryService.java:41)
[org.apache.bookkeeper-bookkeeper-server-4.15.0-SNAPSHOT.jar:4.15.0-SNAPSHOT]
at
org.apache.bookkeeper.server.Main.buildBookieServer(Main.java:320)
[org.apache.bookkeeper-bookkeeper-server-4.15.0-SNAPSHOT.jar:4.15.0-SNAPSHOT]
at org.apache.bookkeeper.server.Main.doMain(Main.java:226)
[org.apache.bookkeeper-bookkeeper-server-4.15.0-SNAPSHOT.jar:4.15.0-SNAPSHOT]
at org.apache.bookkeeper.server.Main.main(Main.java:208)
[org.apache.bookkeeper-bookkeeper-server-4.15.0-SNAPSHOT.jar:4.15.0-SNAPSHOT]
```
*Explain here the context, and why you're making that change. What is the
problem you're trying to solve.*
### Modifications
1、change some deprecated method
2、add a judgment.
### Does this pull request potentially affect one of the following parts:
*If `yes` was chosen, please highlight the changes*
- Dependencies (does it add or upgrade a dependency): (yes / no) no
- The public API: (yes / no) no
- The schema: (yes / no / don't know) no
- The default values of configurations: (yes / no) no
- The wire protocol: (yes / no)no
- The rest endpoints: (yes / no)no
- The admin cli options: (yes / no)no
- Anything that affects deployment: (yes / no / don't know)no
### Documentation
no need doc.
--
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.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]