RepoJournal
Go

@golang

Go and the standard library — backend infrastructure at scale

Pick a date

The Wire · Showcase

GOPLS SANDBOX GETS EMERGENCY STABILITY FIX AS PLAYGROUND OVERHAULS DEPLOYMENT

By RepoJournal · Filed · About Go

Alan Donovan Alex Putman Madeline Kalil Damien Neil harjoth Hana Kim ismailshadow +1
8 people shipped this

The playground sandbox can no longer hang on container timeouts, and gopls is cleaning up internal linkname hacks that were recipes for trouble.

The playground sandbox now closes its pipe writer when containers timeout or exit, unblocking pending reads that were causing the entire process to hang [1]. This is paired with a broader sandbox modernization: Docker installation now uses the official apt repository instead of deprecated utilities, the Makefile supports dynamic image tags, and Container-Optimized OS deployments have switched from the defunct gce-container-declaration (Konlet) metadata to native systemd services [2] [3]. On the tools side, gopls is eliminating technical debt by inverting the import relationship between typesinternal and typeutil, removing the linkname hack that was a vulnerability vector and simplifying ForEachElement to eliminate the TypeMap dependency [4]. The semantic tokens implementation got two coordinated fixes: gopls now respects client capabilities for token types and modifiers [5], with release notes properly documented [6]. Smaller but important: the embedlit modernizer no longer introduces syntax errors on multi-assignment initializations [7], freesymbols switched to html/template to eliminate escaping mistakes [8], and the dns/dnsmessage parser added boundary checks to prevent out-of-bounds reads on malformed SVCB records [9].

Action items

References

  1. [1] sandbox: prevent startContainer from hanging on timeout golang/playground
  2. [2] sandbox: parameterize image tags and update docker install golang/playground
  3. [3] sandbox: replace deprecated Konlet with systemd service in cloud-init golang/playground
  4. [4] internal/typesinternal: avoid linkname hacks golang/tools
  5. [5] gopls: respect client capabilities for semtok enabled tokens and mods golang/tools
  6. [6] gopls/doc/release: semtok ClientCapabilities change release notes golang/tools
  7. [7] go/analysis/passes/modernize: embedlit - skip multi assigns and decls golang/tools
  8. [8] gopls/internal/golang: freesymbols: use html/template golang/tools
  9. [9] dns/dnsmessage: add boundary check in unpackSVCBResource golang/net

More from @golang

Daily updates, in your inbox

Follow Go

Go and the standard library — backend infrastructure at scale We'll email you a link to confirm first.

Free. Confirm via email. Unsubscribe in one click.

— or follow the whole beat:

Elsewhere on the wire