gearman / gearmand

http://gearman.org/
Other
727 stars 138 forks source link

Draft: Added Alpine 3.17/gcc 12 build to GitHub Actions CI #362

Open esabol opened 1 year ago

esabol commented 1 year ago

DO NOT MERGE YET.

This pull request partially addresses issue #354 by adding an Alpine 3.17 build to the GitHub Actions CI. As a bonus, this build uses gcc 12 (currently 12.2.1).

esabol commented 1 year ago

I hate GitHub Actions so much! I finally get gearmand to build in an Alpine 3.17 container, but a bunch of tests fail with "Segmentation fault (core dumped)" all over the test-suite.log. No idea why. My Alpine 3.17 Docker image builds and tests fine on my machines. But the Alpine 3.17 container in GitHub Actions gives different results for some inexplicable reason. Incredibly frustrating.

esabol commented 1 year ago

Same exact result with Alpine 3.16 and gcc-11.

esabol commented 1 year ago

Anyone have any suggestions? I'm not even sure how to debug this since I can't reproduce it in Docker.

SpamapS commented 1 year ago

I haven't looked into it but there should be a way to get the core dump from the failed run and inspect it with gdb.

I suspect the tests are doing something that is forbidden in the containers that run actions. We might need to make that test skip in this specific situation or even have a conditional for Alpine.

TBH I'm not a fan of Alpine. It seems to be a pointless distribution.

On Mon, Nov 21, 2022, 8:56 PM Ed Sabol @.***> wrote:

Anyone have any suggestions? I'm not even sure how to debug this since I can't reproduce it in Docker.

— Reply to this email directly, view it on GitHub https://github.com/gearman/gearmand/pull/362#issuecomment-1323065535, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADS6YFXBX434MHPELSBRDTWJRHAFANCNFSM6AAAAAASGJJSEQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

esabol commented 1 year ago

I haven't looked into it but there should be a way to get the core dump from the failed run and inspect it with gdb.

My google-fu failed me the first few times I tried to figure out how to do that, but I just found this:

https://gist.github.com/kudaba/53f68340bd28cd1e8824ac1e6ba8cf88

I imagine one would need the executable as well? Maybe the .o files?

I suspect the tests are doing something that is forbidden in the containers that run actions. We might need to make that test skip in this specific situation or even have a conditional for Alpine.

I don't know, but I don't think they should segmentation fault, certainly.

TBH I'm not a fan of Alpine. It seems to be a pointless distribution.

As far as I can tell, it's mainly used as the basis for Docker container images.

esabol commented 7 months ago

I kind of gave up on this, I admit (because it was so incredibly frustrating dealing with GitHub Actions), but it might be worth trying this instead: https://github.com/marketplace/actions/setup-alpine-linux-environment