Flaky unit test on Gemnasium TestGraph/PathTo/3rd_level (broken master)
Failing job
Error:
=== RUN TestGraph/PathTo/3rd_level
graph_test.go:98:
Error Trace: graph_test.go:98
Error: [][]convert.Node{[]convert.Node{convert.Node{IID:0x1, Package:(*parser.Package)(0xc00016cc40)}, convert.Node{IID:0x3, Package:(*parser.Package)(0xc00016cc60)}}, []convert.Node{convert.Node{IID:0x5, Package:(*parser.Package)(0xc00016cca0)}, convert.Node{IID:0x6, Package:(*parser.Package)(0xc00016ccc0)}}} does not contain []convert.Node{convert.Node{IID:0x6, Package:(*parser.Package)(0xc00016c3a0)}, convert.Node{IID:0x7, Package:(*parser.Package)(0xc00016c3e0)}}
Test: TestGraph/PathTo/3rd_level
--- FAIL: TestGraph (0.00s)
--- FAIL: TestGraph/PathTo (0.00s)
--- PASS: TestGraph/PathTo/direct (0.00s)
--- PASS: TestGraph/PathTo/direct_2 (0.00s)
--- PASS: TestGraph/PathTo/2nd_level (0.00s)
--- FAIL: TestGraph/PathTo/3rd_level (0.00s)
This is also reproducible locally:
$ git clone https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium.git
$ cd gemnasium
$ docker run -it --rm -v "$PWD:/src" golang:1.15 /bin/bash
root@16372935bab7:/go# cd /src/convert
root@16372935bab7:/src/convert# for i in `seq 1 10`; do go test -run TestGraph/PathTo/3rd_level; done
PASS
ok gitlab.com/gitlab-org/security-products/analyzers/gemnasium/v2/convert 0.005s
PASS
ok gitlab.com/gitlab-org/security-products/analyzers/gemnasium/v2/convert 0.004s
PASS
ok gitlab.com/gitlab-org/security-products/analyzers/gemnasium/v2/convert 0.004s
PASS
ok gitlab.com/gitlab-org/security-products/analyzers/gemnasium/v2/convert 0.004s
PASS
ok gitlab.com/gitlab-org/security-products/analyzers/gemnasium/v2/convert 0.005s
PASS
ok gitlab.com/gitlab-org/security-products/analyzers/gemnasium/v2/convert 0.005s
--- FAIL: TestGraph (0.00s)
--- FAIL: TestGraph/PathTo (0.00s)
--- FAIL: TestGraph/PathTo/3rd_level (0.00s)
graph_test.go:98:
Error Trace: graph_test.go:98
Error: [][]convert.Node{
[]convert.Node{
convert.Node{
IID:0x1,
Package:(*parser.Package)(0xc00000f540)
},
convert.Node{
IID:0x3,
Package:(*parser.Package)(0xc00000f560)
}
},
[]convert.Node{
convert.Node{
IID:0x5,
Package:(*parser.Package)(0xc00000f5a0)
},
convert.Node{
IID:0x6,
Package:(*parser.Package)(0xc00000f5c0)
}
}
}
does not contain
[]convert.Node{
convert.Node{
IID:0x6,
Package:(*parser.Package)(0xc00000eca0)
},
convert.Node{
IID:0x7,
Package:(*parser.Package)(0xc00000ece0)
}
}
Test: TestGraph/PathTo/3rd_level
FAIL
exit status 1
FAIL gitlab.com/gitlab-org/security-products/analyzers/gemnasium/v2/convert 0.006s
PASS
ok gitlab.com/gitlab-org/security-products/analyzers/gemnasium/v2/convert 0.005s
PASS
ok gitlab.com/gitlab-org/security-products/analyzers/gemnasium/v2/convert 0.005s
PASS
ok gitlab.com/gitlab-org/security-products/analyzers/gemnasium/v2/convert 0.005s
Possible fix
Edited by Adam Cohen