You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by GitBox <gi...@apache.org> on 2022/10/28 03:47:07 UTC
[GitHub] [pulsar-client-cpp] Jaudouard opened a new issue, #88: [python client] cannot close consumer after an unsubscribe
Jaudouard opened a new issue, #88:
URL: https://github.com/apache/pulsar-client-cpp/issues/88
**Describe the bug**
Currently, calling `close() `after `unsubscribe()` with the latest python client crashes. The connection with pulsar is not fully released if `close()` is not called, causing a leak in file descriptor.
**To Reproduce**
Steps to reproduce the behavior:
```python
from pulsar import Client
client = Client(service_url='pulsar://localhost:6650')
consumer = client.subscribe("test_topic", subscription_name="Consumer 1")
consumer.unsubscribe()
consumer.close()
```
- The `consumer.close()` crashes and raises an `AlreadyClosed: Pulsar error` exception,
- Several file descriptor are left open because the connection wasn't fully closed.
full log:
```
2022-06-10 14:40:35.586 INFO [139972470286144] Client:88 | Subscribing on Topic :test_topic
2022-06-10 14:40:35.586 INFO [139972470286144] ClientConnection:189 | [<none> -> pulsar://localhost:6650] Create ClientConnection, timeout=10000
2022-06-10 14:40:35.586 INFO [139972470286144] ConnectionPool:96 | Created connection for pulsar://localhost:6650
2022-06-10 14:40:35.587 INFO [139972139529984] ClientConnection:375 | [[::1]:51540 -> [::1]:6650] Connected to broker
2022-06-10 14:40:35.589 INFO [139972139529984] HandlerBase:64 | [persistent://public/default/test_topic, Consumer 1, 0] Getting connection from pool
2022-06-10 14:40:35.609 INFO [139972139529984] ConsumerImpl:224 | [persistent://public/default/test_topic, Consumer 1, 0] Created consumer on broker [[::1]:51540 -> [::1]:6650]
2022-06-10 14:40:35.609 INFO [139972470286144] ConsumerImpl:275 | [persistent://public/default/test_topic, Consumer 1, 0] Unsubscribing
2022-06-10 14:40:35.612 INFO [139972139529984] ConsumerImpl:308 | [persistent://public/default/test_topic, Consumer 1, 0] Unsubscribed successfully
---------------------------------------------------------------------------
AlreadyClosed Traceback (most recent call last)
Input In [12], in <cell line: 5>()
3 consumer = client.subscribe("test_topic", subscription_name="Consumer 1")
4 consumer.unsubscribe()
----> 5 consumer.close()
File ~/.virtualenvs/api_converter/lib/python3.8/site-packages/pulsar/__init__.py:1239, in Consumer.close(self)
1235 def close(self):
1236 """
1237 Close the consumer.
1238 """
-> 1239 self._consumer.close()
1240 self._client._consumers.remove(self)
AlreadyClosed: Pulsar error: AlreadyClosed
```
**Expected behavior**
we can close the consumer after unsubcribing, releasing the file descriptors. This is the current normal behaviour in the Java client.
**Desktop (please complete the following information):**
- OS: Ubuntu 20.04
- python 3.8
- pulsar-client 2.10.0
**Additional context**
This issue follows a discussion with @BewareMyPower in https://github.com/apache/pulsar/issues/14714
Thanks!
--
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: commits-unsubscribe@pulsar.apache.org.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] [python client] cannot close consumer after an unsubscribe [pulsar-client-cpp]
Posted by "BewareMyPower (via GitHub)" <gi...@apache.org>.
BewareMyPower closed issue #88: [python client] cannot close consumer after an unsubscribe
URL: https://github.com/apache/pulsar-client-cpp/issues/88
--
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: commits-unsubscribe@pulsar.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org