Skip to content

Releases: cloudflare/tableflip

Allow getting all inherited files

30 Mar 23:54
b3a0d54
Compare
Choose a tag to compare

What's Changed

  • Fix flaky TestFilesAreNonblocking on CI by @lmb in #62
  • Add function to return all inherited files by @hunts in #68
  • Fix gofmt issues by @jdesgats in #69
  • Update notes about the journald bug by @hunts in #70

Full Changelog: v1.2.2...v1.2.3

Fix passing arguments to child processes

25 Jan 14:26
@lmb lmb
Compare
Choose a tag to compare

The previous release introduces a bug when starting a child process: the argument vector (aka argv) is populated incorrectly. The result is that processes that use argv will likely fail and processes that don't use argv will fail to upgrade.

Fix clearing O_NONBLOCK on upgrade

25 Jan 09:25
@lmb lmb
Compare
Choose a tag to compare

The Go runtime has annoying behaviour around setting and clearing
O_NONBLOCK: exec.Cmd.Start() ends up calling os.File.Fd() for any
file in exec.Cmd.ExtraFiles. os.File.Fd() disables both the use
of the runtime poller for the file and clears O_NONBLOCK from
the underlying open file descriptor.

This can lead to goroutines hanging in a parent process, after at least
one failed upgrade. The bug manifests by goroutines which rely on
either a deadline or interruption via Close() to be unblocked being stuck
in read or accept like syscalls,. As far as I can tell we've not experienced
this problem in production, so it's most likely quite rare.

Support net.PacketConn

01 May 09:00
@lmb lmb
Compare
Choose a tag to compare

Add built-in support for passing net.PacketConn around. This was possible using Fds.AddConn, but the new PacketConn support will also do correct unlinking of Unix domain sockets if necessary.

Allow compiling programs using tableflip on Windows

28 Apr 09:23
@lmb lmb
Compare
Choose a tag to compare

So far, developers working on a code base that uses tableflip on a Windows machine had a poor experience. Editing and building the program didn't work. Thanks to @kohenkatz the library compiles on Windows without errors, and tableflip.New returns an error on Windows. Developers can use this to shim out the upgrader using the new testing subpackage.

v1.0.0

16 Jul 10:58
@lmb lmb
Compare
Choose a tag to compare

Tag a v1. The API has been stable for a few months now, so I feel confident in locking it in.