Skip to content
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

Illegal reflective access by com.google.protobuf.UnsafeUtil when running Bazel 0.17.1 #6151

Closed
xingao267 opened this issue Sep 14, 2018 · 15 comments
Labels
team-Core Skyframe, bazel query, BEP, options parsing, bazelrc

Comments

@xingao267
Copy link
Member

xingao267 commented Sep 14, 2018

Description of the problem / feature request:

I install Bazel 0.17.1 in a fresh ubuntu:xenial container using the installer.sh, and when I run bazel version it gives the following warnings:

bazel version
Extracting Bazel installation...
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.protobuf.UnsafeUtil (file:/root/.cache/bazel/_bazel_root/install/28c1d2ace0add449e21862ae9f2d2289/_embedded_binaries/A-server.jar) to field java.lang.String.value
WARNING: Please consider reporting this to the maintainers of com.google.protobuf.UnsafeUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
WARNING: --batch mode is deprecated. Please instead explicitly shut down your Bazel server using the command "bazel shutdown".
Build label: 0.17.1
Build target: bazel-out/k8-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
Build time: Fri Sep 14 10:39:25 2018 (1536921565)
Build timestamp: 1536921565
Build timestamp as int: 1536921565

Feature requests: what underlying problem are you trying to solve with this feature?

I'm just not sure if that's expected with the new version.

Bugs: what's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.

docker run -it ubuntu:xenial bash
apt-get update && apt-get install -y wget unzip
wget https://github.com/bazelbuild/bazel/releases/download/0.17.1/bazel-0.17.1-installer-linux-x86_64.sh
chmod +x bazel-0.17.1-installer-linux-x86_64.sh
./chmod +x bazel-0.17.1-installer-linux-x86_64.sh
bazel version

What operating system are you running Bazel on?

ubuntu xenial docker container

What's the output of bazel info release?

bazel info release
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.protobuf.UnsafeUtil (file:/root/.cache/bazel/_bazel_root/install/28c1d2ace0add449e21862ae9f2d2289/_embedded_binaries/A-server.jar) to field java.lang.String.value
WARNING: Please consider reporting this to the maintainers of com.google.protobuf.UnsafeUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
ERROR: The 'info' command is only supported from within a workspace.
WARNING: --batch mode is deprecated. Please instead explicitly shut down your Bazel server using the command "bazel shutdown".

Have you found anything relevant by searching the web?

#5599

@xingao267 xingao267 changed the title Illegal reflective access by com.google.protobuf.UnsafeUtil Illegal reflective access by com.google.protobuf.UnsafeUtil when running Bazel 0.17.1 Sep 14, 2018
@cushon
Copy link
Contributor

cushon commented Sep 14, 2018

I'm just not sure if that's expected with the new version.

We should suppress those warnings, but it's harmless to ignore them for now.

And you should only see these on startup, i.e. subsequent runs of bazel version shouldn't print warnings.

@jgavris
Copy link
Contributor

jgavris commented Sep 14, 2018

I see them during every build, not just on startup.

INFO: From Checking the completeness of the deps for external/androidx_vectordrawable_vectordrawable_1_0_0_beta01/_aar/androidx_vectordrawable_vectordrawable_1_0_0_beta01/classes_and_libs_merged.jar:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.protobuf.UnsafeUtil (file:/private/var/tmp/_bazel_jgavris/install/5d78d317e261432eb3abd12e67760ca9/_embedded_binaries/embedded_tools/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/ImportDepsChecker_deploy.jar) to field java.nio.Buffer.address
WARNING: Please consider reporting this to the maintainers of com.google.protobuf.UnsafeUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

@cushon
Copy link
Contributor

cushon commented Sep 14, 2018

That's a different instance of the same problem, the same suppression flags are needed here too:

main_class = "com.google.devtools.build.importdeps.Main",

@steeve
Copy link
Contributor

steeve commented Sep 15, 2018

When buliding an android app it does spit out a lot of them building the build, it seems everytime a java process it started.

