Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Native stack engine: macOS runs out of shared memory segments after about 30 running stacks

未关闭
#7,269 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
48/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
macos, postgresql, typescript
领域
cli, databases

调研方向

Start by tracing the native stack startup path and how it handles Postgres startup failures, especially shmget errors; the issue does not name the relevant files or tests. The report describes three possible improvements: make the error actionable, stop idle Postgres instances, or clean up stacks for removed branches. Clarify which behavior is intended and how it should be verified before implementation.

由索引模型根据 Issue 内容生成。

描述

🐛 Bug supabase/cli

Summary

On macOS, the native stack engine runs out of System V shared memory segments once about 30 stacks are running, and supabase start then fails for every new checkout or branch.

What happens

The stack engine keeps one stack per checkout and branch, and a stack keeps running after its shell exits. Each running stack's Postgres creates a System V shared memory segment. macOS allows 32 segments on the whole machine by default (sysctl kern.sysv.shmmni prints 32), so with git worktrees and short-lived branches the limit is reached in a few days. ipcs -m shows the segments in use; on my machine 31 of 32 were taken before I stopped two stacks.

Steps to reproduce

  1. On macOS, set [experimental] stack = true in supabase/config.toml.
  2. Run supabase start --runtime native in about 30 worktrees or branches without stopping them.
  3. Run supabase start --runtime native in one more.

The last start fails because Postgres can't create its segment. supabase stack list shows the other stacks as reachable.

Environment

  • Supabase CLI 2.121.0, native runtime
  • macOS 26 (Darwin 25.6), Apple silicon
  • kern.sysv.shmmni: 32

Suggestions

  • Name the cause when Postgres fails on shmget, and point to supabase stack list and supabase stop --stack-id.
  • Stop the Postgres of a stack that has been idle for a while, the way the other services already stop when idle.
  • Offer a command that stops the stacks of branches that no longer exist or were merged. We use a small script for this today: it reads supabase stack list --output-format json, matches branch_context against git branch --merged main for the repo and its worktrees, and calls supabase stop --stack-id.
主要语言
TypeScript
星标
2.4k
派生
540
平均合并
17 小时 29 分钟
30 天内合并 PR
387

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

supabase/cli 的其他 Issue

查看 supabase/cli 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。