When you try to change a file that’s currently running, it used to say text file busy. Example:

First terminal:

$ cc -Wall -Wextra -o test test.c
$ cp test run
$ ./run

Second terminal:

$ cp test run
cp: cannot create regular file 'run': Text file busy

But on my machines today, it crashes the running program. 🤨 As soon as I run the cp, I get a coredump:

$ ./run
... time passes, I do "cp test run" in a second terminal ...
Bus error (core dumped)

How odd. Another mystery to solve …

⤋ Read More

This changed between linux-6.10.10.arch1-1 and linux-6.11.arch1-1 … Don’t have the time now to do a proper bisect. 🫤

⤋ Read More

It’s intentional:

Matching the behavior of most Unix systems, the Linux kernel has traditionally prevented writes to an executable file that is in use by a process somewhere in the system; that is the source of the “text file busy” message that some readers may have seen. This restriction is intended to prevent unpleasant surprises in running programs. Kernel developers have been phasing out this restriction for a few years, mostly because it does not really protect anything. As of 6.11, the kernel will no longer prevent writes to busy executable files; see this changelog for a lot more details.

Hm.

⤋ Read More

Not sure I’m happy with this.

Take this, for example:

https://codeberg.org/dwl/dwl/src/branch/main/Makefile#L64

The install target of a Wayland compositor uses cp to copy the compiled binary to your bin directory. So, as of Linux 6.11, when you recompile this compositor and reinstall it, it will crash your entire Wayland session. 🧟💀🧟

One way to avoid this crash is to use install instead of cp. install calls unlink() before copying the data, thus avoiding this situation entirely. Not all Makefiles do that, though.

⤋ Read More

Just tried it: It did indeed crash my Wayland session and, since Wayland compositors are sensitive and critical, it froze all input devices. Only way to recover was to SSH into that machine and reboot it. 🤦

⤋ Read More

I guess the question now becomes;

Why does it cause the running process to crash?

⤋ Read More

Participate

Login to join in on this yarn.