Non-reproducable build-results


We at the navit team were recently adopting a docker container with the sailfish os sdk for building our app. Most of the build runs failed, however, in different runs the we got a different final state of the compilation. In some cases the build got stuck in the configure phase, while in others a different share of the compilation phase was completed successfully. Using the same docker container on a local machine, however, was successful in all cases. Even reruns of previously successful runs fail in most cases. One successful run was for example: However, afterwards with small changes to .config.yml in the build stopped working again and could not be recovered.

We thank you very much for your support and the great job.

The navit team.


Are there differences between the two config.yml files?

I wonder if the changes in CPU arch, which happened around about that time, are responsible?

The relevant compile problem is:

-- Building with CMake V3.6.2
-- The C compiler identification is GNU 4.8.3
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
Exit reason and status: signal 1
Too long with no output (exceeded 10m0s)

I don’t know what “ABI info” is, but that is probably what you need to focus on. I suggest doing some searching around that? See this search, which produces this similar-looking question.

I wonder if this is down to Docker not running in the correct privileged mode to give you the correct CPU information. Could you try forcing it? I do not know how to do that, but it may be worth looking into.

Also, try this on a Machine executor - that is closer to bare metal than the Docker executor, and may be better for this sort of use-case.


Sorry for the late response.

This was just one example. In other builds it was getting to the timeout already while completing 5% of the build. With the machine executor it seems to run more reliably. Do you have any ideas, why there is the difference between machine executor and docker executor? Could it be related to different versions of docker?