yebai1105 opened a new issue, #113:
URL: https://github.com/apache/pulsar-client-python/issues/113

   **Describe the bug**
   If you fail to get topic partition metadata through service_url, it will not 
retry and try to connect to other ip, and will directly exit abnormally after 
the connection fails
   pulsar-client=2.9.4
   
   **To Reproduce**
   1、Test Conditions
   127.0.0.1:6650 The corresponding service is closed
   127.0.0.2:6650 service is normal
   2、Test  code
   ```
   import pulsar
   client = pulsar.Client(
       authentication=pulsar.AuthenticationToken(
               "xxxxxxxxxxxx"),
       service_url="pulsar://127.0.0.1:6650,127.0.0.2:6650",
       #operation_timeout_seconds=120
   )
   producer = client.create_producer(
       topic='persistent://qlm-test/qlm-ns/python-test3',    
       send_timeout_millis=120000,
       block_if_queue_full=True,
       batching_enabled=True,
       batching_max_publish_delay_ms=10,
       batching_max_messages=100,
       batching_max_allowed_size_in_bytes=1024 * 1024,
       max_pending_messages=1000)
   
   while(True):
       producer.send(('Hello-%d').encode('utf-8'))
   producer.close()
   client.close()
   ```
   
   
   **error log**
   ```
   2023-04-25 14:16:51.866 INFO  [139745917667072] ExecutorService:41 | Run 
io_service in a single thread
   2023-04-25 14:16:51.866 INFO  [139746086545152] ClientConnection:189 | 
[<none> -> pulsar://127.0.0.1:6650,127.0.0.2:6650] Create ClientConnection, 
timeout=10000
   2023-04-25 14:16:51.866 INFO  [139746086545152] ConnectionPool:96 | Created 
connection for pulsar://127.0.0.1:6650,127.0.0.2:6650
   2023-04-25 14:16:51.867 WARN  [139745917667072] ClientConnection:436 | 
[<none> -> pulsar://127.0.0.1:6650,127.0.0.2:6650] Failed to establish 
connection: Connection refused
   2023-04-25 14:16:51.867 INFO  [139745917667072] ClientConnection:1563 | 
[<none> -> pulsar://127.0.0.1:6650,127.0.0.2:6650] Connection closed
   2023-04-25 14:16:51.867 ERROR [139745917667072] ClientImpl:190 | Error 
Checking/Getting Partition Metadata while creating producer on 
persistent://qlm-test/qlm-ns/python-test3 -- ConnectError
   2023-04-25 14:16:51.867 INFO  [139745917667072] ClientConnection:263 | 
[<none> -> pulsar://127.0.0.1:6650,127.0.0.2:6650] Destroyed connection
   Traceback (most recent call last):
     File "pulsar-test.py", line 8, in <module>
       producer = client.create_producer(
     File "/usr/local/python3/lib/python3.8/site-packages/pulsar/__init__.py", 
line 603, in create_producer
       p._producer = self._client.create_producer(topic, conf)
   _pulsar.ConnectError: Pulsar error: ConnectError
   2023-04-25 14:16:51.871 INFO  [139745917667072] ExecutorService:47 | Event 
loop of ExecutorService exits successfully
   ```
   **Expected behavior**
   Within the timeout period, if the connection fails to be obtained, a retry 
is initiated
   Such as the processing method of java client:
   ```
   2023-04-25 14:18:45.078[pulsar-external-listener-3-1] WARN  
org.apache.pulsar.client.impl.PulsarClientImpl - [topic: 
persistent://qlm-test/qlm-ns/python-test3] Could not get connection while 
getPartitionedTopicMetadata -- Will try again in 6345 ms
   2023-04-25 14:18:45.093[pulsar-client-io-1-1] INFO  
org.apache.pulsar.client.impl.ConnectionPool - [[id: 0xedb4eab7, 
L:/10.13.209.102:58831 - R:/10.101.129.65:6650]] Connected to server
   ```
   


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