summaryrefslogtreecommitdiffstatshomepage
path: root/content/24
diff options
context:
space:
mode:
Diffstat (limited to 'content/24')
-rw-r--r--content/24/index.md68
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.