-
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
LAUNCHER ERROR: Cannot calculate relative path from absolute path under different drives. #5125
Comments
Workaround for bazelbuild/bazel#5125.
I've changed our Windows images to not use a local SSD, thus now everything is on drive C. However, there's one test that still fails:
https://buildkite.com/bazel/bazel-bazel/builds/1828#947a6adc-df29-45be-b9a1-2ab832430636 |
Hopefully this makes the path to the output_base short enough to temporarily workaround bazelbuild/bazel#5125.
The workaround of renaming the Buildkite user to „b“ has worked, Bazel’s CI job is green again. |
Thanks for reporting and finding a workaround! The error comes from the java_binary launcher ( |
@philwo , may I close this bug? |
Hi, thanks! No, IMHO this is a remaining P1 breakage that may even warrant a patch release - the Windows CI runs on hacky workarounds at the moment and stuff might break any moment if someone checks in a test that has a longer name than the one that broke. I would like to revert both workarounds (disabling local SSDs and the shortened user name) in a few days. |
Thanks, that means #5135 is P1 too. |
@buchgr Please rollback bazelbuild/continuous-integration@fb39222 and bazelbuild/continuous-integration@44188d9 as soon as possible (i.e. when a Bazel release is out that has this bug fix). This will restore normal functionality of the Windows VMs. :) This was a bad enough breakage (unfortunately not detected pre-release) that it would have been warranted to rollback the 0.13.0 release, but we don't have any process for that, so I didn't and instead cooked up this semi-working workaround to at least get our presubmits working again. |
@philwo will do. thanks for the pointers! |
I believe f96f037 only fixed The long path error is due to on Windows we no longer respect To fix it, I think we can enable |
|
@laszlocsomor Sounds good, but D drive might already exist on our CI as a SSD drive? @buchgr can confirm that. |
Sure, any other drive will do. |
Some thoughts:
|
You can use
Do you have any particular concerns about that? The mapping goes away after machine reboot.
We can use one of those directories then! I recommended |
We don't reboot the machines usually, so my worry was that the first time we run a job, Bazel successfully runs "subst" to map some folder to a drive letter. However, it's not guaranteed that the "subst" is removed after the CI job is finished, so the next time the same job runs, the "subst" might fail, if a mapping from an earlier job run on the machine still exists, doesn't it? Or did you mean to do the "subst" in the machine startup script? That would be no problem then :) |
Either of your ideas work. We can But we don't even have to use |
Sounds good - in that case I'd recommend going with Is the |
SGTM.
No, inner Bazels do not inherit the outer Bazel's |
@philwo The output user root in test is set here: bazel/src/test/shell/testenv.sh Line 265 in 6b3e482
which is: bazel/src/test/shell/testenv.sh Lines 245 to 246 in 6b3e482
|
Assigning to @buchgr because: @philwo
@buchgr
|
@dslomov, @meteorcloudy , @buchgr and myself just discussed and summarized the current situation:
What's unclear to me and ask @buchgr to help answering, is:
|
I found that this was a bug in Bazel's CI script. Seems to have been a leftover from when we used to have a |
Here's how it should look like and looked like until 0.13.0 was released and I had to disable local SSDs on our Windows VMs due to the new behavior ("Bazel now puts output user root underneath the user's home directory") and this bug ("Java launcher doesn't work when files are on two different drives"):
This all worked fine until 0.13.0 was released and Bazel no longer respected Notably:
Here's what we should do:
Here's what we shouldn't do:
|
@philwo, thanks for the details. As for using |
@laszlocsomor I believe it's fine to do that. We were always using %TEMP% as the output root, it didn't cause any file deleted unexpectedly problem. |
It will if we RDP to the CI machines and manually run Bazel on them, because then we'll create a junction pointing to the JDK and trigger bazelbuild/continuous-integration#252 (comment). As long as we do not RDP into CI machines and run builds on them, we'll be fine. |
@buchgr : do you have any updates on this bug? Which ongoing release should it be blocking? |
@meteorcloudy : can we close this bug? |
Yes, all issues mentioned here are fixed. |
Workaround for bazelbuild/bazel#5125.
Hopefully this makes the path to the output_base short enough to temporarily workaround bazelbuild/bazel#5125.
Workaround for bazelbuild/bazel#5125.
Hopefully this makes the path to the output_base short enough to temporarily workaround bazelbuild/bazel#5125.
I just upgraded our CI machines to Bazel 0.13.0 and now Bazel is failing on most tests:
https://buildkite.com/bazel/bazel-bazel/builds/1828#ee4e74ed-79f0-470b-abb7-283f5eaed5dd
Bazel 0.12.0 still had:
Bazel 0.13.0 has:
@laszlocsomor Does this ring a bell?
The text was updated successfully, but these errors were encountered: