apache / apache/pulsar-client-python

Disposing of a Python Consumer object without calling close() leaks file descriptors and does not close the consumer.

Abierto
#42 3 comentarios 0 reacciones 1 asignado Reclamado por @zbentley Ver en GitHub
Lenguaje dominante
Python
Estrellas
75
Forks
53
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

**Describe the bug**
If a Python pulsar-client Consumer object is destroyed (garbage collected) without its `close()` method being called, the consumer remains connected, and its file descriptors remain open.

**To Reproduce**
Steps to reproduce the behavior:
1. Run the below snippet.
2. Observe that it segfaults (due to https://github.com/apache/pulsar/issues/14582).

```python
import logging
import resource
import pulsar

def main():
resource.setrlimit(resource.RLIMIT_NOFILE, (15, 15))
for i in range(100):
client = pulsar.Client(service_url='pulsar://localhost', logger=logging.getLogger())
print(f"creating mysub-{i}")
con = client.subscribe(topic='mytopic', subscription_name=f'mysub-{i}')

if __name__ == '__main__':
main()

```

**Expected behavior**
Garbage collecting consumers should result in their no longer being present on the system.

**Desktop (please complete the following information):**
- OS: MacOS Monterey (x86)
- Pulsar client 2.9.1

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.