[hermes] soteria #321: sonarqube_analyzer_toolchain_failure #16
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Hermes auto-triage classified incident
soteria/321as sonarqube_analyzer_toolchain_failure (confidence 0.62); first failed gate:sonarqube (Jenkins stage: "Enforce quality gate").Why a human is needed
Build 321 failed in the "Enforce quality gate" stage; the "Build & push image" stage was skipped and the pipeline ended with "script returned exit code 1". No failing tests were published, so nothing in the Go test suite reported an error. What is plainly broken is the static-analysis step that runs in the quality-tools container (registry.bstein.dev/bstein/quality-tools:sonar8.0.1-trivy0.70.0-db20260422-arm64). Between 21:05:41 and 21:05:42 the SonarQube Go sensor failed on all 26 Go source files - "Go parser external process returned non-zero exit value: 2" on most, "Stream closed" or "Broken pipe" on internal/k8s/state.go, internal/k8s/client.go, internal/k8s/volumes.go and internal/server/backup_safety.go - and at 21:06:07 the TypeScript sensor died with "Cannot run program "node": error=2, No such file or directory". Both are the analyzer's helper processes failing to execute inside the container, not results about your code: a real syntax error is reported against one file at a specific position and would not knock out all 26 files uniformly, and the JVM never even reached
node -v. The consequence is that the Sonar run for this build contains no Go analysis at all, which is the most likely reason the gate stage exited 1. A fix therefore belongs in the analysis image rather than in Soteria: rebuild or repin quality-tools so it contains an arm64 Node.js on PATH (or point sonar.nodejs.executable at a real binary) and a Go parser that runs on this agent's architecture, and verify inside the image withnode -vplus a single-file sonar-scanner run before re-running the pipeline; if an arm64 Go parser is genuinely unavailable for this Sonar version, the alternative is to pin a Sonar/plugin version that ships one rather than to silence the sensor. Flagged for a maintainer because the evidence stops short of proof: the console is truncated between 21:06:08 and the 21:31:51 end of the build and the log store was unreachable ("opensearch request failed: [Errno 111] Connection refused"), so the exact condition that returned exit 1 is not in hand - the archived build artifacts and the SonarQube project page for build 321 will confirm it - and deciding how to repair the shared analysis image is a maintainer's call.Ariadne did not authorize automated remediation:
human_required.Facts
https://ci.bstein.dev/job/soteria/321/)jenkins.first_failed_stage; jenkins.console_tail; console_failures[3] (line 3351))jenkins.failed_tests)console_failures[1] (line 304))console_failures[1] (line 304) and console_failures[2] (line 405))console_failures[0] (line 109); file URIs in console_failures[1])jenkins.console_truncated; jenkins.console_failures)jenkins.console_failures; jenkins.duration_seconds)log_evidence.error)Evidence
The earliest failure region of the build console:
Inferences
go build, so a broken compile would have surfaced earlier and differently.Suggested remediation (not available)
No automated remediation exists for this failure. Hermes proposes one; it was not performed, and Ariadne cannot perform it until a person builds and deploys it.
rebuild_quality_tools_analysis_imageTruncated by Ariadne: the diagnosis exceeded the configured issue body limit. The complete evidence bundle is in the Ariadne audit trail.