Skip to content

go 1.26 build panics on Windows 10 #11214

@lidel

Description

@lidel

Found this while testing Windows package from

The daemon starts normally, gets to "Daemon is ready", WebUI at https://127.0.0.1:5001/webui works for a short while, then daemon crashes, RPC stops responding.

Some notes below, but need to look at this more closely + reproduce on a different machine.

Crash signature

Exception 0xc0000005 0x8 0x1ce5935180 0x1ce5935180
PC=0x1ce5935180
runtime: g 23791 gp=0x56c75f563c0: unknown pc 0x1ce5935180
  • 0xc0000005 = STATUS_ACCESS_VIOLATION
  • 0x8 = EXCEPTION_EXECUTE_FAULT (DEP violation: CPU attempted to execute non-executable memory)
  • The faulting PC (0x1ce5935180) is outside the binary's code range (legitimate addresses are in 0x7ff6e58xxxxx-0x7ff6e71xxxxx), indicating a corrupted return address on the stack

The crashing goroutine was created by go-yamux/v5.newSession and was doing normal TCP socket I/O through the Windows overlapped I/O path:

internal/poll.(*FD).execIO
  -> internal/syscall/windows.WSAGetOverlappedResult
    -> syscall.SyscallN

Suspecting Go regression on Windows

Go 1.25 introduced a major rework of Windows I/O completion port (IOCP) handling (go#19098). This rework has caused several regressions on Windows that are still being worked through in Go 1.25.x/1.26.x:

  • go#76391 - NewFile hangs on blocked handles (critical release-blocker, multiple CLs fixing execIO internals)
  • go#77142 - overlapped I/O interop issues

The crash happens in internal/poll.(*FD).execIO, which is the code path affected by these regressions. However, the specific bug causing this crash may not be one of the already-reported issues. It could be an unreported runtime bug, or potentially antivirus interference (go#40878 documented identical "unknown pc" crashes caused by AV software on Windows).

Suggested action

  • Ask someone to try to reproduce on Windows 10 or 11
    • If reproducible, file an upstream Go issue with the full crash log so the runtime team can assess whether this is a known or new bug in the IOCP rework
    • Consider building Windows release binaries with Go 1.24.x (last version before the IOCP rework) until the Go 1.25/1.26 Windows I/O issues are resolved

Environment

  • Kubo 0.40.0 (882b7d2a9)
  • Go 1.26.0
  • Windows 10, amd64

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugA bug in existing code (including security flaws)kind/maintenanceWork required to avoid breaking changes or harm to project's status quostatus/blockedUnable to be worked further until needs are mettopic/windowsWindows specific

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions