Repository navigation
fix(support): respect dotenv precedence and strip inline comments in read_env_value - #5873
Closed
vaibhavsrv wants to merge 1 commit into
Closed
vaibhavsrv wants to merge 1 commit into
vaibhavsrv wants to merge 1 commit into
Conversation
Collaborator
|
Thanks for this contribution. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why this matters
The diagnostics support bundle script (
scripts/ods-support-bundle.sh) extracts configuration parameters such asGPU_BACKEND,TIER, andODS_MODEfrom the local.envusing an embedded Python helperread_env_value(). However, the helper's parser halts on the first line matching the target variable name (break), which breaks standard POSIX and Docker Compose precedence where later assignments in.envoverride earlier defaults. When an operator appends custom overrides or when templated files carry defaults earlier in the file,read_env_valueselects the obsolete baseline value. Furthermore,read_env_value()previously stripped quotes indiscriminately via.strip('"').strip("'")without trimming inline comments (# ...), causing annotated lines such asGPU_BACKEND=rocm # AMD ROCmto resolve as"rocm # AMD ROCm", which fails pattern matching in subsequent diagnostic branches.This change updates
read_env_value()to scan all lines so that the final key assignment takes precedence, symmetrically strips matching quotes, and cuts unquoted comments at#. Missing keys continue to fall back cleanly to the declared default.Validation
GPU_BACKEND=cpufollowed by an overrideGPU_BACKEND=rocm # AMD ROCm acceleratorand quotedTIER="2" # production tier override. On unpatched code,GPU_BACKENDresolved ascpuandTIERretained trailing comments.read_env_valuecorrectly returnsrocmand2, and the generatedvalidation/compose-flags.txtartifact in the support archive captures the active runtime configuration without leaking comment text.test_support_bundle_env_precedence.pywired into Linux CI."Overlap check
read_env_value(). Existing credential redaction, command timeouts, and container log scoping remain fully intact.Risk / AI disclosure
AI-assisted investigation, implementation, and CLI regressions. This strengthens diagnostic configuration discovery; no runtime daemon admission, compose generation, or live configuration is modified. Independent human review and platform/runtime qualification remain gates. No running configuration, deployment or upstream merge changed.
Follow-up integration evidence
Composed with #5867 at
330e1a77dafdb5886e79bb92230ea297277b6b00without conflicts. Production and test diffs passed together; adjacent support bundle timeout and log scoping checks remain intact.Backlog composition was local-only (production/test diffs, excluding workflow/Makefile wiring); it is not an upstream merge or independent human approval. Declared live-review gates remain open.