Routing key length is not validated
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 42/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- cpp, rabbitmq
- Área
- backend, distributed-systems
Línea de trabajo
Comience con los puntos de entrada topology.bind(exchange, queue, longRoutingKey) y producer->send(message, longRoutingKey, ...), y después reproduzca el ejemplo adjunto con una clave de enrutamiento de más de 255 bytes. Rastree dónde gestiona cada operación la clave y verifique que los valores que exceden el tamaño permitido se rechacen sin que la conexión se bloquee ni se cierre.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
The topic exchange routing key has a limitation of 255 bytes (see https://www.rabbitmq.com/tutorials/tutorial-five-go#:~:text=There%20can%20be%20as%20many,be%20in%20the%20same%20form.). However, this limitation is not applied when binding queue to an exchange or sending the message:
To Reproduce
- Specify a long routing key (>255 characters) when binging a queue to an exchange:
topology.bind(exchange, queue, longRoutingKey);
No errors will be reported but the process will hang forever. - Specify a long routing key (>255 characters) when sending the message:
producer->send(message, longRoutingKey, ...);
The following error will be reported:
13JAN2025_08:46:10.559653 350290 140737331340864 WARN /home/pasick/github/pasick-clean/rmqcpp/src/rmq/rmqio/rmqio_asioconnection.cpp 410 UNINITIALIZED_LOGGER_MANAGER Socket closed: Connection reset by peer. Current state: 1
and the connection will be closed.
Please refer to the attached sample which demonstrates the issue:
longRoutingKeyIssue.txt
Expected behavior
I believe that the size of the routing key should be validated and do not accept values larger that 255 bytes.
- Lenguaje dominante
- C++
- Estrellas
- 106
- Forks
- 32
- Merge medio
- 9 h 6 min
- PR fusionados (30 d)
- 4
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 bloomberg/rmqcpp
-
Optional dependency to gtest Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
-
New version release Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
compile a library file Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
-
conan support Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Todos los issues de bloomberg/rmqcpp
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
flutter-webrtc/flutter-webrtc#2206 ·
-
litertlm-android AAR ships no consumer ProGuard rules → "mid == null" SIGABRT in minified apps Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
google-ai-edge/LiteRT-LM#3739 ·
-
Component: GLib
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
brave/brave-browser#59300 ·
-
Mute ydb/tests/functional/dstool/test_canonical_requests.py.Test.test_group_take_snapshot in main Abiertoai_reviewed
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
ydb-platform/ydb#53974 · 3 comentarios ·