appstream-generator: misbehavior compared to glibc
appstream-generator
[1] is a D program used in the infra[2][3] to generate the AppStream data consumed by graphical package managers like gnome-software
and discover
. Although it was configured in the infra, the package and the configuration needed some love, and I took maintainership from @Cogitri to keep it updated and make sure we had updated data for software centers to consume. It has not been working super reliably, but good enough to generate some data. However, @alexeymin found a bug in the data, reported it first to the infra[4] and then upstream[5], and it turns out that the program is misbehaving in alpine with muslc
compared to debian with glibc
. At the same time, I had been trying to debug some random non-reproducible crashes in multi-threaded code-paths in the generator[6] which they aren't seeing in debian and that made no sense with the inspection of the code and could potentially be another corner of the same issue.
Overall, it looks like there is some misbehavior and not-easy-to-reproduce crashes which might be consequence musl incompatibility, either directly in the generator or somewhere in the D stack. I have previously debugged and fixed a couple of bugs in programs related to musl, but they were in C and I more or less knew what I was doing. In this case, I have no idea about the D language and feel totally lost about even where to start. It would be great if somebody interested/knowledgeable in D could step up and help in some way, because I certainly have no idea of where to even start.
[1]https://github.com/ximion/appstream-generator
[2]https://gitlab.alpinelinux.org/alpine/infra/docker/appstream-generator/
[3]https://gitlab.alpinelinux.org/alpine/infra/compose/appstream-generator/
[4]alpine/infra/compose/appstream-generator#2 (closed)