Can not recognize ipv6 ip when init zk
BUG REPORT
Describe the bug when I use pulsar script and run initialize-cluster-metadata, logs show an error that ipv6 ip is Invalid hostname.
logs (I use x to replace some character):
2022-04-21T17:55:33,814+0800 [main-EventThread] INFO org.apache.zookeeper.ClientCnxn - EventThread shut down for session: 0x300197585c701d9
Exception in thread "main" java.lang.IllegalArgumentException: Invalid hostname : [2409:xxxx:xxxx::1:xxxx:0919]:2181
at org.apache.bookkeeper.common.net.ServiceURI.validateHostName(ServiceURI.java:220)
at org.apache.bookkeeper.common.net.ServiceURI.lambda$create$0(ServiceURI.java:201)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
at org.apache.bookkeeper.common.net.ServiceURI.create(ServiceURI.java:202)
at org.apache.bookkeeper.common.net.ServiceURI.create(ServiceURI.java:151)
at org.apache.pulsar.PulsarClusterMetadataSetup.main(PulsarClusterMetadataSetup.java:225)
To Reproduce
Pulsar Version:2.9.2 (it use bookkeeper 4.14.4)
Zk can be connected.
Use Pulsar script bin/pulsar, then run command:
bin/pulsar initialize-cluster-metadata \
--cluster pulsar2921 \
--zookeeper [2409:xxxx:xxxx::1:xxxx:0919]:2181/pulsar/pulsar2921 \
--configuration-store [2409:xxxx:xxxx::1:xxxx:0919]:2181/pulsar/pulsar2921 \
--web-service-url http://brokerpulsar:8080/ \
--broker-service-url pulsar://brokerpulsar:6650/
Expected behavior Solve this problem.
FYI:#1513
bin/pulsar initialize-cluster-metadata looks like the command to initialize cluster metadata for Pulsar cluster.
As in bin/pulsar script ipv6 support is explicitly disabled: https://github.com/apache/pulsar/blob/3f109d6cb7f128a5f8331e33477fd69c3c26d531/bin/pulsar#L275
But we can override it by using env var export PULSAR_EXTRA_OPTS=-Djava.net.preferIPv4Stack=false
Also if you were having trouble with bk metadata init we can useexport BOOKIE_EXTRA_OPTS=-Djava.net.preferIPv4Stack=false