-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
Unable to fetch/merge certain pull requests #19910
Comments
Maybe related, or another symptom of the underlying issue: #19908 |
That's not an option. The tests (AKA prowjob custom resources) contain the exact SHAs that get tested and we need that information to be accurate in order to determine what revisions got tested. |
Filed a support ticket with GitHub and cc'ed kubernetes github admin team, as I'm going to be unavailable the rest of the week |
Some of the PRs that have referenced this issue above have since been merged or at least have passing tests now. It's difficult for me to tell if there actually is a workaround for this issue that I'm missing, or if those were not actually experiencing the same issues my PR is. My PR had all tests passing last night. I made a couple updates this morning in response to feedback and all tests immediately failed with this merging issue. Here's what I've tried so far, unfortunately none of these approaches have worked:
Does anyone have any potential workarounds here? This does seem to be limited to a subset of PRs but I'm not sure what makes the affected PRs unique. |
cc @kubernetes/owners The GitHub admin team has escalated the issue with GitHub. Haven't heard any potential solutions/workarounds from them yet. |
This appears to be blocking non-PR fetches for the releases underway right now. ref: https://kubernetes.slack.com/archives/CJH2GBF7Y/p1605122968337200?thread_ts=1605122968.337200&cid=CJH2GBF7Y |
that way i solved it my PR was:
|
@neolit123 thanks for the tip! Unfortunately I've tried that multiple times and it is not working for me. |
I am with @robscott . Tried rebase/push and all tests still fail immediately. |
If you see this issue with other PRs or areas, please cross-link here. We're using this as the tracking issue. |
I've tried a few more variations of rebasing and even tried squashing my commits into one just to see if that would help. Still no luck. There are a lot of PRs referencing this issue, but from what I can tell, only 5 of them are experiencing the same merging issue I am (some variation of
It sounds like rebasing PRs has worked for some people like @andrewsykim, but that has not worked for me. |
Okay so I played a bit around with this (using claytons pr kubernetes/kubernetes#94866) and it seems the virtual reference is messed up somehow, but the commit is still available:
So I guess we could workaround this by explicitly fetching the commit. Does that have any drawbacks? |
Just to update from Github's side - they are still investigating. They are aware of this thread and are following it. |
I don't understand what has changed, but the PR I've been working on has started passing tests again (kubernetes/kubernetes#96440). This was after pushing a change to a commit. This does not seem like it should be fundamentally different than the various things I've tried earlier so maybe something was fixed on the Github side? |
Mitigates kubernetes#19910 and avoid races where the pull head differs from the SHA because a push occured in the meantime.
Here is the latest from GitHub Hi Bob, Thanks for your patience while we investigate the errors you encountered. We've flagged this ticket with our engineering team and they've advised the current workflow you're using is not recommended. Because updates to the API and refs are triggered by post-receive hooks, in certain circumstances they will fail to run. If these failures occur again our engineering team recommends pushing another commit (empty or otherwise) to the branch which should re-trigger the post-receive hooks to run. Based on the above feedback from our engineering team we recommend reviewing your current workflows, or implement the work around to re-trigger post-receive hooks via another commit. To help minimise the re-occurrence of the issues seen in this ticket the next time you have a release, I've gone ahead and created an internal issue for our engineering team to check why the repository has behaved the way it has for this release cycle. When we have more information to share, or if we require further details from you, we'll be in touch. If you have any further questions, please let us know. Regards, |
Thank you! Post another commit works for me🎉 |
So we can and probably should update our clone code to cope with this (xref #19928) but:
|
Email sent to k-dev: https://groups.google.com/g/kubernetes-dev/c/FEH9suc_UGo |
@mrbobbytables if it's at all possible I think it might be useful to gently push back on the idea that this is "not recommended" - it's an API they provide explicitly for this purpose and their official tooling uses it. Hopefully such a "not recommended" stance is not GitHub Engineering saying that this won't be fixed... |
Here is the latest update from GitHub: Hi Bob, As it has been a little while since our last response I wanted to let you know what our engineering team have done to reduce the rate of failures you have raised in this support request. Our infrastructure replicates repository data across several hosts in various geographically disperse data centres. The higher than normal repository traffic in the lead up to your code freeze window, along with the longer round trip time to one of the active replica's, resulted in a higher than normal failure rate for some operations. The engineering team have since removed the host with the longer round trip time from participating as an active replica for the kubernetes/kubernetes repository, and as such you should now be seeing a much lower failure rate. We understand the period of peak load has since passed so it may also have a positive impact on reducing the failure rate. Please let us know if you're still unable to fetch specific refs, or not seeing the correct commit SHA returned by the API. For instances where these failures are still occurring we recommend pushing another empty commit to trigger the post-receive hooks. With the above replica no longer active, we believe you should see the last of these issues resolved. The internal issue with our engineering team is still open, and we'll continue to work with them to understand how we can mitigate what we saw during this release period, from occurring again at your next release cycle. If you have any questions, please let us know. Regards, |
/close To recap:
We've received no further reports of this issue reoccurring in the last 7 days, so I am calling this issue closed. Huge thanks to @alvaroaleman for updating prow, @mrbobbytables for coordinating with Github, and @justaugustus for notifying kubernetes-dev@ |
@spiffxp: Closing this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
What happened:
Some presubmits are failing because they either:
These errors are reproducible locally
What you expected to happen:
To be able to fetch a pull request from github, and have its HEAD SHA agree with github's API
How to reproduce it (as minimally and precisely as possible):
Please provide links to example occurrences, if any:
Anything else we need to know?:
I strongly suspect this is a problem on GitHub's side. Mostly making this issue to reference in areas where this is happening.
One possible workaround / resiliency fix would be to ignore GitHub's API when it comes to choosing which SHA to checkout for which pull request.
The text was updated successfully, but these errors were encountered: