fmiguelez opened a new issue #8922:
URL: https://github.com/apache/pulsar/issues/8922


   **Describe the bug**
   Connection layer of Java client keeps on trying (and failing to) reconnect 
to broker when access token used to authenticate expires. 
   
   It seems that connection pool handles connections transparently in the 
background even if all consumers/readers are closed. 
   
   To reproduce it create a consumer with a Pulsar with security (JWT auth) 
enabled. Use a short-lived token (a few minutes). Once token has expired now 
and then connection times out and pool tries to reconnect it (even if no 
consumers/readers are present).  Then we will see periodically in log these 
entries: 
   
   > 2020-12-11 14:25:38.342  INFO 29332 --- [sar-timer-139-1] 
o.a.p.client.impl.ConnectionHandler      : 
[persistent://dbus/test/dummy-objects] [reader-0f59ce70b0] Reconnecting after 
connection was closed
   > 2020-12-11 14:25:38.344  INFO 29332 --- [client-io-136-1] 
o.a.pulsar.client.impl.ConnectionPool    : [[id: 0xf03136ce, L:/127.0.0.1:52383 
- R:localhost/127.0.0.1:6650]] Connected to server
   > 2020-12-11 14:25:38.348  WARN 29332 --- [client-io-136-1] 
org.apache.pulsar.client.impl.ClientCnx  : [id: 0xf03136ce, L:/127.0.0.1:52383 
- R:localhost/127.0.0.1:6650] Received error from server: Unable to authenticate
   > 2020-12-11 14:25:38.348  WARN 29332 --- [client-io-136-1] 
o.a.pulsar.client.impl.ConnectionPool    : [[id: 0xf03136ce, L:/127.0.0.1:52383 
- R:localhost/127.0.0.1:6650]] Connection handshake failed: 
org.apache.pulsar.client.api.PulsarClientException$AuthenticationException: 
Unable to authenticate
   > 2020-12-11 14:25:38.348  WARN 29332 --- [client-io-136-1] 
o.a.p.client.impl.ConnectionHandler      : 
[persistent://dbus/test/dummy-objects] [reader-0f59ce70b0] Error connecting to 
broker: 
org.apache.pulsar.client.api.PulsarClientException$AuthenticationException: 
Unable to authenticate
   > 2020-12-11 14:25:38.348  WARN 29332 --- [client-io-136-1] 
o.a.p.client.impl.ConnectionHandler      : 
[persistent://dbus/test/dummy-objects] [reader-0f59ce70b0] Could not get 
connection to broker: 
org.apache.pulsar.client.api.PulsarClientException$AuthenticationException: 
Unable to authenticate -- Will try again in 57.76 s
   > 2020-12-11 14:25:38.348 ERROR 29332 --- [client-io-136-1] 
org.apache.pulsar.client.impl.ClientCnx  : [id: 0xf03136ce, L:/127.0.0.1:52383 
! R:localhost/127.0.0.1:6650] Failed to authenticate the client
   > 2020-12-11 14:25:38.348  WARN 29332 --- [client-io-136-1] 
org.apache.pulsar.client.impl.ClientCnx  : [id: 0xf03136ce, L:/127.0.0.1:52383 
! R:localhost/127.0.0.1:6650] Received unknown request id from server: -1
   > 2020-12-11 14:25:38.348  INFO 29332 --- [client-io-136-1] 
org.apache.pulsar.client.impl.ClientCnx  : [id: 0xf03136ce, L:/127.0.0.1:52383 
! R:localhost/127.0.0.1:6650] Disconnected
   
   **To Reproduce**
   Enable JWT based authentication and issue a short-lived token. Publish and 
consume some messages using that token. Wait a few minutes until token expires.
   
   **Expected behavior**
   Connection pool should not try to reconnect (or at least retry only a few 
times) when authentication fails. 
   
   **Screenshots**
   
   **Desktop (please complete the following information):**
    - Windows (Docker Desktop)
   
   **Additional context**
   
   


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

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to