RepoJournal
Go

@golang

Go and the standard library — backend infrastructure at scale

Pick a date

The Wire · Showcase

GOLANG PATCHES CRYPTO RACE, TOOLS FIXES PLAN 9 COMPATIBILITY

By RepoJournal · Filed · About Go

Go's crypto/autocert library ships a critical data race fix while the tools team systematically hardens Plan 9 support across gopls and the standard library.

The most pressing fix landed in golang/crypto: Manager.createCert() had a classic data race where concurrent goroutines for the same domain were reading state.locked without holding a lock [1]. This is the kind of bug that only surfaces under load and causes mysterious production failures. The fix removes the racy field entirely and computes ownership state under proper synchronization. Meanwhile, golang/tools is in heavy cleanup mode for Plan 9. gopls/internal/telemetry now skips tests that depend on memory-mapped files, which Plan 9 doesn't support [2]. The internal/diff package swapped out Plan 9's incompatible diff command for ape/diff from the POSIX compatibility layer [3]. These aren't edge-case fixes: Plan 9 is a tier-1 platform for Go, and every test failure compounds. Over in golang/text, unicode/norm hit an infinite loop bug when processing invalid input because the character size could be zero [4]. The fix changes how the package reports invalid characters so downstream code doesn't have to check for zero-width characters everywhere. golang/go also shipped a TLS privacy hardening: ECH (Encrypted Client Hello) will no longer include the PSK extension in the outer hello, preventing attackers from harvesting and replaying outer client hellos [5]. None of these are flashy features, but they're exactly the kind of fixes that prevent 3 AM pages.

Action items

References

  1. [1] acme/autocert: fix data race in Manager.createCert golang/crypto
  2. [2] gopls/internal/telemetry: skip the telemetry test on Plan 9 golang/tools
  3. [3] internal/diff: use ape/patch and ape/diff on Plan 9 golang/tools
  4. [4] unicode/norm: avoid infinite loop on invalid input golang/text
  5. [5] crypto/tls: omit PSK in ECH outer client hello golang/go

FAQ

What changed in Go on June 27, 2026?
Go's crypto/autocert library ships a critical data race fix while the tools team systematically hardens Plan 9 support across gopls and the standard library.
What should Go teams do about it?
Review crypto/autocert changes if you use autocert in production • If you maintain Plan 9 builds of Go tools, pull golang/tools updates • Monitor unicode/norm for potential input handling edge cases in your codebase
Which Go repositories shipped on June 27, 2026?
golang/crypto, golang/tools, golang/text, golang/go

Related across the cluster

For your repos

The showcase is a teaser.
Your wire is the product.

Same engine. Different stack. Below: what changes when the wire is yours.

Showcase wire

  • 14 famous open source orgs
  • One wire per day
  • Public, generic
  • Read on the web, when you remember

Your wire

  • Up to 1,500 of your repos - orgs, deps, vendors
  • Morning and evening briefs
  • Action items routed to your team
  • Slack delivery, email, breaking-news CVE alerts

Want a hands-on demo first? Ask a current user for an invite link.