Bot releases are hidden (Show)
Full Changelog: https://github.com/cloudflare/tableflip/compare/v1.2.2...v1.2.3
Published by lmb over 3 years ago
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.
Published by lmb over 3 years ago
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.
Published by lmb over 4 years ago
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.
Published by lmb over 4 years ago
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.