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]

Reply via email to