Files
forever e4882f91de go: 1.26.8, whose race detector leaves a forked child alone before exec on macOS (#1184)
macOS race CI failed now and then with "write |1: file already closed"
on a Claude subscription run's first prompt
(TestClaudeAuthFailureFallsBackWithoutRetryingTheLogin in 37605014029,
TestClaudeLastWordsAreRead in 37464400652; 37612795871 got the same
failure as "broken pipe"). The Claude Code stand-in had already ended
when the first prompt was written, and Wait had closed its stdin.

It never ran. On the fork's macOS runners, a debug build that recorded
the process's status at the failed write caught 8 cases in 10 jobs.
Each was "signal: segmentation fault", under 1ms of CPU, nothing on
stderr, with no magpie abort or group kill. The crash report
(gateway.race-*.ips) says "crashed on child side of fork pre-exec":

  __tsan::TraceSwitchPartImpl
  syscall.rawSyscall
  syscall.forkAndExecInChild
  syscall.forkExec
  os.StartProcess
  exec.(*Cmd).Start
  proc.StartTree
  gateway.(*subscriptionRun).launch

This is golang/go#79804. From Go 1.26.0, darwin's raw syscall wrappers
are instrumented under -race, and forkAndExecInChild calls them in the
child of fork. Go 1.26.5 marks them //go:norace (#79806); go.mod's
1.26.3, which setup-go builds CI with, has the bug. Only -race test
binaries on macOS are affected, so released builds never were. Any
os/exec start in a macOS race test could hit it; the Claude
subscription tests were where it surfaced. Local runs on go1.27.1
couldn't reproduce it, because that release already has the fix.

1.26.8 is the latest 1.26 patch release.
2026-10-08 06:48:55 +08:00

59 lines
2.4 KiB
AMPL

module github.com/yetone/magpie
go 1.26.8
require (
github.com/Calcium-Ion/moejs v0.1.0-alpha.4
github.com/charmbracelet/bubbles v0.21.1
github.com/charmbracelet/bubbletea v1.3.10
github.com/charmbracelet/lipgloss v1.1.1-0.20250404203927-76690c660834
github.com/go-ole/go-ole v1.3.0
github.com/godbus/dbus/v5 v5.2.2
github.com/klauspost/compress v1.18.3
github.com/pelletier/go-toml/v2 v2.2.4
github.com/tidwall/gjson v1.19.0
github.com/tidwall/jsonc v0.3.3
github.com/wailsapp/wails/v3 v3.0.0-beta.24
golang.org/x/sys v0.46.0
golang.org/x/term v0.44.0
golang.org/x/text v0.39.0
gopkg.in/yaml.v3 v3.0.1
modernc.org/sqlite v1.44.3
)
require (
git.sr.ht/~jackmordaunt/go-toast/v2 v2.0.3 // indirect
github.com/adrg/xdg v0.5.3 // indirect
github.com/atotto/clipboard v0.1.4 // indirect
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
github.com/charmbracelet/colorprofile v0.4.1 // indirect
github.com/charmbracelet/x/ansi v0.11.5 // indirect
github.com/charmbracelet/x/cellbuf v0.0.15 // indirect
github.com/charmbracelet/x/term v0.2.2 // indirect
github.com/clipperhouse/displaywidth v0.9.0 // indirect
github.com/clipperhouse/stringish v0.1.1 // indirect
github.com/clipperhouse/uax29/v2 v2.5.0 // indirect
github.com/coder/websocket v1.8.14 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/lucasb-eyer/go-colorful v1.3.0 // indirect
github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-localereader v0.0.1 // indirect
github.com/mattn/go-runewidth v0.0.19 // indirect
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
github.com/muesli/cancelreader v0.2.2 // indirect
github.com/muesli/termenv v0.16.0 // indirect
github.com/ncruces/go-strftime v1.0.0 // indirect
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/tidwall/match v1.1.1 // indirect
github.com/tidwall/pretty v1.2.0 // indirect
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f // indirect
modernc.org/libc v1.67.6 // indirect
modernc.org/mathutil v1.7.1 // indirect
modernc.org/memory v1.11.0 // indirect
)