bin/flink-suite.sh aborts under macOS's default bash 3.2

Abierto Apto para principiantes
#653 0 comentarios 0 reacciones 0 asignados Ver en GitHub

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
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
bash
Área
cli

Línea de trabajo

Lee bin/flink-suite.sh y docs/upstream-flink-suite.md, luego reproduce la expansión de un array vacío con Bash 3.2 de macOS usando el comando del issue. Actualiza el script o el documento y comprueba el requisito de versión según corresponda; se considera terminado cuando la suite ya no se interrumpe con la configuración documentada y queda claro el comportamiento requerido de Bash.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Priority: P4.

Problem

bin/flink-suite.sh runs under #!/usr/bin/env bash with set -uo pipefail and expands arrays that can be empty, such as STREAMFUSION_LINE_PROFILES on the 2.2 line and TEST_SELECTOR_ARGS when no test selector is given. Bash before 4.4 treats "${array[@]}" of an empty array as an unbound variable under set -u, so on macOS, whose /bin/bash is 3.2, the suite aborts unless a newer bash comes first on PATH. docs/upstream-flink-suite.md does not state a bash requirement.

Confirmed on canonical main 97f7b08de84d11b9eb58e0f3b1bf33713e57ec83:

$ /bin/bash -c 'set -u; empty=(); printf "[%s]\n" "${empty[@]}"'
/bin/bash: empty[@]: unbound variable          # bash 3.2.57 (macOS)
$ /opt/homebrew/bin/bash -c 'set -u; empty=(); printf "[%s]\n" "${empty[@]}"'
[]                                              # bash 5.3

Direction

Expand possibly empty arrays as ${array[@]+"${array[@]}"}, which works on every bash version. Alternatively, document the bash 4.4 requirement and fail fast with a clear version check at the top of the script.

Lenguaje dominante
Java
Estrellas
157
Forks
13
Merge medio
7 h 56 min
PR fusionados (30 d)
153

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de datafusion-contrib/StreamFusion

Todos los issues de datafusion-contrib/StreamFusion

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.