rocketmq-clients icon indicating copy to clipboard operation
rocketmq-clients copied to clipboard

[Bug] java client create produce or consumer error: "Message type not specified " when rocketmq server is cluster mode

Open Yelijah opened this issue 1 year ago • 0 comments

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 image

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: image

Steps to Reproduce

  1. prepare 2m-2s rocketmq cluster with controller
  2. create a topic with any messageType
  3. 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

Yelijah avatar Aug 12 '24 08:08 Yelijah