A 21-year-old developer has fixed a decades-old Linux UI bug in Enlightenment E16, revealing how older software can be more stable than modern alternatives.
A 20-year-old bug in the Enlightenment E16 window manager has finally been squashed by a developer who is actually younger than the software itself. Kamila Szewczyk, a 21-year-old graduate student at Saarland University in Germany, discovered and fixed the long-standing issue while preparing lecture materials for a course she's teaching.
The Bug That Froze Desktops
The problem manifested in a particularly frustrating way. Szewczyk was working with PDF files containing lecture slides and LaTeX exercise sheets when she noticed her entire desktop would freeze upon opening certain documents in Atril, a document viewer for the MATE desktop environment.
After some investigation, she traced the issue to Enlightenment E16's window-title truncation algorithm. The window manager was hanging whenever it attempted to truncate overly long filenames. The root cause was a missing iteration limit in the middle-ellipsis search algorithm, which could bounce endlessly between truncation points while trying to settle on a suitable window title.
"Any window whose WM_NAME is long enough that the middle-ellipsis search falls into the overshoot regime reproduces this," Szewczyk explained in her detailed writeup of the bug.
The Fix
Szewczyk's patch against E16 version 1.0.30, released in August 2024, implements three key changes to prevent the infinite loop:
- Capping iterations at 32 attempts
- Preventing negative corrections from producing degenerate overlaps
- Guarding against potential divide-by-zero errors
The fix demonstrates how even well-established software can harbor critical bugs that remain undiscovered for decades, particularly in code paths that users rarely encounter.
A Philosophy of "Finished" Software
Szewczyk's discovery is particularly noteworthy given her preference for older software like E16. She's part of a small community of "hardcore enthusiasts" who maintain and use this aged window manager, which was introduced in 1999 as the DR16 branch of Enlightenment.
Her affinity for E16 stems from a belief that older software was built with the understanding that programs could actually be finished. Unlike modern software that constantly chases new features and updates, E16 has remained relatively stable over its decades of existence, with new versions focusing primarily on bug fixes and essential changes rather than feature bloat.
"I feel like we've lost the plot a bit," Szewczyk told The Register. "We are not nearly eager enough to acknowledge that software can be more or less finished at some point."
The Modern Software Dilemma
The Enlightenment E16 bug serves as a reminder of the trade-offs in modern software development. While contemporary desktop environments and window managers offer more features and modern aesthetics, they may also introduce more instability and security vulnerabilities.
Szewczyk points out that similar bugs likely lurk in the millions of lines of code that power modern desktop environments. The irony is that this bug in 20-year-old code could have been a denial-of-service vector, freezing desktops and causing significant inconvenience to users.
Her recommendation for users and administrators is straightforward: stop chasing every new release. Instead, she advises staying on recent or extended support releases, particularly for software that tends to ship with numerous bugs, such as web browsers.
"The amount of bugs in private checkouts of crusty old software maintained by competent developers will monotonically decrease," she noted in her blog post. This principle applies not just to niche window managers like E16 but to larger projects with substantial user bases as well.
The Value of Stability
The Enlightenment E16 case study highlights a broader debate in software development about the value of stability versus constant innovation. While the tech industry often celebrates the latest and greatest features, there's something to be said for software that has reached a state of maturity where it simply works.
E16's continued maintenance by a dedicated community demonstrates that there's still value in older software that prioritizes reliability over novelty. The fact that a 21-year-old developer can contribute meaningfully to 25-year-old software also speaks to the enduring nature of well-designed systems.
For organizations and individual users concerned about security and stability, Szewczyk's findings suggest that sometimes the safest path forward is to stay put. By living with the features you have, keeping up with security patches, and watching the bug count decrease over time, you may actually be safer than constantly migrating to the latest version that includes unwanted features and unnecessary bugs.
The Enlightenment E16 bug fix serves as a valuable lesson in software engineering: sometimes the oldest code has the most to teach us about building reliable, maintainable systems that stand the test of time.


Comments
Please log in or register to join the discussion