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

x/build/cmd/gomote: cannot push VERSION file #57068

Closed
rsc opened this issue Dec 3, 2022 · 3 comments
Closed

x/build/cmd/gomote: cannot push VERSION file #57068

rsc opened this issue Dec 3, 2022 · 3 comments
Assignees
Labels
Builders x/build issues (builders, bots, dashboards) FrozenDueToAge NeedsFix The path to resolution is known, but the work has not been done.
Milestone

Comments

@rsc
Copy link
Contributor

rsc commented Dec 3, 2022

When I gomote push from a tree that has a VERSION file, the VERSION file does not end up on the gomote.

% gomote push $vm
2022/12/03 15:41:27 installing go1.4
2022/12/03 15:41:41 Remote doesn't have "src/go/internal/gcimporter/exportdata.go"
2022/12/03 15:41:41 Remote doesn't have "src/runtime/testdata/testprog/sleep.go"
2022/12/03 15:41:41 Remote doesn't have "src/runtime/testdata/testprog/syscalls_none.go"
2022/12/03 15:41:41 Remote doesn't have "src/runtime/trace/trace_stack_test.go"
2022/12/03 15:41:41 Remote doesn't have "src/syscall/exec_aix_test.go"
2022/12/03 15:41:41 Remote doesn't have 12036 files (only showed 5).
2022/12/03 15:41:41 Remote lacks a VERSION file; sending a fake one
2022/12/03 15:41:48 Uploading 12037 new/changed files; 79017606 byte .tar.gz
...

From the messages, you'd think that the fake VERSION is sent before the upload, meaning the upload should overwrite it. But 'gomote ssh' to the VM and printing the VERSION file shows the devel gomote.XXXXX content and not the one I have locally (which says go1.99).

Maybe there's an ordering issue, I thought, so I ran gomote push again. That definitely sends the VERSION file:

% gomote push $vm
...
2022/12/03 15:43:39 Remote's VERSION digest is "06e08a5ba98f3aa9496d990cc86f4a96fde9687d"; want "f51724a3e09407fd330585a259fd89c12e40e159"
...
% echo -n 'devel gomote.XXXXX' | openssl sha1
06e08a5ba98f3aa9496d990cc86f4a96fde9687d
% echo go1.99 | openssl sha1
f51724a3e09407fd330585a259fd89c12e40e159
% 

And yet, it remains unchanged on the server (confirmed with 'type VERSION' in ssh). It is as though the buildlet discards uploaded VERSION files. This is on the windows-amd64-2016 gomote, in case the specific buildlet matters.

I have been working on reproducible builds, which are only possible in non-devel trees, so I need to send a VERSION file. I have resorted to running a batch file that echoes the right content into the VERSION file before running the command I want to run. So I'm not blocked, but it was a surprising thing to debug in the first place.

@rsc rsc added the NeedsFix The path to resolution is known, but the work has not been done. label Dec 3, 2022
@rsc rsc added this to the Unreleased milestone Dec 3, 2022
@gopherbot gopherbot added the Builders x/build issues (builders, bots, dashboards) label Dec 3, 2022
@bcmills
Copy link
Contributor

bcmills commented Dec 5, 2022

It is as though the buildlet discards uploaded VERSION files.

I think that may happen here?
https://cs.opensource.google/go/x/build/+/master:cmd/gomote/push.go;l=472-481;drc=3e9a6d306718ba1bf48b2b1ca07a8194f41d54d7

@heschi
Copy link
Contributor

heschi commented Dec 5, 2022

cc @golang/release

@gopherbot
Copy link

Change https://go.dev/cl/460775 mentions this issue: cmd/gomote: push local VERSION file if it exists

@cagedmantis cagedmantis self-assigned this Jan 5, 2023
@golang golang locked and limited conversation to collaborators Jan 5, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Builders x/build issues (builders, bots, dashboards) FrozenDueToAge NeedsFix The path to resolution is known, but the work has not been done.
Projects
Archived in project
Development

No branches or pull requests

5 participants