Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
Ubuntu Bug

Bug in Rust-Based Uutils Broke Ubuntu 25.10 Automatic Update Checks (omgubuntu.co.uk) 50

"Ubuntu's decision to switch to Rust-based coreutils in 25.10 hasn't been the smoothest ride," writes the blog OMG Ubuntu, "as the latest — albeit now resolved — bug underscores." [Coreutils] are used by a number of processes, apps and scripts, including Ubuntu's own unattended-upgrades process, which automatically checks for new software updates. Alas, the Rust-based version of date had a bug which meant Ubuntu 25.10 desktops, servers, cloud and container images were not able to automatically check for updates when configured. Unattended-upgrades hooks into the date utility to check the timestamp of a reference file of when an update check was last run and, past a certain date, checks again. But date was incorrectly showing the current date, always.

A fix has been issued so only Ubuntu 25.10 installs withrust-coreutils 0.2.2-0ubuntu2 (or earlier) are affected.

Bug in Rust-Based Uutils Broke Ubuntu 25.10 Automatic Update Checks

Comments Filter:
  • by david.emery ( 127135 ) on Sunday November 02, 2025 @08:20PM (#65768698)

    Seems to me from reading the article this -should have been caught- by testing against the specification.

    "date -r reports current date instead of date specified by reference file." This should have ben tested, it's not a particularly complex test case.

    • by shanen ( 462549 )

      Your (apparently ignored) FP reminded me of my own bad experience with 25.10. I think the bad experience was basically due to a lack of regression testing leading to more bad experiences with LLMs trying to help me fix the problem.

      The problem I found was lost OSes. Turned out that the new 25.10 default is to disable the os-prober function in GRUB. I started with no idea of where the other partitions had gone, but eventually, with lots of so-called "help" from a couple of so-called "AI" helpers, now I believ

    • I've been doing software engineering for over 20 years now ans, just like unicorns, I'm yet to see a specification document which does more than scratch the surface.

      • I've been doing software engineering for over 20 years now ans, just like unicorns, I'm yet to see a specification document which does more than scratch the surface.

        Then clearly you've not worked in a safety-critical regime, where specifications are required to fully cover behavior sufficient to generate test cases that cover 100% of the requirements, and by extension 100% of the code branches.

        But even in "regular" development, the API specifications I wrote, implemented and tested were all expected to be sufficient to be useful for test and verification.

        Frankly, if you haven't seen this level of specification, I really question if you've been doing "software engineeri

    • by LoneTech ( 117911 ) on Monday November 03, 2025 @01:48PM (#65770364) Homepage
      They've added a (weak) test now. But that's not the start of the stupidity. They added the fake -r option three years ago. The argument parsing has its own model of what's required, while it reports everything in a typeless association list - and nothing was there to read this setting. It's plainly bad architecture, and they're not fixing that.
    • That's amazing, frankly.

      I wrote a simple bash script the other day to handle a video encoding queue, with this line:

      if [[ $(date +%s -r "$file") -lt $(date +%s --date="1 min ago") ]]

      It's running on Debian 12 but to imagine that if it were running on Ubuntu it would have failed?

      Wild that this wasn't caught as soon as the dud utility shipped in a distro. I would have expected somebody's scripts to have failed, they ran it under bash -x and thought, "Oh, boy," then off to file a bug.

      I like the idea of using

      • You can do software engineering in any language, even C or Visual Basic. But it's easier with languages that provide more precision in specification and in behavior. Once you get used to it, strong typing, particularly for scalars (integer types) is your friend. It can catch at compile-time subtle bugs that can be hard to find. Similarly, languages that make it easy to define chunks of code with well defined interfaces/APIs (and that do information hiding on details) is a huge advantage in large (as in

  • TL;DR (Score:5, Funny)

    by fahrbot-bot ( 874524 ) on Sunday November 02, 2025 @08:37PM (#65768710)

    Rust nerds can't get a date. :-)

  • by RightwingNutjob ( 1302813 ) on Sunday November 02, 2025 @08:50PM (#65768726)

    1. Fixing shit that ain't broke
    2. Renaming stuff because reasons
    3. Reinventing the hammer
    4. Assuming every problem is a nail

  • Say it Ain't So! (Score:3, Insightful)

    by HammerOn1024 ( 10137343 ) on Sunday November 02, 2025 @09:02PM (#65768744)
    A bug using the new wonder language! Say it aint't so! Call me an old, unimpressed, code jockey. To say that I could care less about the latest fad would be an understatement. NO language is of any use without a MIND behind it.
  • is "memory safe" but is not programmer bug free.
    • Quite. Indeed the system hardware, and other processes running can be problematic then interfere with the gee-whiz golly safe memory Rust app or library.

      JoshK.

  • by simlox ( 6576120 ) on Monday November 03, 2025 @02:01AM (#65769092)
    lwn.net have an article about https://fil-c.org/ [fil-c.org], which is a C compiler they claim to be able to compile most C code "memory safe". Explicitly, they claim to have compiled much of userspace Linux "memory safe". A lot of the excuse to rewrite to rust is gone, if that really works and is performance enough.
    • FIL looks nice, but it is garbage collected with run time validation. Rust is deterministically memory managed with zero cost abstraction.

      • If it is for short lived shell utilities, GC might be better, as the process might close before it is ever needed, i.e. calling free is a waste of time, introducing bugs. I agree, I would hesitate to use a GC for anything time critical, but that does hardly apply for the stuff being rewritten here.
    • by Pieroxy ( 222434 )

      FIL has the old compromise of getting memory safety at the cost of a Garbage Collector. This is nothing new, and certainly not something that would compete with Rust.

  • Professor Frink from the Simpsons said it best (the timing for...about chaos theory and robots rising up to annihilate the humans...)

    "Whoops! Forgot the carry..." (as the robots start to annihilate humans.) https://www.youtube.com/watch?... [youtube.com]

    Right now its Rust, the greatest thing since sliced bread, before that .NET/CLR with managed code, before that Java, and then COM, and then C++

    The "xkcd" cycle: https://www.xkcd.com/2044/ [xkcd.com]

    JoshK.

  • by BrendaEM ( 871664 ) on Monday November 03, 2025 @10:32AM (#65769738) Homepage
    The Rust bifurcation might destroy Linux.
  • by devslash0 ( 4203435 ) on Monday November 03, 2025 @11:27AM (#65769864)

    Never rewrite an old, mature, reliable piece of software that works. The complex, spaghetti code is there for a reason. Someone had gone through all the complex use cases throughout years of development at the personal cost of ample grey hair, and still made it work. Its a fragile yet complex and beautiful thing. Don't fix it if it ain't broken.

    • by unrtst ( 777550 )

      IMNSHO, that's solid advice to give a programmer - never take on such a project cause of all those reasons. However, I don't think that rule applies to software engineering or systems design, and coreutils is an excellent example of this situation. Those utils, like "cp", "mv", and "rm", have numerous independent implementations already (FWIW, I'm grouping in similar utilities from the other *nix's). The well established usage and small codebase make them prime candidates for rewrites. But if your boss come

"May your future be limited only by your dreams." -- Christa McAuliffe

Working...