commit | 3dd2b932d42fe86112899550d21452409cb3c4b0 | [log] [tgz] |
---|---|---|
author | Philipp Schrader <philipp.schrader@gmail.com> | Fri Jun 10 04:16:33 2022 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Fri Jun 10 04:17:57 2022 -0700 |
tree | 9cace20b9f2fca5452dcede9e96d5581dded3f8c | |
parent | c945c161016235397c8954516a0f1a9660bbcf83 [diff] |
Fix null pointer crash with `bazel coverage` on only incompatible tests This is a follow-up to 2f1ff6fa17c3c30b2533bffe81f40eab06b453b9. That patch accidentally introduced a crash when running coverage on tests where all tests are incompatible. FATAL: bazel crashed due to an internal error. Printing stack trace: java.lang.NullPointerException: Null reportGenerator at com.google.devtools.build.lib.bazel.coverage.AutoValue_CoverageArgs.<init>(AutoValue_CoverageArgs.java:68) at com.google.devtools.build.lib.bazel.coverage.CoverageArgs.create(CoverageArgs.java:58) at com.google.devtools.build.lib.bazel.coverage.CoverageReportActionBuilder.createCoverageActionsWrapper(CoverageReportActionBuilder.java:226) at com.google.devtools.build.lib.bazel.coverage.BazelCoverageReportModule$1.createCoverageReportActionsWrapper(BazelCoverageReportModule.java:98) at com.google.devtools.build.lib.analysis.BuildView.createResult(BuildView.java:558) at com.google.devtools.build.lib.analysis.BuildView.update(BuildView.java:492) at com.google.devtools.build.lib.buildtool.AnalysisPhaseRunner.runAnalysisPhase(AnalysisPhaseRunner.java:227) at com.google.devtools.build.lib.buildtool.AnalysisPhaseRunner.execute(AnalysisPhaseRunner.java:137) at com.google.devtools.build.lib.buildtool.BuildTool.buildTargets(BuildTool.java:266) at com.google.devtools.build.lib.buildtool.BuildTool.processRequest(BuildTool.java:506) at com.google.devtools.build.lib.buildtool.BuildTool.processRequest(BuildTool.java:474) at com.google.devtools.build.lib.runtime.commands.TestCommand.doTest(TestCommand.java:148) at com.google.devtools.build.lib.runtime.commands.TestCommand.exec(TestCommand.java:113) at com.google.devtools.build.lib.runtime.BlazeCommandDispatcher.execExclusively(BlazeCommandDispatcher.java:584) at com.google.devtools.build.lib.runtime.BlazeCommandDispatcher.exec(BlazeCommandDispatcher.java:231) at com.google.devtools.build.lib.server.GrpcServerImpl.executeCommand(GrpcServerImpl.java:550) at com.google.devtools.build.lib.server.GrpcServerImpl.lambda$run$1(GrpcServerImpl.java:614) at io.grpc.Context$1.run(Context.java:566) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source) This patch fixes the crash by handling the situation properly. This results in all tests being skipped and reported as being skipped. A new test validates the correct behaviour. Closes #15645. PiperOrigin-RevId: 454132787 Change-Id: Id1cd4109f96d90bbdc114b0bbe7f5c5046d47c27
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel rebuilds only what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.
One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.
Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.
Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.
Follow our tutorials:
To report a security issue, please email security@bazel.build with a description of the issue, the steps you took to create the issue, affected versions, and, if known, mitigations for the issue. Our vulnerability management team will respond within 3 working days of your email. If the issue is confirmed as a vulnerability, we will open a Security Advisory. This project follows a 90 day disclosure timeline.
See CONTRIBUTING.md