parser_syslog: string parser ends RFC5424 structured data at an escaped "]"
Los mantenedores suelen responder en 1 día
Ya se ha fusionado un pull request relacionado.
- #5591 de @yuminn-k — fusionado
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 76/100
Línea de trabajo
Empieza en parse_rfc5424, donde el issue indica que text.index('] ', cursor) encuentra el límite de los datos estructurados. Compara el parser de cadenas con el parser de expresiones regulares usando la entrada RFC5424 proporcionada. Sigue los tests existentes del parser y añade un caso de regresión para un ] escapado seguido de un espacio. El trabajo está hecho cuando extradata contiene todos los datos estructurados y message es msg.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
With parser_engine string, parser_syslog ends STRUCTURED-DATA at the first ] in the message. It does not check whether the ] is escaped. When a PARAM-VALUE contains \] followed by a space, the rest of the structured data goes into message.
RFC 5424 section 6.3.3 requires ] in a PARAM-VALUE to be escaped as \], so this is a valid message.
Input:
<14>1 2026-04-25T16:43:29.123Z host app 123 ID [x@1 a="b\] c"] msg
extradata |
message |
|
|---|---|---|
parser_engine string |
[x@1 a="b] |
c"] msg |
parser_engine regexp |
[x@1 a="b\] c"] |
msg |
To Reproduce
-
Create
/tmp/syslog.logwith this line:<14>1 2026-04-25T16:43:29.123Z host app 123 ID [x@1 a="b\] c"] msg -
Run Fluentd with the configuration below.
Expected behavior
extradata contains the whole structured data and message is msg, as with parser_engine regexp.
Actual output:
test: {"host":"host","ident":"app","pid":"123","msgid":"ID","pri":14,"extradata":"[x@1 a=\"b]","message":"c\"] msg"}
Your Environment
- Fluentd version: 1.20.1 (master at f55db4b1)
- Package version: N/A (from source)
- Operating system: CachyOS
- Kernel version: 7.3.1-1-cachyos
- Ruby: 4.0.9
Your Configuration
<source>
@type tail
path /tmp/syslog.log
pos_file /tmp/syslog.log.pos
read_from_head true
tag test
<parse>
@type syslog
message_format rfc5424
with_priority true
parser_engine string
</parse>
</source>
<match test>
@type stdout
</match>
Your Error Log
No error is logged. The record is emitted with wrong fields.
Additional context
parse_rfc5424 finds the end of the structured data with text.index('] ', cursor). This exists since v1.11.0.
- Lenguaje dominante
- Ruby
- Estrellas
- 13.6k
- Forks
- 1.4k
- Merge medio
- 1 d 1 h
- PR fusionados (30 d)
- 61
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una 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 fluent/fluentd
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
in_tcp, in_syslog: a non-ASCII delimiter closes the connection with Encoding::CompatibilityErrorAbiertobug
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
Los mantenedores suelen responder en 1 día
-
bug enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
fluent/fluentd#5494 · 2 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
BufferChunkOverflowError inside @ERROR loops forever - no buffer parameter can stop itQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abiertobug
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
fluent/fluentd#5462 · 8 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de fluent/fluentd
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
palladius/rails8-app-on-gcp#198 ·
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
WikiEducationFoundation/WikiEduDashboard#7258 ·
Los mantenedores suelen responder en 1 día
-
Missing es-ES translation: components/student/TracksList.tsx:tracksList.searchLanguageTracksAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
manyfold3d/manyfold#7526 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
riscv/riscv-unified-db#2797 ·
Los mantenedores suelen responder en 1 día