RockteMQ-AI commented on issue #1331:
URL: 
https://github.com/apache/rocketmq-clients/issues/1331#issuecomment-5370317114

   Hi @759427794, thanks for reporting this!
   
   I've analyzed this issue against the codebase and can confirm this appears 
to be a **real bug**.
   
   **Root Cause:** `__execute_receive_later` (push_consumer.py:269-271) calls 
`__execute_receive` synchronously after sleeping, forming unbounded mutual 
recursion that grows the call stack by ~1 frame/second until Python's recursion 
limit is exceeded.
   **Affected Files:** python/rocketmq/v5/consumer/push/push_consumer.py, 
python/rocketmq/v5/model/process_queue.py
   
   **Analysis:** When the process queue cache is full, `__execute_receive` 
delegates to `__execute_receive_later`, which sleeps 1 second then calls 
`__execute_receive` again directly — no scheduler, no thread dispatch. Each 
cycle adds two stack frames. After ~800–1000 seconds the default Python 
recursion limit is hit and the process crashes with `RecursionError`.
   
   I'll prepare a fix spec and work on a PR. The community is welcome to 
provide feedback on the approach before implementation.
   
   ---
   🤖 *Automated issue analysis by github-manager*


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