This release is about fixing some unintended consequences of switching to Zstandard compression in v5.4.0. More specifically, having our Go code depend on C libraries caused a few failure modes.
- When we first switched to using
fly(which was necessary in order to make use of Zstandard compression), unbeknownst to us,
flystarted to depend on a system library for DNS resolution. This meant that on systems that lacked this library (macOS in particular),
flywould segfault. Furthermore, the system library has different features than the native Go version, so even on systems that had the library, fly would fail to resolve certain names. We fixed these problems by building
flyin a way that would still use
cgobut depend on the native Go DNS resolver concourse/ci#59.
- On the server side, it turns out we had been a bit lax in freeing resources associated with volume streams, but because we had been using pure Go streaming and compression code, the Go garbage collector had helped us out. In switching to a C-based compression library, failing to manually release memory via Go APIs meant that the underlying memory allocated by the C code was never freed, and several folks have observed server-side memory leaks when using v5.4.0. We plugged those holes #4182, #4199.
concourse-5.4.1-darwin-amd64.tgz 61.3 MB
concourse-5.4.1-linux-amd64.tgz.sha1 74 Bytes
fly-5.4.1-darwin-amd64.tgz 10.1 MB
fly-5.4.1-darwin-amd64.tgz.sha1 69 Bytes
fly-5.4.1-linux-amd64.tgz 10.4 MB
fly-5.4.1-linux-amd64.tgz.sha1 68 Bytes
fly-5.4.1-windows-amd64.zip.sha1 70 Bytes