influxdata / influxdata/influxdb-client-python

WriteApi does not respect Ctrl+C / KeyboardInterrupt / SIGTERM

Abierto
#688 0 comentarios 0 reacciones 0 asignados Ver en GitHub
bug
Lenguaje dominante
Python
Estrellas
793
Forks
186
Merge medio
3 h 2 min
PR fusionados (30 d)
1

Descripción

### Specifications

* Client Version: 1.48.0
* InfluxDB Version: 2.4.0
* Platform: Ubuntu 24.04

### Code sample to reproduce problem

1. Make sure there is no server running at the address below.
2. Run the following program
```python
import urllib3
from influxdb_client.client.influxdb_client import InfluxDBClient
from influxdb_client.client.write.point import Point

_RETRIES = urllib3.util.Retry(total=6, backoff_factor=0.8)
p = Point("dsjfsfd")
with InfluxDBClient("http://127.0.0.1:8086", org="fake", retries=_RETRIES) as client:
with client.write_api() as api:
api.write("mybucket", client.org, p)

```
3. Wait a second or two to make sure at least one attempt has been made.
4. Press **Ctrl+C** (or send a `SIGTERM` through some other mechanism, eg `kill` utility on linux)

### Expected behavior

`api.__exit__` should raise a `KeyboardInterrupt` exception immediately.

### Actual behavior

Program is stuck running for several minutes inside `api.__exit__`. Until program is force killed using `SIGKILL` or all retries have been exhausted.

### Additional info

I've also experimented with `write_options=WriteOptions(max_close_wait=1000)` but it does not help and it has the risk to affect the normal flow when user is not pressing Ctrl+C

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Start with the client.write_api() entry point and the InfluxDBClient usage shown in influxdb_client/client/influxdb_client.py. Reproduce the no-server case, then trace api.__exit__ during Ctrl+C or SIGTERM; done means shutdown raises KeyboardInterrupt promptly instead of waiting for retries to finish.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
api
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bien especificado
Aptitud para principiantes
42/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.