-
Notifications
You must be signed in to change notification settings - Fork 4.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bazel built at HEAD can't build Bazel (java.lang.NoClassDefFoundError: javax/annotation/CheckReturnValue) #5532
Comments
@cushon can you please take a look? |
I can reproduce this on my mac, and I confirmed that it was introduced by 4c9a0c8. |
Also, I can't repro on linux. Is the reduced mac JDK supposed to be different than the linux one? |
I am taking a look. I built the JDK containing all modules listed ./full-jdk/bin/java --list-modules on all platforms. The class |
The class seems to be part of the jsr305 third party dependency and it also exists in there. |
The tests build |
@cushon we have a bazel determinism test that does just that and that for reasons has been disabled on macOS. I ll enable it again on our postsubmit pipeline once my fix is in. |
I missed the java.instrument module when building the smaller openjdk. I have updated the jdk to include this module. This was the cause for #5532. The image was created by https://buildkite.com/bazel/build-embedded-jdk/builds/23 RELNOTES: None PiperOrigin-RevId: 203797576
I missed the java.instrument module when building the smaller openjdk. I have updated the jdk to include this module. This was the cause for bazelbuild#5532. The image was created by https://buildkite.com/bazel/build-embedded-jdk/builds/23 RELNOTES: None PiperOrigin-RevId: 203797576
Baseline: 4f64b77 Cherry picks: + 4c9a0c8: reduce the size of bazel's embedded jdk + d3228b6: remote: limit number of open tcp connections by default. Fixes #5491 + 8ff87c1: Fix autodetection of linker flags + c4622ac: Fix autodetection of -z linker flags + 1021965: blaze_util_posix.cc: fix order of #define + ab1f269: blaze_util_freebsd.cc: include path.h explicitly + 68e92b4: openjdk: update macOS openjdk image. Fixes #5532 + f45c224: Set the start time of binary and JSON profiles to zero correctly. + bca1912: remote: fix race on download error. Fixes #5047 + 3842bd3: jdk: use parallel old gc and disable compact strings Incompatible changes: - The $(ANDROID_CPU) Make variable is not available anymore. Use $(TARGET_CPU) after an Android configuration transition instead. - The $(JAVA_TRANSLATIONS) Make variable is not supported anymore. - Skylark structs (using struct()) may no longer have to_json and to_proto overridden. - The mobile-install --skylark_incremental_res flag is no longer available, use the --skylark flag instead. New features: - android_local_test now takes advantage of Robolectric's binary resource processing which allows for faster tests. - Allow @ in package names. Important changes: - Option --glibc is removed, toolchain selection relies solely on --cpu and --compiler options. - Build support for enabling cross binary FDO optimization. - The --distdir option is no longer experimental. This option allows to specify additional directories to look for files before trying to fetch them from the network. Files from any of the distdirs are only used if a checksum for the file is specified and both, the filename and the checksum, match. - Java coverage works now with multiple jobs. - Flip default value of --experimental_shortened_obj_file_path to true, Bazel now generates short object file path by default. - New rules for importing Android dependencies: `aar_import_external` and `aar_maven_import_external`. `aar_import_external` enables specifying external AAR dependencies using a list of HTTP URLs for the artifact. `aar_maven_import_external` enables specifying external AAR dependencies using the artifact coordinate and a list of server URLs. - The BAZEL_JAVAC_OPTS environment variable allows arguments, e.g., "-J-Xmx2g", may be passed to the javac compiler during bootstrap build. This is helpful if your system chooses too small of a max heap size for the Java compiler during the bootstrap build. - --noexpand_configs_in_place is deprecated. - A tool to parse the Bazel execution log. - Support for LIPO has been fully removed. - Remove support for --discard_actions_after_execution. - Add --materialize_param_files flag to write parameter files even when actions are executed remotely. - Windows default system bazelrc is read from the user's ProgramData if present. - --[no]allow_undefined_configs no longer exists, passing undefined configs is an error. - In remote caching we limit the number of open TCP connections to 100 by default. The number can be adjusted by specifying the --remote_max_connections flag.
I missed the java.instrument module when building the smaller openjdk. I have updated the jdk to include this module. This was the cause for bazelbuild#5532. The image was created by https://buildkite.com/bazel/build-embedded-jdk/builds/23 RELNOTES: None PiperOrigin-RevId: 203797576
Baseline: 4f64b77 Cherry picks: + 4c9a0c8: reduce the size of bazel's embedded jdk + d3228b6: remote: limit number of open tcp connections by default. Fixes bazelbuild#5491 + 8ff87c1: Fix autodetection of linker flags + c4622ac: Fix autodetection of -z linker flags + 1021965: blaze_util_posix.cc: fix order of #define + ab1f269: blaze_util_freebsd.cc: include path.h explicitly + 68e92b4: openjdk: update macOS openjdk image. Fixes bazelbuild#5532 + f45c224: Set the start time of binary and JSON profiles to zero correctly. + bca1912: remote: fix race on download error. Fixes bazelbuild#5047 + 3842bd3: jdk: use parallel old gc and disable compact strings Incompatible changes: - The $(ANDROID_CPU) Make variable is not available anymore. Use $(TARGET_CPU) after an Android configuration transition instead. - The $(JAVA_TRANSLATIONS) Make variable is not supported anymore. - Skylark structs (using struct()) may no longer have to_json and to_proto overridden. - The mobile-install --skylark_incremental_res flag is no longer available, use the --skylark flag instead. New features: - android_local_test now takes advantage of Robolectric's binary resource processing which allows for faster tests. - Allow @ in package names. Important changes: - Option --glibc is removed, toolchain selection relies solely on --cpu and --compiler options. - Build support for enabling cross binary FDO optimization. - The --distdir option is no longer experimental. This option allows to specify additional directories to look for files before trying to fetch them from the network. Files from any of the distdirs are only used if a checksum for the file is specified and both, the filename and the checksum, match. - Java coverage works now with multiple jobs. - Flip default value of --experimental_shortened_obj_file_path to true, Bazel now generates short object file path by default. - New rules for importing Android dependencies: `aar_import_external` and `aar_maven_import_external`. `aar_import_external` enables specifying external AAR dependencies using a list of HTTP URLs for the artifact. `aar_maven_import_external` enables specifying external AAR dependencies using the artifact coordinate and a list of server URLs. - The BAZEL_JAVAC_OPTS environment variable allows arguments, e.g., "-J-Xmx2g", may be passed to the javac compiler during bootstrap build. This is helpful if your system chooses too small of a max heap size for the Java compiler during the bootstrap build. - --noexpand_configs_in_place is deprecated. - A tool to parse the Bazel execution log. - Support for LIPO has been fully removed. - Remove support for --discard_actions_after_execution. - Add --materialize_param_files flag to write parameter files even when actions are executed remotely. - Windows default system bazelrc is read from the user's ProgramData if present. - --[no]allow_undefined_configs no longer exists, passing undefined configs is an error. - In remote caching we limit the number of open TCP connections to 100 by default. The number can be adjusted by specifying the --remote_max_connections flag.
This reverts commit f6dbc5e.
I missed the java.instrument module when building the smaller openjdk. I have updated the jdk to include this module. This was the cause for #5532. The image was created by https://buildkite.com/bazel/build-embedded-jdk/builds/23 RELNOTES: None PiperOrigin-RevId: 203797576
I missed the java.instrument module when building the smaller openjdk. I have updated the jdk to include this module. This was the cause for bazelbuild#5532. The image was created by https://buildkite.com/bazel/build-embedded-jdk/builds/23 RELNOTES: None PiperOrigin-RevId: 203797576
Baseline: 4f64b77 Cherry picks: + 4c9a0c8: reduce the size of bazel's embedded jdk + d3228b6: remote: limit number of open tcp connections by default. Fixes #5491 + 8ff87c1: Fix autodetection of linker flags + c4622ac: Fix autodetection of -z linker flags + 1021965: blaze_util_posix.cc: fix order of #define + ab1f269: blaze_util_freebsd.cc: include path.h explicitly + 68e92b4: openjdk: update macOS openjdk image. Fixes #5532 + f45c224: Set the start time of binary and JSON profiles to zero correctly. + bca1912: remote: fix race on download error. Fixes #5047 + 3842bd3: jdk: use parallel old gc and disable compact strings + 6bd0bdf: Add objc-fully-link to the list of actions that require the apple_env feature. This fixes apple_static_library functionality. + f330439: Add the action_names_test_files target to the OSS version of tools/buils_defs/cc/BUILD. + d215b64: Fix StackOverflowError on Windows. Fixes #5730 + 366da4c: In java_rules_skylark depend on the javabase through //tools/jdk:current_java_runtime + 30c601d: Don't use @local_jdk for jni headers + c56699d: 'DumpPlatformClasspath' now dumps the current JDK's default platform classpath This release is a patch release that contains fixes for several serious regressions that were found after the release of Bazel 0.16.0. In particular this release resolves the following issues: - Bazel crashes with a StackOverflowError on Windows (See #5730) - Bazel requires a locally installed JDK and does not fall back to the embedded JDK (See #5744) - Bazel fails to build for Homebrew on macOS El Capitan (See #5777) - A regression in apple_static_library (See #5683) Please watch our blog for a more detailed release announcement.
I missed the java.instrument module when building the smaller openjdk. I have updated the jdk to include this module. This was the cause for #5532. The image was created by https://buildkite.com/bazel/build-embedded-jdk/builds/23 RELNOTES: None PiperOrigin-RevId: 203797576
Description of the problem / feature request:
A Bazel binary built at current HEAD (3ac44db) can't successfully
bazel build //src:bazel
, due to an unhandled exception from error-prone. I'm able to succesfully build Bazel using the 0.15.0 branch.Since it's complaining about an unknown class, I wonder if
buildjar
is missing a dependency.What operating system are you running Bazel on?
MacOS
What's the output of
bazel info release
?I'm using Bazel build from Git at 3ac44db (current HEAD)
The text was updated successfully, but these errors were encountered: