You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pulsar.apache.org by gi...@git.apache.org on 2017/07/07 00:44:36 UTC

[GitHub] jai1 opened a new issue #551: Problems in lookup flow in C++ Client

jai1 opened a new issue #551: Problems in lookup flow in C++ Client
URL: https://github.com/apache/incubator-pulsar/issues/551
 
 
   # Issues:-
   
   1. **Client Stops Doing Lookups**
   If the ClientConnection object is not destroyed within first backoff time (0.1 seconds) then the consumer/producer will no longer attempt to reconnect to the broker - which may lead to Timeouts and queue full in case of producer and backlog in case of consumer.
   
   2. **Locking inconsistencies in Lookup Logic**
   In the following methods, we check/change the clientConnection_ weakPtr outside a lock
   - ProducerImpl.disconnectProducer()
   - ConsumerImpl.disconnectConsumer()
   - HandlerBase.grabCnx()
   - ProducerImpl.handlCreateProducer()
   - ConsumerImpl.handlCreateConsumer() 
   
   3. **Duplicate lookups happen on the client side**
   (A) During a graceful shutdown, the broker sends CLOSE_PRODUCER / CLOSE_CONSUMER command to the client, which triggers the reconnection logic. 
   (B) After the connection is closed the ClientConnection.close() also triggers the reconnection logic for all registered consumers/producers. 
   
   If (A) doesn't complete before (B) then lookups and CREATE_PRODUCER / CREATE_CONSUMER commands are sent twice - this is not a functional issue because the broker returns success for the duplicate command but this leads a twice the required number of lookups.
   
   4. **Duplicate CLOSE_PRODUCER and CLOSE_CONSUMER triggered by the broker**
   Not sure why this is happening or it's side effects.
   
   ** Note: ** Will attach the relevant log files with the Pull Request for the fixes.
   
   
   
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services