RepoJournal
Go

@golang

Go and the standard library - backend infrastructure at scale

Keep up with Go in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

One email a day. Unsubscribe in one click.

Pick a date

Topics: Go Infrastructure Full archive →

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.

One email a day. Unsubscribe in one click.

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

Quick answers

What shipped 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. In total, 11 commits landed.
What were the notable Go updates?
acme/autocert: fix data race in Manager.createCert, gopls/internal/telemetry: skip the telemetry test on Plan 9, and internal/diff: use ape/patch and ape/diff on Plan 9.

More from @golang

Daily updates, in your inbox

Follow Go

Keep up with Go in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

One email a day. Unsubscribe in one click. Read a past issue →

Elsewhere on the wire

Want every project, not just this one?

We use privacy-friendly analytics (Google Analytics, IP-anonymized) to see which pages help readers. No ads, and we never sell your data. See our Privacy Policy.