Recently one of our Unittest pipelines are failing because the container inside is crashing with the following generic error, (literally 3 days before it worked, the ubuntu runner image was not updated):
This program has encountered a fatal error and cannot continue running at Mon Mar 3 12:47:18 2025
The following diagnostic information is available:
Reason: 0x00000001
Signal: SIGABRT - Aborted (6)
Stack:
IP Function
---------------- --------------------------------------
000055794a8addbc <unknown>
000055794a8ad802 <unknown>
000055794a8ace11 <unknown>
00007fce71c15f10 killpg+0x40
00007fce71c15e87 gsignal+0xc7
00007fce71c177f1 abort+0x141
000055794a82f242 <unknown>
000055794a8bfc14 <unknown>
000055794a8f01f8 <unknown>
000055794a8effda <unknown>
000055794a83b0ba <unknown>
000055794a83ad0f <unknown>
Process: 12 - sqlservr
Thread: 90 (application thread 0x150)
Instance Id: 22e78de6-beb1-4295-b3db-e2970449f57d
Crash Id: a3958409-06b0-4914-b126-5a7a619b0e9f
Build stamp: d277ec5d156ed2c28745014dfc4c14e2f46d731c05c5ca459ea00c9760516508
Distribution: Ubuntu 18.04.6 LTS
Processors: 2
Total Memory: 8324341760 bytes
Timestamp: Mon Mar 3 12:47:18 2025
Last errno: 2
Last errno text: No such file or directory
dmesg: read kernel buffer failed: Operation not permitted
/usr/bin/timeout: failed to run command '/bin/journalctl': No such file or directory
/usr/bin/timeout: failed to run command '/bin/journalctl': No such file or directory
Having thinking Docker my be the problem, i tried on 20.04, 22.04, same happens, all three of these runners are using the same Docker client/server, which is 26.1.3. On my machine, macmini intel, macos-15, Sequioa, running docker engine 27.5.1 the container runs without an issue. Trying to setup the same on github action is not possible, for some reason the docker setup fails with: docker/[email protected]. on macos-15, on ubuntu 24.04 tried some older versions like 25, and early 27 with no luck.
Any suggestion might help, what else I could provide here, to better understand why the container is failing.
my docker command for running the container:
docker container run -d -e 'ACCEPT_EULA=Y' -e SA_PASSWORD=foo -e DB_NAME=bar --network test-network --name test-db mssql_test:latest
my dockerfile
FROM mcr.microsoft/mssql/server:2017-latest
ENV ACCEPT_EULA=true
RUN mkdir -p /opt/initial_load/data
ADD entrypoint.sh /opt/initial_load/
ADD initial_load.sh /opt/initial_load/
ADD health_check.sh /opt/initial_load/
ADD schema.sql /opt/initial_load/
ADD constraints.sql /opt/initial_load/
ADD data /opt/initial_load/data/
# Fix Carriage return line endings
RUN find /opt/initial_load/ -name "*.sh" -type f -print0 | xargs -0 sed 's/\r$//' -i
RUN chmod +x /opt/initial_load/entrypoint.sh
RUN chmod +x /opt/initial_load/initial_load.sh
RUN chmod +x /opt/initial_load/health_check.sh
VOLUME /var/opt/mssql
HEALTHCHECK CMD /opt/initial_load/health_check.sh
ENTRYPOINT ["/opt/initial_load/entrypoint.sh"]