我在多项目构建中运行sbt test
,并且测试随机出现“双重免费或损坏”错误。
示例(截断)输出:
[info]
[info] Passed: Total 9, Failed 0, Errors 0, Passed 9
*** Error in `java': double free or corruption (!prev): 0x00007faac8027d70 ***
/usr/share/sbt-launcher-packaging/bin/sbt-launch-lib.bash: line 41: 8420 Aborted (core dumped)
"$@"
每次运行测试时命令都会失败,但总是在不同的位置。
我发现另一个StackOverflow问题表明这可能是关于对本机库的多线程访问,但我不知道如何开始弄清楚代码的哪一部分可能导致这种情况。 (这是一个相当大的项目,有大约20个外部依赖项(不计算传递项)。)
你能指出我如何最好地调试这个吗?
我尝试过的额外步骤:
sbt clean test
然后sbt test-quick
表示第二个命令通过,即使第一个命令因奇怪错误而失败。 (如果单元测试中发现错误,它仍然会失败。)sbt clean test
不会重现此错误