Exception potentially related to base_workspace

50 views
Skip to first unread message

glin...@gmail.com

unread,
Dec 1, 2015, 12:29:41 PM12/1/15
to bazel-discuss
Hi,

I'm hitting an exception when running "bazel build /...". If I build/test my packages not from the root directory, then everything works fine. ie. "bazel build //packages/..." has no problems. So it appears "bazel build /..." is somehow building the base_workspace as well?

My workspace has a "third_party/gtest" inside of it, and I'm using that for my cc_tests. Bazel gives this callstack:
ERROR: /home/gary/bazel/base_workspace/third_party/BUILD:370:12: Label '//third_party:gtest/gtest_main.cc' crosses boundary of subpackage 'third_party/gtest' (have you deleted third_party/gtest/BUILD? If so, use the --deleted_packages=third_party/gtest option).
ERROR: /home/gary/bazel/base_workspace/third_party/BUILD:370:12: Label '//third_party:gtest/gtest-all.cc' crosses boundary of subpackage 'third_party/gtest' (have you deleted third_party/gtest/BUILD? If so, use the --deleted_packages=third_party/gtest option).
ERROR: /home/gary/bazel/base_workspace/third_party/BUILD:374:12: Label '//third_party:gtest/gtest.h' crosses boundary of subpackage 'third_party/gtest' (have you deleted third_party/gtest/BUILD? If so, use the --deleted_packages=third_party/gtest option).
ERROR: package contains errors: third_party.
Unhandled exception thrown during build; message: null
INFO: Elapsed time: 1.217s
java.lang.NullPointerException
at com.google.devtools.build.lib.packages.NonconfigurableAttributeMapper.get(NonconfigurableAttributeMapper.java:45)
at com.google.devtools.build.lib.packages.TargetUtils.hasConstraint(TargetUtils.java:146)
at com.google.devtools.build.lib.packages.TargetUtils.hasManualTag(TargetUtils.java:74)
at com.google.devtools.build.lib.pkgcache.FilteringPolicies$FilterManual.shouldRetain(FilteringPolicies.java:72)
at com.google.devtools.build.lib.pkgcache.FilteringPolicies$AndFilteringPolicy.shouldRetain(FilteringPolicies.java:104)
at com.google.devtools.build.lib.skyframe.RecursivePackageProviderBackedTargetPatternResolver.findTargetsBeneathDirectory(RecursivePackageProviderBackedTargetPatternResolver.java:159)
at com.google.devtools.build.lib.cmdline.TargetPattern$TargetsBelowDirectory.eval(TargetPattern.java:448)
at com.google.devtools.build.lib.skyframe.TargetPatternFunction.compute(TargetPatternFunction.java:54)
at com.google.devtools.build.skyframe.ParallelEvaluator.bubbleErrorUp(ParallelEvaluator.java:1447)
at com.google.devtools.build.skyframe.ParallelEvaluator.waitForCompletionAndConstructResult(ParallelEvaluator.java:1301)
at com.google.devtools.build.skyframe.ParallelEvaluator.eval(ParallelEvaluator.java:1269)
at com.google.devtools.build.skyframe.ParallelEvaluator.eval(ParallelEvaluator.java:1230)
at com.google.devtools.build.skyframe.InMemoryMemoizingEvaluator.evaluate(InMemoryMemoizingEvaluator.java:189)
at com.google.devtools.build.skyframe.SequentialBuildDriver.evaluate(SequentialBuildDriver.java:38)
at com.google.devtools.build.lib.skyframe.SkyframeExecutor.targetPatterns(SkyframeExecutor.java:1090)
at com.google.devtools.build.lib.skyframe.SkyframeTargetPatternEvaluator.parseTargetPatternKeys(SkyframeTargetPatternEvaluator.java:134)
at com.google.devtools.build.lib.skyframe.SkyframeTargetPatternEvaluator.parseTargetPatternList(SkyframeTargetPatternEvaluator.java:117)
at com.google.devtools.build.lib.skyframe.SkyframeTargetPatternEvaluator.parseTargetPatternList(SkyframeTargetPatternEvaluator.java:56)
at com.google.devtools.build.lib.pkgcache.LegacyLoadingPhaseRunner.getTargetsToBuild(LegacyLoadingPhaseRunner.java:417)
at com.google.devtools.build.lib.pkgcache.LegacyLoadingPhaseRunner.execute(LegacyLoadingPhaseRunner.java:134)
at com.google.devtools.build.lib.buildtool.BuildTool.runLoadingPhase(BuildTool.java:401)
at com.google.devtools.build.lib.buildtool.BuildTool.buildTargets(BuildTool.java:165)
at com.google.devtools.build.lib.buildtool.BuildTool.processRequest(BuildTool.java:334)
at com.google.devtools.build.lib.runtime.commands.BuildCommand.exec(BuildCommand.java:71)
at com.google.devtools.build.lib.runtime.BlazeCommandDispatcher.exec(BlazeCommandDispatcher.java:370)
at com.google.devtools.build.lib.runtime.BlazeRuntime$3.exec(BlazeRuntime.java:1009)
at com.google.devtools.build.lib.server.RPCService.executeRequest(RPCService.java:65)
at com.google.devtools.build.lib.server.RPCServer.executeRequest(RPCServer.java:434)
at com.google.devtools.build.lib.server.RPCServer.serve(RPCServer.java:229)
at com.google.devtools.build.lib.runtime.BlazeRuntime.serverMain(BlazeRuntime.java:968)
at com.google.devtools.build.lib.runtime.BlazeRuntime.main(BlazeRuntime.java:765)
at com.google.devtools.build.lib.bazel.BazelMain.main(BazelMain.java:55)

