[correctness][confirmed-defect][sort] Conflicting repeated field separators are silently accepted
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 82/100
Línea de trabajo
Lee builtins/sort/sort.go:154 y builtins/sort/sort.go:207-221 para seguir el registro y la validación de la opción de separador. Añade un escenario de regresión en tests/scenarios/cmd/sort/flags/repeated_separator_conflict.yaml y ejecuta los escenarios de sort específicos; el trabajo está hecho cuando los separadores repetidos incompatibles producen el código de salida 2 y el diagnóstico sort: incompatible tabs, mientras que los escenarios de sort existentes siguen pasando.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Go
- Estrellas
- 31
- Forks
- 3
- Merge medio
- 2 d 23 h
- PR fusionados (30 d)
- 13
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 DataDog/rshell
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
[correctness][confirmed-defect][builtins/wc] wc pads regular-file stdin as though it were a pipeAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
Todos los issues de DataDog/rshell
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Rafaeldelinares/gentle-mesh#125 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Gentleman-Programming/gentle-ai#5643 ·
Los mantenedores suelen responder en 1 día
-
security
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
FootprintAI/Containarium#2869 ·
Los mantenedores suelen responder en 1 día
-
kind/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
kubevirt/kubevirt#19559 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
bug raised-by:verifier
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
medici-finance/assay#3817 ·
Los mantenedores suelen responder en 1 día