The Wire · Showcase
HTTP/2 API RESTORED FOR GO 1.27 COMPATIBILITY
By RepoJournal · Filed · About Go
Go's http2 package accidentally dropped critical symbols in the 1.27 build — they're back now, preserving compatibility for applications relying on ErrNoCachedConn, ErrPushLimitReached, and friends.
The http2 wrapping implementation in golang/net [1] lost four error types and one constant during refactoring, breaking any code that caught or referenced them. Cherry Mui's team restored ErrNoCachedConn, ErrPushLimitReached, ErrRecursivePush, and TrailerPrefix to their original locations, plus added FrameWriteRequest methods back as no-ops to prevent runtime surprises. Separately, QUIC buffer slicing is now fixed [2] — overlapping stream data was being written multiple times instead of deduplicated, causing spurious FINAL_SIZE_ERROR crashes. On the stdlib side, importer.ForCompiler is officially un-deprecated [3] after the deprecation warning was meant to apply only to a parameter, not the entire function. Runtime/cgo also regained critical acquire/release synchronization around malloc [4] that was accidentally dropped, fixing concurrency bugs in #67800 and #78479.
Action items
- → Update golang/net to pick up http2 symbol restoration and QUIC fixes golang/net [immediate]
- → Rebuild with latest Go tip if using runtime/cgo — malloc synchronization is restored golang/go [plan]
- → Monitor compiler inlining and ARM64 changes for potential codegen differences golang/go [monitor]
References
- [1] http2: avoid API changes when built with go1.27 golang/net
- [2] quic: fix buffer slicing when handling overlapping stream data golang/net
- [3] go/importer: un-deprecate importer.ForCompiler golang/go
- [4] runtime/cgo: add acquire/release back around malloc golang/go
FAQ
- What changed in Go on May 9, 2026?
- Go's http2 package accidentally dropped critical symbols in the 1.27 build — they're back now, preserving compatibility for applications relying on ErrNoCachedConn, ErrPushLimitReached, and friends.
- What should Go teams do about it?
- Update golang/net to pick up http2 symbol restoration and QUIC fixes • Rebuild with latest Go tip if using runtime/cgo — malloc synchronization is restored • Monitor compiler inlining and ARM64 changes for potential codegen differences
- Which Go repositories shipped on May 9, 2026?
- golang/net, golang/go