bug: connectivity test --junit-file emits malformed XML (duplicate failureMessage attribute)

Aperta Adatta ai principianti
#3,333 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@cvas22 ci sta già lavorando.

Dal 4/11/2026.

  • #49829 di @cvas22 — aperta

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
75/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
go, kubernetes, xml
Ambito
cli, testing

Direzione di ricerca

Inizia da cilium-cli/connectivity/internal/junit/junit.go, dove, secondo l’issue, gli attributi di errore vengono assemblati in più punti. Riproduci il problema con un test di connettività che abbia un’azione non riuscita e analizza out.xml usando il comando Python ElementTree fornito. Il lavoro è completato quando il report è un XML ben formato e viene analizzato correttamente, mantenendo i dettagli dell’errore.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Summary

The JUnit XML report written by cilium connectivity test --junit-file is
malformed: <failure> elements carry the failureMessage attribute twice,
so strict XML parsers reject the file and JUnit consumers cannot use it.

Environment

  • cilium-cli: v0.19.7 compiled with go1.26.5 on linux/amd64
  • server: Cilium chart 1.20.4 on single-node k3d (k3s v1.34.5+k3s1)
  • command: cilium connectivity test --single-node --junit-file out.xml
    (any run with at least one failed action reproduces it; 132 testcases,
    27 failed in the reporting run)

Reproduction

  1. Run cilium connectivity test --junit-file out.xml on a setup where at
    least one test action fails (e.g. single-node k3d, L7/TLS tests fail).

  2. Parse the report with a strict parser:

    python3 -c "import xml.etree.ElementTree as ET; ET.parse('out.xml')"
    

Expected

Well-formed XML that any JUnit consumer can parse.

Actual

xml.etree.ElementTree.ParseError: duplicate attribute: line 8, column 405

The emitting element looks like
<failure message="..." failureMessage="..." failureMessage="...">
(the attribute appears twice with the full command text). Related work that
is NOT this bug: #40035 (export detailed failure messages, likely origin of
the second attribute), #46835 (atomic write), #46101 (remove partial file).

Additional Context

  • Probable source: cilium-cli/connectivity/internal/junit/junit.go
    (failure attributes are assembled in more than one place since #40035).
  • Workaround for consumers: regex-extract name/time per testcase
    instead of parsing the XML.
Lingua principale
Makefile
Stelle
608
Fork
229
Merge medio
1g 25m
PR unite (30g)
16

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di cilium/cilium-cli

Tutte le issue di cilium/cilium-cli

Issue simili

Altre issue su CLI

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.