@iirina
Copy link
Contributor

iirina commented Sep 25, 2018

Was this fixed?

@iirina iirina added the team-Rules-Java Issues for Java rules label Sep 25, 2018
@xingao267
Copy link
Member Author

efdb3f6 seems not cherry-picked in 0.17.2. Will it be included in 0.18 @aehlig?

@bczwartk
Copy link

bczwartk commented Oct 18, 2018

efdb3f6 seems not cherry-picked in 0.17.2. Will it be included in 0.18 @aehlig?

AFAICT, the problem still exists in 0.18.0. ANd the warnings are printed sometimes when I run bazel command. E.g. it happend for 'bazel version' and 'bazel shutdown', or help
Running on Ubuntu 16.04.5 LTS

@alexeagle
Copy link
Contributor

Several of us on Angular team observed this after update to 0.18

@philwo
Copy link
Member

philwo commented Oct 24, 2018

Building Bazel HEAD using Bazel 0.18.0 in IntelliJ on my Arch Linux box (no matter if system JDK is 8 or 10) spams the build log with ~100 of these annoying messages.

@cushon
Copy link
Contributor

cushon commented Oct 24, 2018

@alexeagle @philwo this affects every Java binary that transitively depends on protos: protocolbuffers/protobuf#3781

Which specific tools are you seeing generate warnings? The fix is to add the following JVM flags:

    jvm_flags = [
        # quiet warnings from com.google.protobuf.UnsafeUtil,
        # see: https://github.com/google/protobuf/issues/3781
        "-XX:+IgnoreUnrecognizedVMOptions",
        "--add-opens=java.base/java.nio=ALL-UNNAMED",
        "--add-opens=java.base/java.lang=ALL-UNNAMED",
    ],

@philwo
Copy link
Member

philwo commented Nov 2, 2018

@cushon This is what I'm seeing:

INFO: From Parsing java package strings for //src/main/java/com/google/devtools/build/lib/windows/jni:processes:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.protobuf.repackaged.UnsafeUtil (file:/home/philwo/.IntelliJIdea2018.2/config/plugins/ijwb/aspect/tools/PackageParser_deploy.jar) to field java.nio.Buffer.address
WARNING: Please consider reporting this to the maintainers of com.google.protobuf.repackaged.UnsafeUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

I guess it comes from our IntelliJ plugin?

@cgruber
Copy link
Contributor

cgruber commented Nov 8, 2018

I'm getting it, and I quote: "From parsing Android resources for //path/to/package".

Then I get the full set of warnings. It'd be superlatively nice to shut them up, especially since literally every android_library seems to be triggering it. I really don't want to add it to every library target.

@davispuh
Copy link

Still happens with 0.21.0

$ bazel version
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.protobuf.UnsafeUtil (file:/tmp/Viesis/.cache/bazel/_bazel_Viesis/install/90846db665bd444d85cd9a305cffe931/_embedded_binaries/A-server.jar) to field java.nio.Buffer.address
WARNING: Please consider reporting this to the maintainers of com.google.protobuf.UnsafeUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
WARNING: --batch mode is deprecated. Please instead explicitly shut down your Bazel server using the command "bazel shutdown".
INFO: Invocation ID: c58d4149-cb9e-4139-aabc-60b7e0b2921e
Build label: 0.21.0- (@non-git)
Build target: bazel-out/k8-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
Build time: Thu Dec 20 19:15:52 2018 (1545333352)
Build timestamp: 1545333352
Build timestamp as int: 1545333352

@lberki lberki added team-Core Skyframe, bazel query, BEP, options parsing, bazelrc and removed team-Rules-Java Issues for Java rules labels Mar 14, 2019
@ericfelly
Copy link
Contributor

Dupe of #5439?

@buchgr buchgr removed their assignment Jan 9, 2020
@meisterT
Copy link
Member

This is fixed as of Bazel from today.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
team-Core Skyframe, bazel query, BEP, options parsing, bazelrc
Projects
None yet
Development

No branches or pull requests