[correctness][confirmed-defect][sort] Conflicting repeated field separators are silently accepted
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 82/100
Direzione di ricerca
Leggi builtins/sort/sort.go:154 e builtins/sort/sort.go:207-221 per seguire la registrazione e la convalida del flag del separatore. Aggiungi uno scenario di regressione in tests/scenarios/cmd/sort/flags/repeated_separator_conflict.yaml ed esegui gli scenari sort mirati; il lavoro è completato quando separatori ripetuti incompatibili producono il codice di uscita 2 e la diagnostica sort: incompatible tabs, mentre gli scenari sort esistenti continuano a passare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Generated by the rshell behavior correctness scanner.
- Contract:
BEH-005 - Classification:
confirmed-defect - Impact:
medium - Target:
sort - Scanned commit:
514d1cb8188fda6b1accca5955dfab3b0e8aa34a
Conflicting repeated field separators silently use the final value instead of rejecting the invocation. GNU reports incompatible tabs and exits 2. This can silently sort by unintended keys. No applicable documented divergence was found.
Contract sources
docs/BEHAVIOR_CONTRACTS.md:51-55: Repeated, short, long, and attached flags must follow documented or reference behavior.SHELL_FEATURES.md:33: Supports -t SEP and -k KEYDEF without a repeated-separator divergence./usr/bin/sort: Native GNU coreutils 9.4 reproducibly emitted the exact expected diagnostic and status.
Implementation references
builtins/sort/sort.go:154: Registers the separator as one string value, retaining only the final occurrence.builtins/sort/sort.go:207-221: Validates only the final separator; does not detect conflicting prior values.
Fixture setup
No files required. Both engines were executed twice through Python subprocess.run with captured stdout/stderr/status, LC_ALL=C, and a new tempfile.TemporaryDirectory(prefix='zz_correctness_scan_') for each run.
Reproducer
printf 'b:2\na:1\n' | sort -t : --field-separator=, -k2,2n
Commands used:
GOENV_VERSION=1.26.3 timeout 300s go build -o /tmp/zz_correctness_scan_rshell ./cmd/rshell/tmp/zz_correctness_scan_rshell --allowed-commands rshell:sort,rshell:printf -c "printf 'b:2\na:1\n' | sort -t : --field-separator=, -k2,2n"LC_ALL=C bash -c "printf 'b:2\na:1\n' | sort -t : --field-separator=, -k2,2n"GOENV_VERSION=1.26.3 timeout 300s go test ./tests -run '^TestShellScenarios$/^cmd$/^sort$/^(basic|flags|errors|help|pathological|zz_correctness_scan_cases)$' -count=2 -timeout 240s
Expected
Exit code: 2
stdout:
stderr:
sort: incompatible tabs
Actual
Exit code: 0
stdout:
a:1
b:2
stderr:
Verification
- Reproduction runs: 2
- Reference: GNU coreutils 9.4 under LC_ALL=C. Two clean direct reproductions; the GNU-derived exact YAML expectations also failed in both focused scenario runs.
- Temporary test: tests/scenarios/cmd/sort/zz_correctness_scan_cases/zz_correctness_scan_repeated_separator.yaml; removed after verification. Script, stdout, and stderr used YAML |+ scalars.
- Suggested regression-test location:
tests/scenarios/cmd/sort/flags/repeated_separator_conflict.yaml
Fingerprint: 6d4358f484ac1b96dbd4011e33187a11575a8c6deb58d7a3bc317d247dd20537
- Lingua principale
- Go
- Stelle
- 31
- Fork
- 3
- Merge medio
- 2g 23h
- PR unite (30g)
- 13
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di DataDog/rshell
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
[correctness][confirmed-defect][builtins/wc] wc pads regular-file stdin as though it were a pipeAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di DataDog/rshell
Issue simili
-
Docs: how to get more careful answers (Effort, reasoning models, Reasoning level, Deliberate)Apertadocumentation priority:p1
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
yeixio/toskar-core#697 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
keyxmakerx/Chronicle#1532 ·
I maintainer di solito rispondono entro 1 giorno
-
The acquisition fixture's search path skips the argument table production enforces (regression from #285)Forse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
Judgment-Pack/judgment-pack-gateway#293 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: 【优化】对话消息底部增加发送时间展示Apertabug desktop v3 windows
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
esengine/DeepSeek-Reasonix#13697 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
good first issue help wanted
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 95/100
eugenioenko/ttt#959 ·
I maintainer di solito rispondono entro 1 giorno