-
Notifications
You must be signed in to change notification settings - Fork 54
Description
Describe the bug
I deployed a Pulsar cluster (Pulsar version 4.0.4) using the helm chart pulsar-4.0.1 in a K8s environment, and added the following configurations in the configuration file.
messagingProtocols=mqtt
mqttListeners=mqtt://0.0.0.0:1883
mqttProxyEnabled=true
mqttProxyPort=5682
protocolHandlerDirectory=/tmp/protocols
advertisedAddress=
he pulsar-protocol-handler-mqtt-4.0.6.5.nar file has been copied into the container and is located in the specified directory. However, the startup failed with an error that appears to be a NoClassDefFoundError.
2025-09-16T05:48:32,149+0000 [main-EventThread] INFO org.apache.bookkeeper.zookeeper.ZooKeeperWatcherBase - ZooKeeper client is connected now.
2025-09-16T05:48:32,312+0000 [main] INFO org.apache.pulsar.broker.protocol.ProtocolHandlerUtils - Searching for protocol handlers in /tmp/protocols
2025-09-16T05:48:32,314+0000 [main] INFO org.apache.pulsar.common.nar.NarUnpacker - Created directory /tmp/pulsar-nar/pulsar-protocol-handler-mqtt-4.0.6.5.nar-unpacked
2025-09-16T05:48:32,322+0000 [main] INFO org.apache.pulsar.common.nar.NarUnpacker - Extracting /tmp/protocols/pulsar-protocol-handler-mqtt-4.0.6.5.nar to /tmp/pulsar-nar/pulsar-protocol-handler-mqtt-4.0.6.5.nar-unpacked/nQ63wb1tPstKeJWR8INbKw.tmp
2025-09-16T05:48:32,336+0000 [main] WARN org.apache.pulsar.common.nar.NarClassLoader - /tmp/pulsar-nar/pulsar-protocol-handler-mqtt-4.0.6.5.nar-unpacked/nQ63wb1tPstKeJWR8INbKw does not contain META-INF/bundled-dependencies!
2025-09-16T05:48:32,342+0000 [main] INFO org.apache.pulsar.broker.protocol.ProtocolHandlerUtils - Found protocol handler from /tmp/protocols/pulsar-protocol-handler-mqtt-4.0.6.5.nar : ProtocolHandlerDefinition(name=mqtt, description=MQTT Protocol Handler, handlerClass=io.streamnative.pulsar.handlers.mqtt.broker.MQTTProtocolHandler)
2025-09-16T05:48:32,346+0000 [main] WARN org.apache.pulsar.common.nar.NarClassLoader - /tmp/pulsar-nar/pulsar-protocol-handler-mqtt-4.0.6.5.nar-unpacked/nQ63wb1tPstKeJWR8INbKw does not contain META-INF/bundled-dependencies!
2025-09-16T05:48:32,350+0000 [main] INFO org.apache.pulsar.broker.protocol.ProtocolHandlers - Successfully loaded protocol handler for protocol mqtt
2025-09-16T05:48:32,355+0000 [main] ERROR org.apache.pulsar.PulsarBrokerStarter - Failed to start pulsar service.
java.lang.NoClassDefFoundError: io/streamnative/pulsar/handlers/mqtt/common/MQTTCommonConfiguration
at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
at java.base/java.lang.ClassLoader.defineClass(Unknown Source) ~[?:?]
at java.base/java.security.SecureClassLoader.defineClass(Unknown Source) ~[?:?]
at java.base/java.net.URLClassLoader.defineClass(Unknown Source) ~[?:?]
at java.base/java.net.URLClassLoader$1.run(Unknown Source) ~[?:?]
at java.base/java.net.URLClassLoader$1.run(Unknown Source) ~[?:?]
at java.base/java.security.AccessController.doPrivileged(Unknown Source) ~[?:?]
at java.base/java.net.URLClassLoader.findClass(Unknown Source) ~[?:?]
at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
at org.apache.pulsar.common.nar.NarClassLoader.loadClass(NarClassLoader.java:303) ~[org.apache.pulsar-pulsar-common-4.0.4.jar:4.0.4]
at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
at io.streamnative.pulsar.handlers.mqtt.broker.MQTTProtocolHandler.initialize(MQTTProtocolHandler.java:80) ~[?:?]
at org.apache.pulsar.broker.protocol.ProtocolHandlerWithClassLoader.initialize(ProtocolHandlerWithClassLoader.java:71) ~[org.apache.pulsar-pulsar-broker-4.0.4.jar:4.0.4]
at org.apache.pulsar.broker.protocol.ProtocolHandlers.initialize(ProtocolHandlers.java:116) ~[org.apache.pulsar-pulsar-broker-4.0.4.jar:4.0.4]
at org.apache.pulsar.broker.PulsarService.start(PulsarService.java:908) ~[org.apache.pulsar-pulsar-broker-4.0.4.jar:4.0.4]
at org.apache.pulsar.PulsarBrokerStarter$BrokerStarter.call(PulsarBrokerStarter.java:275) ~[org.apache.pulsar-pulsar-broker-4.0.4.jar:4.0.4]
at org.apache.pulsar.PulsarBrokerStarter$BrokerStarter.call(PulsarBrokerStarter.java:130) ~[org.apache.pulsar-pulsar-broker-4.0.4.jar:4.0.4]
at picocli.CommandLine.executeUserObject(CommandLine.java:2041) ~[info.picocli-picocli-4.7.5.jar:4.7.5]
at picocli.CommandLine.access$1500(CommandLine.java:148) ~[info.picocli-picocli-4.7.5.jar:4.7.5]
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461) ~[info.picocli-picocli-4.7.5.jar:4.7.5]
at picocli.CommandLine$RunLast.handle(CommandLine.java:2453) ~[info.picocli-picocli-4.7.5.jar:4.7.5]
at picocli.CommandLine$RunLast.handle(CommandLine.java:2415) ~[info.picocli-picocli-4.7.5.jar:4.7.5]
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273) ~[info.picocli-picocli-4.7.5.jar:4.7.5]
at picocli.CommandLine$RunLast.execute(CommandLine.java:2417) ~[info.picocli-picocli-4.7.5.jar:4.7.5]
at picocli.CommandLine.execute(CommandLine.java:2170) ~[info.picocli-picocli-4.7.5.jar:4.7.5]
at org.apache.pulsar.PulsarBrokerStarter$BrokerStarter.start(PulsarBrokerStarter.java:151) ~[org.apache.pulsar-pulsar-broker-4.0.4.jar:4.0.4]
at org.apache.pulsar.PulsarBrokerStarter.main(PulsarBrokerStarter.java:366) [org.apache.pulsar-pulsar-broker-4.0.4.jar:4.0.4]
Caused by: java.lang.ClassNotFoundException: io.streamnative.pulsar.handlers.mqtt.common.MQTTCommonConfiguration
at java.base/java.net.URLClassLoader.findClass(Unknown Source) ~[?:?]
at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
at org.apache.pulsar.common.nar.NarClassLoader.loadClass(NarClassLoader.java:303) ~[org.apache.pulsar-pulsar-common-4.0.4.jar:4.0.4]
at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
... 27 more
2025-09-16T05:48:32,364+0000 [main] WARN org.apache.pulsar.common.util.ShutdownUtil - Triggering immediate shutdown of current process with status 1
java.lang.Exception: Stacktrace for immediate shutdown
at org.apache.pulsar.common.util.ShutdownUtil.triggerImmediateForcefulShutdown(ShutdownUtil.java:55) [org.apache.pulsar-pulsar-common-4.0.4.jar:4.0.4]
at org.apache.pulsar.common.util.ShutdownUtil.triggerImmediateForcefulShutdown(ShutdownUtil.java:50) [org.apache.pulsar-pulsar-common-4.0.4.jar:4.0.4]
at org.apache.pulsar.common.util.ShutdownUtil.triggerImmediateForcefulShutdown(ShutdownUtil.java:82) [org.apache.pulsar-pulsar-common-4.0.4.jar:4.0.4]
at org.apache.pulsar.PulsarBrokerStarter.main(PulsarBrokerStarter.java:372) [org.apache.pulsar-pulsar-broker-4.0.4.jar:4.0.4]
The logs indicate the protocol handler was loaded, but the broker fails to start due to an error.