kissycn opened a new issue, #1189:
URL: https://github.com/apache/rocketmq-clients/issues/1189

   ### 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-clients/discussions).
   
   - [x] I have searched the [GitHub 
Issues](https://github.com/apache/rocketmq-clients/issues) and [GitHub 
Discussions](https://github.com/apache/rocketmq-clients/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
   
   Python
   
   ### Runtime Platform Environment
   
   OS: macOS (Version unknown, inferred from KqueueSelector)
   Language: Python 3.x
   RocketMQ Server Version: 5.x
   Client Version: (Please fill in your installed version, e.g., 
rocketmq-python-client 5.0.4)
   
   ### RocketMQ Version of the Client/Server
   
   rocketmq-python-client: 5.1.0
   RocketMQSercer:5.4.0
   
   ### Run or Compiler Version
   
   _No response_
   
   ### Describe the Bug
   
   I am using the rocketmq-python-client (5.x) on macOS.
   When trying to start a PushConsumer, the program hangs indefinitely at 
producer.startup(). It never returns, nor does it throw any exception.
   However, SimpleConsumer works perfectly fine in the same environment with 
the same configuration.
   It seems like a deadlock or blocking issue related to grpcio interaction 
with asyncio event loops on macOS (KqueueSelector).
   
   
   
   ### Steps to Reproduce
   
   ```python
   import logging
   import sys
   from rocketmq import (ClientConfiguration, ConsumeResult, Credentials,
                         FilterExpression, Message, MessageListener, 
PushConsumer)
   
   logging.basicConfig(level=logging.DEBUG, stream=sys.stdout, 
format='%(asctime)s - %(levelname)s - %(message)s')
   
   class TestMessageListener(MessageListener):
   
       def consume(self, message: Message) -> ConsumeResult:
           print(f"consume message, topic:{message.topic}, message_id: 
{message.message_id}.")
           return ConsumeResult.SUCCESS
   
   
   if __name__ == '__main__':
       endpoints = "192.168.0.80:8081"
       credentials = Credentials()
   
       # if auth enable
       # credentials = Credentials("ak", "sk")
       config = ClientConfiguration(endpoints, credentials)
       # with namespace
       # config = ClientConfiguration(endpoints, credentials, "namespace")
       topic = "TestTopic1"
       consumer_group = "consumer_group_1"
       # in most case, you don't need to create too many consumers, singleton 
pattern is recommended
       # close the push consumer when you don't need it anymore
       push_consumer = PushConsumer(config, consumer_group, 
TestMessageListener(), {topic: FilterExpression()})
   
       try:
           push_consumer.startup()
           try:
               input("Please Enter to Stop the Application.\r\n")
           except Exception as e:
               print(f"{push_consumer} raise exception: {e}")
               push_consumer.shutdown()
               print(f"{push_consumer} shutdown.")
       except Exception as e:
           print(f"{push_consumer} startup raise exception: {e}")
           if push_consumer.is_running:
               push_consumer.shutdown()
           print(f"{push_consumer} shutdown.")
   ```
   
   ### What Did You Expect to See?
   
   ```
   2026-02-02 15:03:07,513 - DEBUG - Using selector: KqueueSelector
   2026-02-02 15:03:07,513 - DEBUG - [_cygrpc] Loaded running loop: 
id(loop)=4390437520
   2026-02-02 15:03:07,513 - DEBUG - Using AsyncIOEngine.POLLER as I/O engine
   2026-02-02 15:03:07,514 - DEBUG - [_cygrpc] Loaded running loop: 
id(loop)=4390437520
   2026-02-02 15:03:07,514 - DEBUG - [_cygrpc] Loaded running loop: 
id(loop)=4390437520
   2026-02-02 15:03:07,527 - DEBUG - [_cygrpc] Loaded running loop: 
id(loop)=4390437520
   2026-02-02 15:03:07,527 - DEBUG - [_cygrpc] Loaded running loop: 
id(loop)=4390437520
   2026-02-02 15:03:07,527 - DEBUG - [_cygrpc] Loaded running loop: 
id(loop)=4390437520
   ... (Hangs here) ...
   ```
   
   ### What Did You See Instead?
   
   /
   
   ### Additional Context
   
   _No response_


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