Repository navigation
FreeWilly 1.0.13
Installing 1.0.12 over a running 1.0.11 left the engine down again, for the same reason as the
release before it and in a shape that release's own fix could not see.
A start no longer races the install that is replacing the engine
1.0.12 taught a start to launch the daemon again where the shell had exited 126, which is what a
shell says when it cannot execute a file another process holds open for writing. That covered
dockerd and nothing else.
Measured on 31 August 2026, upgrading 1.0.11 to 1.0.12: the shell executed dockerd perfectly,
dockerd then forked containerd against a file the installer still held, and the whole thing
came back as an ordinary exit 1. The retry never fired. The journal read:
the daemon exited while starting: wsl.exe exited 1, and /var/log/dockerd.log ends:
failed to start containerd: fork/exec /usr/local/bin/containerd: text file busy
The timestamps name the cause. The failure is stamped 15:44:32, and provision.log, which is
written when provisioning finishes, is stamped 15:44:34: the unpack was still running when the
start asked for a daemon. The engine tarball holds eight binaries and containerd is the third of
them, so four seconds in, dockerd had not been reached yet and the copy on disk was the previous
version's, intact and executable. That is why one ran and the other did not.
The provisioner now says when it is writing, and a start waits for it. The lock is held across
the distribution import and the engine unpack, and released the moment the last write lands. A
start waits up to twenty seconds for it, out of the budget it was already given rather than on top
of it, and the journal carries the wait only where there was one.
A start also relaunches on what the daemon's own log says, and not only on the exit code. Any
binary the daemon forks being busy now reads as the same condition, matched whichever way it is
spelled: the shell writes Text file busy and Go's os/exec writes it lowercased. The bound of
three attempts is unchanged, because that log is appended to across every launch a distribution has
ever had, and a stale line must not be able to retry forever.
Neither half replaces the other. Three pauses of 700ms cannot outlast an unpack of 85 MB, so the
retry alone would not have saved either failure that day; and a start cannot know what else on the
machine might hold a file, so the lock alone would cover nothing but this product's own installer.
Install
Download FreeWilly-Setup-1.0.13.exe and check it against SHA256SUMS.txt. Upgrading keeps the
distribution and everything in it.