bazelbuild / bazel

a fast, scalable, multi-language and extensible build system
https://bazel.build
Apache License 2.0
23k stars 4.03k forks source link

Bootstrap broken at head #2644

Closed ulfjack closed 7 years ago

ulfjack commented 7 years ago

When setting JAVA_VERSION=1.7, bootstrap is broken depending on the order in which jar files are picked up by find.

This is due to commit 0785cbb672357d950e0c045770c4567df9fbdc43 by cushon.

Also see https://bazel-review.googlesource.com/#/c/8971/.

🍃  Building Bazel from scratch../usr/local/buildtools/java/jdk8-google-v7-64/bin/javac -classpath third_party/apache_velocity/velocity-1.7.jar:third_party/apache_httpcore/httpcore-4.2.4.jar:third_party/plexus_interpolation/plexus-interpolation-1.22.jar:third_party/hamcrest/hamcrest-core-1.3.jar:third_party/protobuf/3.0.0/protobuf-java-util-3.0.0.jar:third_party/protobuf/3.0.0/protobuf-java-3.0.0.jar:third_party/java/android_databinding/exec.jar:third_party/java/jarjar/jarjar-1.4.jar:third_party/java/jdk/langtools/javac-9-dev-r3297-1.jar:third_party/java/jdk/langtools/javac.jar:third_party/java/javapoet/javapoet-1.8.0.jar:third_party/java/jacoco/org.jacoco.agent-0.7.5.201505241946-src.jar:third_party/java/jacoco/org.jacoco.core-0.7.5.201505241946.jar:third_party/java/jacoco/org.jacoco.agent-0.7.5.201505241946.jar:third_party/java/jacoco/jacocoagent.jar:third_party/java/jacoco/org.jacoco.report-0.7.5.201505241946.jar:third_party/java/jacoco/org.jacoco.report-0.7.5.201505241946-src.jar:third_party/java/jacoco/org.jacoco.core-0.7.5.201505241946-src.jar:third_party/jsr305/jsr-305.jar:third_party/turbine/turbine-0.1-20170104.jar:third_party/gson/gson-2.2.4.jar:third_party/pcollections/pcollections-2.1.2.jar:third_party/maven/maven-settings-3.3.3.jar:third_party/maven/maven-builder-support-3.3.3.jar:third_party/maven/maven-settings-builder-3.3.3.jar:third_party/guava/guava-21.0.jar:third_party/guava/guava-testlib-21.0-20161101.jar:third_party/guava/guava-testlib-21.0.jar:third_party/guava/guava-21.0-20161101.jar:third_party/dagger/dagger-2.5.jar:third_party/dagger/dagger-producers-2.5.jar:third_party/dagger/dagger-compiler-2.5.jar:third_party/hazelcast/hazelcast-client-3.6.4.jar:third_party/hazelcast/hazelcast-3.6.4.jar:third_party/error_prone/error_prone_annotations-2.0.18.jar:third_party/error_prone/error_prone_check_api-2.0.18.jar:third_party/error_prone/error_prone_annotation-2.0.18.jar:third_party/error_prone/error_prone_core-2.0.18.jar:third_party/apache_commons_codec/commons-codec-1.9.jar:third_party/ijar/test/libwrongcentraldir.jar:third_party/junit/junit-4.11.jar:third_party/plexus_component_annotations/plexus-component-annotations-1.6.jar:third_party/apache_commons_logging/commons-logging-1.1.1.jar:third_party/maven_model/maven-aether-provider-3.2.3.jar:third_party/maven_model/maven-model-3.2.3.jar:third_party/maven_model/maven-repository-metadata-3.2.3.jar:third_party/maven_model/maven-model-builder-3.2.3.jar:third_party/jcip_annotations/jcip-annotations-1.0-1.jar:third_party/jgit/org.eclipse.jgit-4.0.1.201506240215-r.jar:third_party/tomcat_annotations_api/tomcat-annotations-api-8.0.5.jar:third_party/slf4j/slf4j-api-1.7.7.jar:third_party/slf4j/slf4j-jdk14-1.7.7.jar:third_party/netty/netty-all-4.1.0.CR6.jar:third_party/aether/aether-api-1.0.0.v20140518.jar:third_party/aether/aether-transport-wagon-1.0.0.v20140518.jar:third_party/aether/aether-transport-classpath-1.0.0.v20140518.jar:third_party/aether/aether-spi-1.0.0.v20140518.jar:third_party/aether/aether-util-1.0.0.v20140518.jar:third_party/aether/aether-transport-file-1.0.0.v20140518.jar:third_party/aether/aether-connector-basic-1.0.0.v20140518.jar:third_party/aether/aether-transport-http-1.0.0.v20140518.jar:third_party/aether/aether-impl-1.0.0.v20140518.jar:third_party/mockito/mockito-all-1.10.19.jar:third_party/apache_commons_lang/commons-lang-2.6.jar:third_party/jsch/jsch-0.1.51.jar:third_party/asm/asm-5.1.jar:third_party/asm/asm-tree-5.1.jar:third_party/asm/asm-analysis-5.1.jar:third_party/asm/asm-commons-5.1.jar:third_party/asm/asm-util-5.1.jar:third_party/joda_time/joda-time-2.3.jar:third_party/android_common/com.android.tools.layoutlib_layoutlib_25.0.0.jar:third_party/android_common/com.android.tools_repository_25.0.0.jar:third_party/android_common/com.android.tools.build_builder-test-api_2.0.0.jar:third_party/android_common/com.android_annotations_25.0.0.jar:third_party/android_common/com.android.tools_dvlib_25.0.0.jar:third_party/android_common/com.android.tools_sdk-common_25.0.0.jar:third_party/android_common/com.android.tools_common_25.0.0.jar:third_party/android_common/com.android.tools.build_manifest-merger_25.0.0.jar:third_party/android_common/com.android.tools.lint_lint-api_25.0.0.jar:third_party/android_common/com.android.tools.build_builder_2.0.0.jar:third_party/android_common/com.android.tools.build_builder-model_2.0.0.jar:third_party/android_common/com.android.tools.external.lombok_lombok-ast_0.2.3.jar:third_party/android_common/com.android.tools.lint_lint-checks_25.0.0.jar:third_party/android_common/com.android.tools_sdklib_25.0.0.jar:third_party/android_common/com.android.tools_ddmlib_25.0.0.jar:third_party/bytebuddy/byte-buddy-dep-0.7-rc6.jar:third_party/apache_httpclient/httpclient-4.2.5.jar:third_party/auto/auto-common-0.3.jar:third_party/auto/auto-value-1.4-rc1.jar:third_party/auto/auto-value-1.2.jar:third_party/auto/auto-service-1.0-rc2.jar:third_party/checker_framework_dataflow/dataflow-1.8.10.jar:third_party/plexus_utils/plexus-utils-3.0.21.jar:third_party/apache_commons_pool2/commons-pool2-2.3.jar:third_party/jsr330_inject/javax.inject.jar:third_party/truth/truth-0.31.jar:third_party/xz/xz-1.5.jar:third_party/apache_commons_compress/apache-commons-compress-1.9.jar:third_party/apache_commons_collections/commons-collections-3.2.2.jar::third_party/grpc/grpc-stub-0.15.0.jar:third_party/grpc/grpc-protobuf-lite-0.15.0.jar:third_party/grpc/grpc-protobuf-0.15.0.jar:third_party/grpc/grpc-core-0.15.0.jar:third_party/grpc/grpc-netty-0.15.0.jar::/tmp/bazel_WGwbtdDj -sourcepath src/java_tools/singlejar/java/com/google/devtools/build/zip:src/main/java:src/tools/xcode-common/java/com/google/devtools/build/xcode/common:src/tools/xcode-common/java/com/google/devtools/build/xcode/util:third_party/java/dd_plist/java:/tmp/bazel_WGwbtdDj/src -d /tmp/bazel_WGwbtdDj/classes -source 1.7 -target 1.7 -encoding UTF-8 
ulfjack commented 7 years ago

I didn't want to download a dist archive, so I took these steps:

bazel build //third_party/protobuf:protoc //third_party/grpc:grpc-java-plugin
cp bazel-bin/third_party/protobuf/3.0.0/protoc bazel-bin/third_party/grpc/grpc-java-plugin /tmp
export JAVA_VERSION=1.7
PROTOC=/tmp/protoc GRPC_JAVA_PLUGIN=/tmp/grpc-java-plugin ./compile.sh

On my machine, the classpath happens to contain the jars in this order: third_party/guava/guava-21.0.jar third_party/guava/guava-testlib-21.0-20161101.jar third_party/guava/guava-testlib-21.0.jar third_party/guava/guava-21.0-20161101.jar

The order is undefined, since we just call find third_party -name "*.jar". If we happen to get guava-21.0-20161101.jar before guava-21.0.jar, it'll probably work.

damienmg commented 7 years ago

Let's fix compile.sh to get the good version of guava for now.

damienmg commented 7 years ago

Mailed a fix in internal code review.