Build race or other flakiness, at least on main-eisop
cpovirk opened this issue · 0 comments
I'd never seen this before, but I saw it today in one of the several builds that I performed. The compileTestJava
step apparently failed to find org.checkerframework.framework.test
.
My guess would be that the build didn't wait for that to be built: We depend on the CF test framework from our tests, and apparently jspecifySamplesTest
automatically picks up the test deps... but maybe doesn't wait for them to become available?
jspecify-reference-checker/build.gradle
Line 69 in 75aa1de
jspecify-reference-checker/build.gradle
Line 148 in 75aa1de
Note that I did ctrl+C a build when I had the flag wrong. I would hope that that does not matter, especially since I ran clean
afterward, but maybe I needed to also clean
the checker-framework
project or something?? Anyway, the compilation worked fine when I re-ran it.
$ git clone git@github.com:jspecify/jspecify-reference-checker.git
$ git clone git@github.com:jspecify/jspecify.git -b samples-google-prototype
$ cd jspecify-reference-checker
$ git co main-eisop
$ ./gradlew jspecifySamplesTest
git clone --depth 1 --single-branch https://github.com/jspecify/jdk.git ../jdk
Cloning into '../jdk'...
Updating files: 100% (66472/66472)
Updating files: 100% (66472/66472), done.
git clone https://github.com/eisop/checker-framework.git ../checker-framework
Cloning into '../checker-framework'...
> Task :processResources
> Task :checker-framework:setLocalRepo
> Task :checker-framework:installGitHooks
> Task :conformance-test-framework:compileJava
> Task :processTestResources NO-SOURCE
> Task :unzipConformanceTestSuite
> Task :conformance-test-framework:processResources NO-SOURCE
> Task :conformance-test-framework:classes
> Task :conformance-test-framework:jar
> Task :checker-framework:checker-qual:compileJava
> Task :checker-framework:javacutil:compileJava
> Task :checker-framework:dataflow:compileJava
^C
$ ./gradlew clean
> Task :clean
> Task :conformance-test-framework:clean
Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/8.6/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
BUILD SUCCESSFUL in 1s
2 actionable tasks: 2 executed
$ ./gradlew jspecifySamplesTest --include-build ../jspecify
> Task :processResources
> Task :checker-framework:setLocalRepo
> Task :processTestResources NO-SOURCE
> Task :checker-framework:installGitHooks UP-TO-DATE
> Task :conformance-test-framework:processResources NO-SOURCE
> Task :checker-framework:checker-qual:compileJava UP-TO-DATE
> Task :checker-framework:javacutil:compileJava UP-TO-DATE
> Task :checker-framework:dataflow:compileJava UP-TO-DATE
> Task :checker-framework:checker-util:compileJava
> Task :jspecify:compileJava
> Task :jspecify:processResources NO-SOURCE
> Task :jspecify:classes
> Task :conformance-test-framework:compileJava
> Task :conformance-test-framework:classes
> Task :conformance-test-framework:jar
> Task :jspecify:compileJava9Java
> Task :jspecify:processJava9Resources NO-SOURCE
> Task :jspecify:java9Classes
> Task :jspecify:jar
> Task :jspecify:conformance-tests:compileDepsJava
> Task :jspecify:conformance-tests:processDepsResources NO-SOURCE
> Task :jspecify:conformance-tests:depsClasses
> Task :jspecify:conformance-tests:depsJar
> Task :checker-framework:framework:compileJava
> Task :jspecify:conformance-tests:distZip
> Task :unzipConformanceTestSuite
> Task :checker-framework:checker:compileJava
> Task :compileJava
> Task :classes
> Task :checker-framework:framework-test:compileJava
> Task :checker-framework:framework-test:processResources NO-SOURCE
> Task :checker-framework:framework-test:classes
> Task :checker-framework:framework-test:jar
> Task :checker-framework:checker-qual:processResources NO-SOURCE
> Task :checker-framework:checker-qual:classes UP-TO-DATE
> Task :checker-framework:checker-qual:jar
> Task :checker-framework:checker-util:processResources NO-SOURCE
> Task :checker-framework:checker-util:classes
> Task :checker-framework:checker-util:jar
> Task :checker-framework:javacutil:processResources NO-SOURCE
> Task :checker-framework:javacutil:classes UP-TO-DATE
> Task :checker-framework:javacutil:jar
> Task :checker-framework:dataflow:processResources NO-SOURCE
> Task :checker-framework:dataflow:classes UP-TO-DATE
> Task :checker-framework:dataflow:jar
> Task :checker-framework:framework:cloneAnnotatedJdk
> Task :compileTestJava FAILED
/tmp/tmp.lTJt3OVSmR/jspecify-reference-checker/src/test/java/tests/ConformanceTest.java:35: error: package org.checkerframework.framework.test does not exist
import org.checkerframework.framework.test.TestConfiguration;
^
...