Race condition in CMAKE
Bug #1831643 reported by
Seth Hillbrand
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
KiCad |
Fix Released
|
High
|
Seth Hillbrand |
Bug Description
See [1][2] for details.
Custom targets can not be consumed safely by multiple threads.
[1] https:/
[2] https:/
Changed in kicad: | |
status: | Fix Committed → Triaged |
status: | Triaged → In Progress |
Changed in kicad: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
FWIW, I've ran a git-bisect on the KiCad tree, with the following test script:
#! /bin/sh -ex BUILD_TYPE= Debug .. || exit 125
count=0
for i in `seq 1 10`
do
git clean -fdx || exit 125
mkdir Build || exit 125
cd Build || exit 125
cmake -DKICAD_SPICE=OFF -DCMAKE_
make -j32 || count=$(($count + 1))
cd ..
if [ $count -ne 0 ] && [ $count -ne $i ]; then exit 1; fi
done
if [ $count -eq 10 ]; then exit 125; fi
Basically, this does up to 10 attempts per version, marks a version as "bad" if it got a mix of successful and failed builds, "skip" if the build always fails, and "good" if all ten builds succeed.
The result is
There are only 'skip'ped commits left to test. bc2549adc05d6ed 85b8166fb8e00f 6814e816b2c3764 6da5ea6550e156 c7aca92c13c67f2 df6dee88890a63
The first bad commit could be any of:
0617bffce0e
840e08fa788
300f5cb0821
We cannot bisect more!
My suspicion would be 0617bffce0, which turns eeschema into an OBJECT library to allow unit tests to work, but as mentioned in my mail, it's likely not the root cause, but rather just shifted the timing so we actually run into it.