I tried removing my local "third_party/gtest" directory, and then I get a different exception:

Unhandled exception thrown during build; message: Unrecoverable error while evaluating node 'TARGET_PATTERN:...' (requested by nodes )
INFO: Elapsed time: 1.269s
java.lang.RuntimeException: Unrecoverable error while evaluating node 'TARGET_PATTERN:...' (requested by nodes )
at com.google.devtools.build.skyframe.ParallelEvaluator$Evaluate.run(ParallelEvaluator.java:968)
at com.google.devtools.build.lib.concurrent.AbstractQueueVisitor$WrappedRunnable.run(AbstractQueueVisitor.java:499)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
at com.google.devtools.build.lib.packages.NonconfigurableAttributeMapper.get(NonconfigurableAttributeMapper.java:45)
at com.google.devtools.build.lib.packages.TargetUtils.hasConstraint(TargetUtils.java:146)
at com.google.devtools.build.lib.packages.TargetUtils.hasManualTag(TargetUtils.java:74)
at com.google.devtools.build.lib.pkgcache.FilteringPolicies$FilterManual.shouldRetain(FilteringPolicies.java:72)
at com.google.devtools.build.lib.pkgcache.FilteringPolicies$AndFilteringPolicy.shouldRetain(FilteringPolicies.java:104)
at com.google.devtools.build.lib.skyframe.RecursivePackageProviderBackedTargetPatternResolver.findTargetsBeneathDirectory(RecursivePackageProviderBackedTargetPatternResolver.java:159)
at com.google.devtools.build.lib.cmdline.TargetPattern$TargetsBelowDirectory.eval(TargetPattern.java:448)
at com.google.devtools.build.lib.skyframe.TargetPatternFunction.compute(TargetPatternFunction.java:54)
at com.google.devtools.build.skyframe.ParallelEvaluator$Evaluate.run(ParallelEvaluator.java:932)
... 4 more

Thanks,
Gary

Brian Silverman

unread,
Dec 1, 2015, 2:14:26 PM12/1/15
to glin...@gmail.com, bazel-discuss
Yes, it does that... (see #421). The NullPointerExceptions look like something new, possibly related to #594.

https://groups.google.com/d/msgid/bazel-discuss/CAFenBsYU8%3DPvttUUemZxkztAHtz7XzXRb2bFJPJusPuovxmydw%40mail.gmail.com has some more discussion about the base_workspace issue. Basically, with current Bazel master, you probably don't need --base_workspace and reverting b10157f88e8c2903d73712f0d5887b8b204d2bd9 fixes some similar issues caused by Bazel recursing through symlinks for //... (might not be necessary at this point).


--
You received this message because you are subscribed to the Google Groups "bazel-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bazel-discus...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bazel-discuss/f7654ec0-5c4e-4d55-865d-5936fd262282%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

glin...@gmail.com

unread,
Dec 2, 2015, 4:33:50 PM12/2/15
to bazel-discuss, glin...@gmail.com
On Tuesday, December 1, 2015 at 11:14:26 AM UTC-8, Brian Silverman wrote:
> Yes, it does that... (see #421). The NullPointerExceptions look like something new, possibly related to #594.

Thanks Brian! Glad to know these are tracked already. For now, I can just avoid root level builds, so it's an easy workaround.

glin...@gmail.com

unread,
Dec 8, 2015, 12:36:38 PM12/8/15
to bazel-discuss, glin...@gmail.com
I synced to latest master since I saw #594 was fixed, but I'm still seeing the same exception unfortunately.

I tried to work around it, but hit another exception just a little bit further down, so it's not one I can easily hack around. Filed https://github.com/bazelbuild/bazel/issues/696 to track.

Interesting part of the callstack included inline:
Caused by: java.lang.IllegalArgumentException: No such attribute tags in rule bazel-j2objc
at com.google.devtools.build.lib.packages.AbstractAttributeMapper.getIndexWithTypeCheck(AbstractAttributeMapper.java:223)
at com.google.devtools.build.lib.packages.AbstractAttributeMapper.get(AbstractAttributeMapper.java:64)
at com.google.devtools.build.lib.packages.NonconfigurableAttributeMapper.get(NonconfigurableAttributeMapper.java:49)

On Tuesday, December 1, 2015 at 11:14:26 AM UTC-8, Brian Silverman wrote:
Reply all
Reply to author
Forward
0 new messages