Occasional AssertionError exception
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 20/100
- Tipo de issue
- Error
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- python, rabbitmq
- Área
- backend, distributed-systems
Línea de trabajo
Inspecciona eiffellib/lib/base_rabbitmq.py alrededor de keep_alive y run, y luego compara el flujo de publicación y confirmación con pika issue 1219. Utiliza los logs disponibles de nivel debug para investigar la temporización y reproduce el AssertionError con ambos mensajes salientes; se considera terminado cuando la excepción y la pérdida de mensajes ya no se produzcan, con una prueba de regresión si el comportamiento se puede reproducir.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
I stumbled upon the following exception with eiffel-pythonlib 1.1.0:
Exception in thread Thread-1:
Traceback (most recent call last):
File "/home/username/.pyenv/versions/3.6.9/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/home/username/.pyenv/versions/3.6.9/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "/home/username/src/programname/.tox/py36/lib/python3.6/site-packages/eiffellib/lib/base_rabbitmq.py", line 183, in keep_alive
self.run()
File "/home/username/src/programname/.tox/py36/lib/python3.6/site-packages/eiffellib/lib/base_rabbitmq.py", line 173, in run
self._connection.ioloop.start()
File "/home/username/src/programname/.tox/py36/lib/python3.6/site-packages/pika/adapters/select_connection.py", line 543, in start
self._poller.start()
File "/home/username/src/programname/.tox/py36/lib/python3.6/site-packages/pika/adapters/select_connection.py", line 803, in start
self.poll()
File "/home/username/src/programname/.tox/py36/lib/python3.6/site-packages/pika/adapters/select_connection.py", line 1200, in poll
self._dispatch_fd_events(fd_event_map)
File "/home/username/src/programname/.tox/py36/lib/python3.6/site-packages/pika/adapters/select_connection.py", line 904, in _dispatch_fd_events
handler(fileno, events)
File "/home/username/src/programname/.tox/py36/lib/python3.6/site-packages/pika/adapters/utils/selector_ioloop_adapter.py", line 391, in _on_reader_writer_fd_events
callbacks.writer()
File "/home/username/src/programname/.tox/py36/lib/python3.6/site-packages/pika/diagnostic_utils.py", line 53, in log_exception_func_wrap
return func(*args, **kwargs)
File "/home/username/src/programname/.tox/py36/lib/python3.6/site-packages/pika/adapters/utils/io_services_utils.py", line 1093, in _on_socket_writable
'but _tx_buffers is empty.', self._state)
AssertionError: ('_AsyncPlaintextTransport._on_socket_writable() called, but _tx_buffers is empty.', 1)
The program in question had consumed one messages and was about to publish two messages in response, but only one message ended up in the receiving queue and the consumed message was acked.
This happened when I was trying a new version of a program using eiffel-pythonlib and I couldn't see any similar cases in the production logs for the same program. Perhaps different timing since I was connecting to a RabbitMQ server on localhost? I have debug-level logs available if that would help.
https://github.com/pika/pika/issues/1219 indicates that this is a usage bug but I haven't dug into the eiffel-pythonlib to confirm this.
Motivation
Exceptions like this shouldn't occur and messages should not be lost.
- Lenguaje dominante
- Python
- Estrellas
- 8
- Forks
- 12
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de eiffel-community/eiffel-pythonlib
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
eiffel-community/eiffel-pythonlib#44 · 1 comentario ·
-
Add jq filtering to subscriberAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
eiffel-community/eiffel-pythonlib#31 · 1 comentario ·
-
on-hold
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
CHANGELOG.rst is outdatedAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 35/100
eiffel-community/eiffel-pythonlib#28 · 3 comentarios ·
Todos los issues de eiffel-community/eiffel-pythonlib
Issues similares
-
bug documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
awslabs/visual-asset-management-system#514 ·
Los mantenedores suelen responder en 1 día
-
backend bug spec:REQ-053
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
nolte/kamerplanter#2547 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
EleutherAI/lm-evaluation-harness#4425 ·
Los mantenedores suelen responder en 1 día
-
Gemini: respect PLANNING_DISABLED=1 in lifecycle context hooksPosiblemente ocupada @AmariAugustin la tomó hoy. Abiertobug good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 87/100
OthmanAdi/planning-with-files#329 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
wr.dynamodb.read_items returns [{}] for a single partition value that does not existPosiblemente ocupada @auraseb la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
aws/aws-sdk-pandas#3520 ·
Los mantenedores suelen responder en 2 días