The Wire · Showcase
SUPABASE CLI FIXES MEMORY BLOWUP ON LARGE DB DUMPS
By RepoJournal · Filed · About Supabase
The CLI was buffering entire piped outputs in memory instead of respecting backpressure, turning a routine `supabase db dump` into an OOM killer on large databases.
The root cause was straightforward and brutal: stdout writes ignored their return value, so Node had no signal to pause when the reader slowed down [1]. Large payloads piled up in the heap. The fix routes output through a proper Stdio sink that waits for drain events and handles stream errors, a change that's already shipping [2]. In the same sweep, the CLI now correctly fails `supabase test db` when zero tests execute [3], closing a gap where typo'd paths or empty directories would report success because pg_prove exits 0 even on NOTESTS verdicts. The TAP summary now gets watched for that specific result, and failures name the paths that were searched [4]. A third fix settles managed identity recovery races safely, preserving Git config and marker semantics across interrupted branch operations [5].
One email a day. Unsubscribe in one click.
Keep up with Supabase in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Upgrade Supabase CLI to latest version before running db dump on large databases supabase/cli [immediate]
- → Review test db workflows to ensure test paths are not typo'd or empty supabase/cli [plan]
References
- [1] fix(cli): stop buffering piped output ↗ supabase/cli
- [2] fix(cli): stop buffering piped output (#6212) supabase/cli
- [3] fix(cli): fail test db when no tests ran (CLI-2194) ↗ supabase/cli
- [4] fix(cli): fail test db when no tests ran (CLI-2194) (#6210) supabase/cli
- [5] fix(stack): settle managed identity recovery safely ↗ supabase/cli