rocketmq-clients
rocketmq-clients copied to clipboard
[Bug] java client create produce or consumer error: "Message type not specified " when rocketmq server is cluster mode
Before Creating the Bug Report
-
[X] I found a bug, not just asking a question, which should be created in GitHub Discussions.
-
[X] I have searched the GitHub Issues and GitHub Discussions of this repository and believe that this is not a duplicate.
-
[X] I have confirmed that this bug belongs to the current repository, not other repositories of RocketMQ.
Programming Language of the Client
Java
Runtime Platform Environment
client: macos intel cpu server: docker
RocketMQ Version of the Client/Server
client: 5.1.4
server: 5.1.4 2m-2s broker with controller mode
Run or Compiler Version
No response
Describe the Bug
sometimes, java client cann't create a producer or consumer with error like:
2024/08/12 15:35:59 ProducerImpl-0 STARTING INFO [org.apache.rocketmq.client.java.impl.ClientImpl] Begin to fetch topic(s) route data from remote during client startup, clientId=ElijahMBP19.local@52784@0@evtkmbsvs, topics=[fine_mq_normalQueue]
2024/08/12 15:36:00 rocketmq-queue-async-rpc-3-worker-3 ERROR [org.apache.rocketmq.client.java.impl.ClientImpl] Failed to fetch topic route, clientId=ElijahMBP19.local@52784@0@evtkmbsvs, topic=fine_mq_normalQueue
java.lang.IllegalArgumentException: Message type is not specified
at org.apache.rocketmq.client.java.message.MessageType.fromProtobuf(MessageType.java:38) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.client.java.route.MessageQueueImpl.<init>(MessageQueueImpl.java:43) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.client.java.route.TopicRouteData.<init>(TopicRouteData.java:48) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.client.java.impl.ClientImpl.lambda$fetchTopicRoute0$6(ClientImpl.java:625) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:221) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:208) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:122) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:783) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.io.grpc.stub.ClientCalls$GrpcFuture.set(ClientCalls.java:569) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose(ClientCalls.java:542) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:563) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:744) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133) ~[fine-essential-2.0.0.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_265]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_265]
at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_265]
2024/08/12 15:36:00 ProducerImpl-0 STARTING ERROR [org.apache.rocketmq.client.java.impl.producer.ProducerImpl] Failed to start the rocketmq producer, try to shutdown it, clientId=ElijahMBP19.local@52784@0@evtkmbsvs
java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Message type is not specified
at org.apache.rocketmq.shaded.com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:588) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:567) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.com.google.common.util.concurrent.FluentFuture$TrustedFuture.get(FluentFuture.java:91) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.client.java.impl.ClientImpl.startUp(ClientImpl.java:192) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.client.java.impl.producer.ProducerImpl.startUp(ProducerImpl.java:115) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.com.google.common.util.concurrent.AbstractIdleService$DelegateService$1.run(AbstractIdleService.java:62) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.com.google.common.util.concurrent.Callables.lambda$threadRenaming$3(Callables.java:103) ~[fine-essential-2.0.0.jar:?]
at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_265]
Caused by: java.lang.IllegalArgumentException: Message type is not specified
at org.apache.rocketmq.client.java.message.MessageType.fromProtobuf(MessageType.java:38) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.client.java.route.MessageQueueImpl.<init>(MessageQueueImpl.java:43) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.client.java.route.TopicRouteData.<init>(TopicRouteData.java:48) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.client.java.impl.ClientImpl.lambda$fetchTopicRoute0$6(ClientImpl.java:625) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:221) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:208) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:122) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1270) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:783) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.io.grpc.stub.ClientCalls$GrpcFuture.set(ClientCalls.java:569) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose(ClientCalls.java:542) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:563) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:744) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:723) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) ~[fine-essential-2.0.0.jar:?]
at org.apache.rocketmq.shaded.io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133) ~[fine-essential-2.0.0.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_265]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_265]
... 1 more
But the target topic 's messegeType is normal:
Steps to Reproduce
- prepare 2m-2s rocketmq cluster with controller
- create a topic with any messageType
- java client build a producer in the topic above. Sometimes then some error happens.
What Did You Expect to See?
java client create produce or consumer successfully.
What Did You See Instead?
java client create produce or consumer error.
Additional Context
No response