blob: e1a00820e26a314f8d3534028612d7679fce56ed (
plain) (
tree)
|
|
+++
date = 2024-10-14T20:33:27+02:00
title = "A plethora of bug fixes"
[taxonomies]
tags = ["bugs", "kde", "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.
|