diff options
Diffstat (limited to 'content/24')
-rw-r--r-- | content/24/index.md | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/content/24/index.md b/content/24/index.md new file mode 100644 index 0000000..e1a0082 --- /dev/null +++ b/content/24/index.md @@ -0,0 +1,68 @@ ++++ +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. |