dev-techmoe opened a new issue, #7304: URL: https://github.com/apache/rocketmq/issues/7304
### Before Creating the Bug Report - [X] I found a bug, not just asking a question, which should be created in [GitHub Discussions](https://github.com/apache/rocketmq/discussions). - [X] I have searched the [GitHub Issues](https://github.com/apache/rocketmq/issues) and [GitHub Discussions](https://github.com/apache/rocketmq/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. ### Runtime platform environment Win10 22H2 ### RocketMQ version - Server version: 5.1.3 - the version of `rocketmq-spring-boot-starter`: 2.2.3 - `rocketmq-client`: 5.0.0 ### JDK Version openjdk 1.8.0_352 (Zulu 8.66.0.15-CA-win64) ### Describe the Bug The `poll` method can't return a batch of data after a while, only one item. ### Steps to Reproduce producer ```java Thread t = new Thread(() -> { int i = 1; while (true) { Message<Integer> message = MessageBuilder.withPayload(i).build(); log.info("send: {}", i); rocketMQTemplate.syncSend("test-topic3", i); i++; try { Thread.sleep(10); } catch (InterruptedException e) { throw new RuntimeException(e); } } }); t.start(); ``` consumer ```java Thread t = new Thread(() -> { DefaultLitePullConsumer litePullConsumer; litePullConsumer = new DefaultLitePullConsumer("test-consumer-group-poll-2"); litePullConsumer.setNamesrvAddr(nameServers); try { litePullConsumer.subscribe("test-topic3", ""); } catch (MQClientException e) { throw new RuntimeException(e); } litePullConsumer.setPullBatchSize(32); try { litePullConsumer.start(); } catch (MQClientException e) { throw new RuntimeException(e); } while (true) { List<MessageExt> messageExtList = litePullConsumer.poll(10000); log.info("messageCount: {}", messageExtList.size()); } }); t.start(); ``` ### What Did You Expect to See? Each `poll` call should return 32 messages in 10s. ### What Did You See Instead? Only one message was received after a while. ``` 2023-09-06 11:19:16.649 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 32 2023-09-06 11:19:16.651 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 32 2023-09-06 11:19:16.651 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 32 2023-09-06 11:19:16.652 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 32 2023-09-06 11:19:16.652 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 32 2023-09-06 11:19:16.653 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 32 2023-09-06 11:19:16.653 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 32 2023-09-06 11:19:16.653 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 32 2023-09-06 11:19:16.655 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 32 2023-09-06 11:19:16.655 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 32 2023-09-06 11:19:16.655 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 32 2023-09-06 11:19:16.656 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 32 2023-09-06 11:19:16.657 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 32 2023-09-06 11:19:16.658 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 32 2023-09-06 11:19:16.658 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 32 2023-09-06 11:19:16.658 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 32 2023-09-06 11:19:16.660 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 32 2023-09-06 11:19:16.660 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 32 2023-09-06 11:19:16.660 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 32 2023-09-06 11:19:16.660 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 32 2023-09-06 11:19:16.662 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 15 2023-09-06 11:19:16.662 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 17 2023-09-06 11:19:16.662 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 16 2023-09-06 11:19:16.662 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 17 2023-09-06 11:19:16.665 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 1 2023-09-06 11:19:16.679 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 1 2023-09-06 11:19:16.691 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 1 2023-09-06 11:19:16.704 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 1 2023-09-06 11:19:16.716 INFO 74704 --- [ Thread-5] c.e.demo.rkmq.RocketMqBatchListener : messageCount: 1 ... ``` ### Additional Context After reading the source code of the java client I found this implementation https://github.com/apache/rocketmq/blob/31d10385d1616445478104ce9ef463a8c4852ba2/client/src/main/java/org/apache/rocketmq/client/impl/consumer/DefaultLitePullConsumerImpl.java#L611 Can someone explain to me what the meaning of this is? Why I need call `consumeRequestCache.poll` after processQueue has been dropped? And this expression still got false in my code. I can't figure it out. -- 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]
