+++ date = 2024-10-14T20:33:27+02:00 title = "A plethora of bug fixes" [taxonomies] tags = ["bugs", "plasma", "git"] [extra] related = [] +++ For whatever reason I've been uncovering software bugs at an unprecedented rate in the past 10 days. This is by no means a bad thing, I enjoy hunting down and fixing bugs, but it does mean that the additional overhead of drafting a post about each bug becomes a bit too much. So instead here's a quick overview - the linked patches and merge requests will have more information, if you are interested. ### Trash size calculation in KIO I noticed this one pretty much right after starting to use [Dolphin](https://apps.kde.org/dolphin/) but did not end up looking into it until quite a bit later: when displaying the size of the items in the trash, the application would always show 0 bytes. This would also cause the automated cleanup of items to fail - Dolphin simply believed that the trash was empty. KDE uses the [KIO](https://invent.kde.org/frameworks/kio) framework to provide management of the trash. A [recent commit](https://invent.kde.org/frameworks/kio/-/commit/0ab81b6bac953b12b454bef4874946bb7fc8db85) had changed the construction of a [QDirIterator](https://doc.qt.io/qt-6/qdiriterator.html) in a way that would make it ignore all items when iterating over the trash directory. Thankfully the fix was straightforward and it was [merged quickly](https://invent.kde.org/frameworks/kio/-/merge_requests/1729). ### git-shortlog(1) segfaults outside of a git repository This one I uncovered as I was writing a small script to give me an overview of commit authors in all the git repositories I had cloned locally. I was happily scanning through my source directory using the [`--author`](https://git-scm.com/docs/git-shortlog#Documentation/git-shortlog.txt---authorltpatterngt) flag for `git-shortlog(1)` to generate this, fully expecting git to complain about the few non-git directories I had. Instead of complaints, however, I got a segfault. Turns out that a [change back in May](https://github.com/git/git/commit/ab274909d4) stopped setting SHA1 as the default object hash. This was done to progress the slow-moving [transition to stronger hash functions](https://git-scm.com/docs/hash-function-transition) but inadvertently broke `git-shortlog(1)` whose argument parsing machinery expected a default hash algorithm to be set. I sent [a patch](https://public-inbox.org/git/20241011183445.229228-1-wolf@oriole.systems/T/#u) upstream. ### An infinite loop in plasmashell I regularly use the [Activities](https://docs.kde.org/stable5/en/plasma-desktop/plasma-desktop/activities-interface.html) functionality in Plasma 6 and switch through my activities using Plasma's built-in activity manager. A couple of days ago I managed to make `plasmashell`, the provider for Plasma's desktop and task bar, freeze - I had hit the "up arrow" key in the activity filter text box when there were no results visible. This was perfectly reproducible, so I went to investigate. The cause of the issue was a do-while construct not handling a specific sentinel value, making it loop infinitely. For this one I also opened a [merge request](https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/2574) upstream.