LWN: Comments on "Date bug affects Ubuntu 25.10 automatic updates" https://lwn.net/Articles/1043103/ This is a special feed containing comments posted to the individual LWN article titled "Date bug affects Ubuntu 25.10 automatic updates". en-us Fri, 24 Oct 2025 15:03:33 +0000 Fri, 24 Oct 2025 15:03:33 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net The next Ubuntu release... https://lwn.net/Articles/1043268/ https://lwn.net/Articles/1043268/ rahulsundaram <div class="FormattedComment"> <span class="QuotedText">&gt; I blame Canonical for precipitating a second "We told you KDE 4.0 was a developer preview, not an end-user release" situation. </span><br> <p> I don't see anything in the KDE 4 announcement to indicate that it was a developer preview. Where is this coming from?<br> </div> Fri, 24 Oct 2025 15:02:28 +0000 uutils is doing well, but needs to be carefully managed https://lwn.net/Articles/1043267/ https://lwn.net/Articles/1043267/ pixelbeat Ah right. Note the default GNU coreutils setup avoids that issue by using a wrapper script rather than symlinks. That's the default behavior with ./configure --enable-single-binary in GNU coreutils. I.e. it would install a file with the following contents at /usr/bin/true <pre>#!/usr/bin/coreutils --coreutils-prog-shebang=true</pre> Fri, 24 Oct 2025 14:58:28 +0000 The next Ubuntu release... https://lwn.net/Articles/1043240/ https://lwn.net/Articles/1043240/ ssokolow And yet I don't think that's how it would go for two reasons: <ol> <li>uutils began as a pile of practice projects, not a minmax'd effort to produce a 1-to-1 replacement the most efficient way possible</li> <li>They already <b>know</b> that it doesn't pass the full GNU coreutils test suite yet.</li> </ol> I blame Canonical for precipitating a second "We told you KDE 4.0 was a developer preview, not an end-user release" situation. Fri, 24 Oct 2025 13:56:41 +0000 uutils has more overhead https://lwn.net/Articles/1043239/ https://lwn.net/Articles/1043239/ pixelbeat Yes agreed, though it's a different decision with uutils as the separate binaries are significantly larger. <p>Note also that GNU coreutils can be built as a multi-call binary. Testing the performance of that here shows that the overhead is not rust specific, but rather the dynamic linker overhead loading the full set of libs linked by the multi-call binaries</p> <pre> $ ./configure --enable-single-binary --quiet &amp;&amp; make -n $(nproc) $ time seq 10000 | xargs -n1 src/true real 0m21.595s user 0m7.437s sys 0m14.151s </pre> Fri, 24 Oct 2025 13:55:34 +0000 uutils has more overhead https://lwn.net/Articles/1043237/ https://lwn.net/Articles/1043237/ ebee_matteo <div class="FormattedComment"> From <a href="https://github.com/uutils/coreutils:">https://github.com/uutils/coreutils:</a><br> <p> <span class="QuotedText">&gt; If you don't want to build the multicall binary and would prefer to build the utilities as individual binaries, that is also possible. </span><br> <p> This is a decision from the distribution to take, I would say.<br> </div> Fri, 24 Oct 2025 13:41:43 +0000 uutils is doing well, but needs to be carefully managed https://lwn.net/Articles/1043214/ https://lwn.net/Articles/1043214/ juliank <div class="FormattedComment"> Yes, a bunch of things disabled some scripts in .d directories by creating symlinks to /bin/true in their place.<br> <p> Because we dispatch by argv[0] in the multi-call binary we then did not find the binary because the tool was invoked with the symlink name.<br> <p> We do have a hardlink farm now and can resolve based on hardlink where available but it's a bit messy because it requires /proc to be mounted.<br> </div> Fri, 24 Oct 2025 13:31:42 +0000 The next Ubuntu release... https://lwn.net/Articles/1043212/ https://lwn.net/Articles/1043212/ dralley <div class="FormattedComment"> There is a net benefit in getting embedded device code written in a language with less security issues (not that coreutils is a significant culprit). I wouldn't be upset at all if embedded devices used it.<br> </div> Fri, 24 Oct 2025 13:25:20 +0000 Don't fix what aint broke https://lwn.net/Articles/1043210/ https://lwn.net/Articles/1043210/ LtWorf <div class="FormattedComment"> Not only C is still there. Job offers in C outnumber the job offers in Rust (at least in my area).<br> </div> Fri, 24 Oct 2025 13:14:41 +0000 The next Ubuntu release... https://lwn.net/Articles/1043203/ https://lwn.net/Articles/1043203/ joib <div class="FormattedComment"> There's already toybox as a BSD-licensed busybox clone, used e.g. in android. And of course all the BSD's have their own versions of the core utilities. So for better or worse, that ship as truly sailed I think.<br> </div> Fri, 24 Oct 2025 12:13:17 +0000 uutils is doing well, but needs to be carefully managed https://lwn.net/Articles/1043197/ https://lwn.net/Articles/1043197/ makapuf <div class="FormattedComment"> Yes, this will allow easy feature testing with test true == false <br> <p> /s<br> </div> Fri, 24 Oct 2025 11:31:02 +0000 The next Ubuntu release... https://lwn.net/Articles/1043193/ https://lwn.net/Articles/1043193/ ballombe <div class="FormattedComment"> <span class="QuotedText">&gt; But that's a whole other debate... </span><br> It is not an other debate. This bug is a direct consequence of this decision.<br> If they were willing to be a GNU GPL derivative of the original coreutils, they could port the C code to rust instead of rewriting it from first principle, which would avoid introduce fresh bugs.<br> </div> Fri, 24 Oct 2025 11:10:33 +0000 uutils has more overhead https://lwn.net/Articles/1043195/ https://lwn.net/Articles/1043195/ pixelbeat Interesting, I hadn't realized /bin/true was still GNU. Perhaps this is a performance consideration, as <i>all</i> uutils have a larger startup overhead than their GNU equivalents, due mainly to the large multicall binary being used (due to rust binaries being significantly larger). For example: <pre> $ time seq 10000 | xargs -n1 true real 0m8.634s user 0m3.178s sys 0m5.616s $ time seq 10000 | xargs -n1 uu_true real 0m22.137s user 0m6.542s sys 0m15.561s </pre> It irks me to see mention of rust implementations being faster, when at a fundamental level like this they're slower and add significant overhead to every command run Fri, 24 Oct 2025 11:09:31 +0000 uutils is not doing well https://lwn.net/Articles/1043189/ https://lwn.net/Articles/1043189/ collinfunk <div class="FormattedComment"> Well, GNU true returns non-zero in some cases. :)<br> <p> $ /bin/true; echo $?<br> 0<br> $ /bin/true --help &gt; /dev/full; echo $?<br> true: write error: No space left on device<br> 1<br> <p> </div> Fri, 24 Oct 2025 10:18:23 +0000 uutils is not doing well https://lwn.net/Articles/1043180/ https://lwn.net/Articles/1043180/ jengelh <div class="FormattedComment"> <span class="QuotedText">&gt;/usr/bin/false is a symlink to the Rust version, but /usr/bin/true is a symlink to the GNU C version</span><br> <p> uutils-md5sum was recently broken too[1], so it is only natural to make a sensitive program like /bin/true (only one very specific return value is allowed!) be based on a known-good implementation.<br> <p> [1] <a rel="nofollow" href="https://www.phoronix.com/news/Ubuntu-25.10-Coreutils-Makeself">https://www.phoronix.com/news/Ubuntu-25.10-Coreutils-Make...</a><br> </div> Fri, 24 Oct 2025 09:27:16 +0000 uutils date bug timeline and root cause https://lwn.net/Articles/1043179/ https://lwn.net/Articles/1043179/ cyperpunks <div class="FormattedComment"> uutils has been implemented without creating a robust and solid option parser first?<br> <p> <p> </div> Fri, 24 Oct 2025 09:19:57 +0000 Don't fix what aint broke https://lwn.net/Articles/1043176/ https://lwn.net/Articles/1043176/ alx.manpages <div class="FormattedComment"> <span class="QuotedText">&gt; As for C not disappearing, it feels like we are already in an era where most young people below the age of 35-40 or so do not learn it any more</span><br> <p> I'm 32, and I went to university with people 7 years younger than me, and C was still the main language we studied there.<br> <p> I've heard that some schools have reduced the amount of C courses, but it's still there.<br> <p> <span class="QuotedText">&gt; so you might be surprised how quickly the pool of potential volunteer maintainers will deplete for boring, mature C projects.</span><br> <p> While the number of people knowing C enough might reduce, it might also increase the ratio of C programmers that know C very well. Self-selection can be a good thing. I don't expect the amount of C experts to diminish significantly.<br> <p> <span class="QuotedText">&gt; These tools need maintenance and rewriting them in something with a saner build system than C has to offer after being around for 50 years certainly will make this easier.</span><br> <p> C has evolved quite a lot in these 50 years, and I'm not sure Rust is better than C. Most of the issues people complain about C are in reality issues with old C, or low quality compilers. Some issues remain in the latest GCC, but there's work on having an even better C in the following years.<br> <p> Incremental improvements are better than entirely jumping to a new language, and this issue with Rust's date(1) is an example of why we should keep improving the C version, which is almost bug-free, instead of writing bugs in a different language.<br> <p> &lt;<a href="https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/">https://www.joelonsoftware.com/2000/04/06/things-you-shou...</a>&gt;<br> </div> Fri, 24 Oct 2025 08:48:46 +0000 The next Ubuntu release... https://lwn.net/Articles/1043177/ https://lwn.net/Articles/1043177/ leromarinvit <div class="FormattedComment"> It takes away one possible avenue to try and get vendors to release embedded firmware source code. Much like Busybox probably isn't particularly monetizable, but it has been used successfully to get vendors to release sources - including e.g. custom kernel patches that are much more interesting than Busybox itself.<br> </div> Fri, 24 Oct 2025 08:46:06 +0000 uutils date bug timeline and root cause https://lwn.net/Articles/1043162/ https://lwn.net/Articles/1043162/ taladar <div class="FormattedComment"> If they had used to clap derive way of specifying arguments it would likely have been caught as an unused case but presumably that wasn't an option to stay compatible with the old interface behavior exactly.<br> </div> Fri, 24 Oct 2025 07:49:02 +0000 Don't fix what aint broke https://lwn.net/Articles/1043159/ https://lwn.net/Articles/1043159/ taladar <div class="FormattedComment"> If they are done then why are there so many commits in the repo that the short version on <br> <p> <a href="https://gitweb.git.savannah.gnu.org/gitweb/?p=coreutils.git">https://gitweb.git.savannah.gnu.org/gitweb/?p=coreutils.git</a><br> <p> showing the last 16 commits doesn't even go back a week of development history?<br> <p> These tools need maintenance and rewriting them in something with a saner build system than C has to offer after being around for 50 years certainly will make this easier.<br> <p> As for C not disappearing, it feels like we are already in an era where most young people below the age of 35-40 or so do not learn it any more so you might be surprised how quickly the pool of potential volunteer maintainers will deplete for boring, mature C projects.<br> </div> Fri, 24 Oct 2025 07:40:17 +0000 Don't fix what aint broke https://lwn.net/Articles/1043152/ https://lwn.net/Articles/1043152/ eru <blockquote> <i>Rewriting C utilities that have been battle-tested for decades in Rust might be a good idea in the long term,</i> </blockquote> <p> I fail to see why it would be a good idea even in the long term. These utilities are <b>done</b>, the specifications do not change, or change very little. The only valid reason might be a future situation, where support for the C language starts disappearing, which is totally a fantasy scenario. C is too entrenched for that to happen within the expected lifetime of our technical civilisation. Fri, 24 Oct 2025 06:30:16 +0000 uutils is doing well, but needs to be carefully managed https://lwn.net/Articles/1043151/ https://lwn.net/Articles/1043151/ mb <div class="FormattedComment"> Rust is not the one and only truth, yet.<br> </div> Fri, 24 Oct 2025 06:05:38 +0000 uutils is doing well, but needs to be carefully managed https://lwn.net/Articles/1043150/ https://lwn.net/Articles/1043150/ Keith.S.Thompson <div class="FormattedComment"> Oddly, /usr/bin/false is a symlink to the Rust version, but /usr/bin/true is a symlink to the GNU C version.<br> <p> I wonder whether that was a deliberate decision.<br> <p> ("true" and "false" are bash builtins, so the commands under /usr/bin probably aren't used very often.)<br> </div> Fri, 24 Oct 2025 04:04:08 +0000 The next Ubuntu release... https://lwn.net/Articles/1043141/ https://lwn.net/Articles/1043141/ welinder <div class="FormattedComment"> Agreed. And it's not even that the C versions are bug free -- probably not, but who knows? -- but that whatever bugs there might exist have been adapted to. New code, new bugs.<br> <p> And it's humbling to see that a silly little bug deep in date can silently break unattended security updates!<br> </div> Fri, 24 Oct 2025 01:45:59 +0000 The next Ubuntu release... https://lwn.net/Articles/1043137/ https://lwn.net/Articles/1043137/ dralley <div class="FormattedComment"> I don't think software like the coreutils is particularly monetizable these days. Especially if the whole point of it is to behave exactly the same as existing software. Meh.<br> </div> Thu, 23 Oct 2025 23:57:34 +0000 uutils is doing well, but needs to be carefully managed https://lwn.net/Articles/1043134/ https://lwn.net/Articles/1043134/ csigler <div class="FormattedComment"> <span class="QuotedText">&gt; I wish them well, but this needs to be carefully managed.</span><br> <p> I cannot possibly (imaginarily) upvote this comment enough. <br> <p> For those familiar with the 1976 movie "Network":<br> <p> "You have meddled with the primal forces of Unix, and _you_will_atone_!!!"<br> <p> Clemmitt<br> </div> Thu, 23 Oct 2025 23:26:22 +0000 The next Ubuntu release... https://lwn.net/Articles/1043129/ https://lwn.net/Articles/1043129/ dskoll <p>I don't have anything against Rust (nor against C), but I do think it's unfortunate that the Rust utilities are licensed under the MIT license rather than the GPL. But that's a whole other debate... Thu, 23 Oct 2025 22:21:58 +0000 uutils date bug timeline and root cause https://lwn.net/Articles/1043123/ https://lwn.net/Articles/1043123/ geofft <div class="FormattedComment"> I think it would be interesting for Ubuntu to do (at some point, not right this second) an incident report / postmortem on how this happened.<br> <p> Looks like this was originally reported in <a href="https://pad.lv/2127970">https://pad.lv/2127970</a> on October 16, exactly one week ago and also exactly one week after Ubuntu 25.10's release. The reporter originally mentioned the bug in the context of a homegrown backup script that was failing silently, and they got the fix into the proposed stable update repository yesterday, with an (understandable) argument about why it wasn't same-day levels of urgent.<br> <p> This morning, someone pointed out that it breaks unattended-upgrades. It seems to me that it was only at this point that it was tracked as a security issue, and the package is now available in both the (prod) stable updates repository and the more minimal security updates repository.<br> <p> The actual bug itself is simply that support for `date -r &lt;file&gt;` wasn't implemented. The issue <a href="https://github.com/uutils/coreutils/issues/8621">https://github.com/uutils/coreutils/issues/8621</a> and the pull request implementing support <a href="https://github.com/uutils/coreutils/pull/8630">https://github.com/uutils/coreutils/pull/8630</a> were both filed on the same day, September 12 of this year, and it was reviewed and merged into main two days later. This, understandably, postdates whichever release Ubuntu snapshotted.<br> <p> I think I am mostly surprised that the command silently accepted -r and did nothing, and indeed from the actual diff (<a href="https://github.com/uutils/coreutils/commit/88a7fa7adfa048dabdffc99451d7aba1d9e6a9b6">https://github.com/uutils/coreutils/commit/88a7fa7adfa048...</a>) it's pretty clear that the argument parser had support for it but it wasn't wired up to do anything. If the command had instead returned an argument parsing error, I think this would have been caught a lot quicker. It does seem a little bit odd that whoever implemented this in the argument parser didn't at least add an "if -r, throw 'todo'" case. But it's also interesting that this was not statically caught. The Rust compiler is pretty good at warning and complaining about unused variables. (To be fair, most C compilers and many other languages are too, though anecdotally these warnings seem less noisy in Rust and I've seen more codebases in Rust where this is a hard failure than C codebases using -Werror. Also, Rust has #[must_use], if you want to be thorough.) However, there wasn't actually an unused variable here; you can see that you get the value out of the parsed-arguments object by asking for the value of the flag.<br> <p> I wonder if it's worth thinking about an argument-parsing API in Rust that would raise an unused-variable warning at compile time if a parsed command-line flag or argument is never used in the code. It might also be possible to do this with the existing parser with a sufficiently clever linter. Either way, the lack of compile-time detection of this bug feels at odds with the philosophy of a Rust rewrite of coreutils, i.e., that there's merit in having tools do the checking instead of trusting and expecting people to write perfect code.<br> <p> I also think it would be very much worth it for Ubuntu and the uutils developers to manually do an audit for all arguments that are parsed in an argument parser but not actually implemented. If this pattern happened once, it likely isn't the only case.<br> </div> Thu, 23 Oct 2025 22:00:09 +0000 The next Ubuntu release... https://lwn.net/Articles/1043122/ https://lwn.net/Articles/1043122/ geofft <div class="FormattedComment"> Which is why I'm glad they're doing it! It seems like the kind of thing that one can be understandably scared to ever do, and I say this as one of the folks involved with getting some Rust in the Linux kernel.<br> </div> Thu, 23 Oct 2025 21:38:31 +0000 No problems for oldschool Linux users ... https://lwn.net/Articles/1043121/ https://lwn.net/Articles/1043121/ JMB <div class="FormattedComment"> It is interesting that it seems that automatic updates are of high priority.<br> For Smartphone Junkies that may be true (due to fear of missing out),<br> but for experts there is no need to get even security fixes in less than a week.<br> <p> And concerning servers ... in most cases even extreme security relevant problems<br> are not fixed due to other priorities anyway ... form frozen zone ... to ice age.<br> <p> At least the problem shows that it is not fuitile to have tested the new Rust code ...<br> but still wondering if concerning all bugs Rust really have a positive benefit<br> for experienced coders ... seems more a hype than something which can be prooved.<br> </div> Thu, 23 Oct 2025 21:35:12 +0000 uutils is doing well, but needs to be carefully managed https://lwn.net/Articles/1043108/ https://lwn.net/Articles/1043108/ pixelbeat <div class="FormattedComment"> Note ubuntu 25.10 is still using GNU for the "scary" commands like cp, mv, rm, ... They should rip that band aid off sooner rather than later, so that any data corruption possibilities are identified before ubuntu 25.10 becomes more established or the next LTS release becomes imminent. Copying a file on unix has lots of edge cases multiplied by various file sytems and even kernel bugs etc.<br> <p> Then there are fundamental issues with SIGPIPE handling in all the uutils <a rel="nofollow" href="https://github.com/uutils/coreutils/issues/8919">https://github.com/uutils/coreutils/issues/8919</a><br> <p> Also there are questionable interface changes being added like 12 ways to get a sha3 <a rel="nofollow" href="https://github.com/uutils/coreutils/issues/8984">https://github.com/uutils/coreutils/issues/8984</a><br> <p> I wish them well, but this needs to be carefully managed.<br> </div> Thu, 23 Oct 2025 21:12:28 +0000 The next Ubuntu release... https://lwn.net/Articles/1043106/ https://lwn.net/Articles/1043106/ dskoll <p>... will be called Grateful Guinea-Pig <p>But seriously. Rewriting C utilities that have been battle-tested for decades in Rust might be a good idea in the long term, but anyone could have predicted short-term hiccups. Thu, 23 Oct 2025 20:52:03 +0000