`supabase status` spins at ~160% CPU forever when stdout and stderr share a pipe whose reader closes early
Los mantenedores suelen responder en 1 día
@7ttp ya está trabajando en esto.
Desde el 27/9/2026.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 67/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
- Área
- cli
Línea de trabajo
Start by reproducing npx supabase status 2>&1 | head -3 and compare it with the non-hanging commands listed in the issue. Trace the supabase status handling of stdout and stderr when the shared pipe closes early. Done means the CLI exits instead of spinning after an EPIPE, while normal output and draining consumers still complete.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Environment
- Supabase CLI 2.116.0 (npm
supabase,@supabase/cli-darwin-arm64); also observed on 2.118.0 - macOS 27.0 (26A428), Apple Silicon (arm64)
- Local stack running (
supabase start)
Steps to reproduce
npx supabase status 2>&1 | head -3
Expected
head prints three lines and exits; the CLI receives EPIPE/SIGPIPE on its next write and exits.
Actual
head exits, but the CLI process never does. It stays at 157-161% CPU until killed. sample shows the main thread looping in kevent64. Because the shell waits on every member of a pipeline, the command never completes. One background invocation ran for 14 hours before it was noticed.
Measurements (each run killed by a watchdog after 15-25 s)
| Command | Result |
|---|---|
npx supabase status 2>&1 | head -3 |
hangs, 159.8% CPU after 24 s |
npx supabase status 2>&1 | grep -q Stopped |
hangs, 157.5% CPU |
node_modules/@supabase/cli-darwin-arm64/bin/supabase status 2>&1 | head -1 |
hangs, 161.2% CPU |
npx supabase status 2>/dev/null | head -3 |
exits 0 |
npx supabase status 2>&1 >/dev/null | head -1 |
exits 0 |
npx supabase status 2>&1 | cat >/dev/null |
exits 0 |
X=$(npx supabase status -o json 2>/dev/null) |
exits 0 |
The hang requires both stdout and stderr in the same pipe, with a reader that closes before the CLI has finished writing. Piping only one stream, or draining everything, exits normally. Setting SUPABASE_NO_UPDATE_NOTIFIER=1 does not change the result.
Suggested fix
Exit (or stop writing) when a write to stdout or stderr fails with EPIPE, rather than retrying in the event loop.
Workaround
Capture the whole output first (X=$(supabase status -o json 2>/dev/null)) or redirect to a file, then read that.
- Lenguaje dominante
- TypeScript
- Estrellas
- 2.4k
- Forks
- 526
- Merge medio
- 1 d 2 h
- PR fusionados (30 d)
- 307
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 supabase/cli
-
Migration error caret is missing or misplaced when the statement contains multibyte charactersAbierto🐛 Bug supabase/cli
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
🐛 Bug supabase/cli
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Los mantenedores suelen responder en 1 día
-
SQL statement splitter breaks E'...' strings that contain a backslash-escaped quotePosiblemente ocupada @7ttp la tomó hace 1 día. Abierto🐛 Bug supabase/cli
supabase/cli#6885 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
db push applies migrations when the confirmation answer is not yes or noPosiblemente ocupada @7ttp la tomó hace 1 día. Abierto🐛 Bug supabase/cli
supabase/cli#6869 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
🐛 Bug supabase/cli
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
Todos los issues de supabase/cli
Issues similares
-
Mend: dependency security vulnerability untriaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
opensearch-project/security-dashboards-plugin#2545 ·
Los mantenedores suelen responder en 1 día
-
Add: Dream TR SDAbiertocheck:passed streams:add
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
doctor integrity sample scans soft-deleted pages on Postgres (batch path has no deleted_at filter)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
SocialGouv/egapro#4672 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
area:agents area:tui bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
anthropics/claude-code#98358 ·
Los mantenedores suelen responder en 1 día