-
Notifications
You must be signed in to change notification settings - Fork 273
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
Cannot jj git push
to Github Error: unexpected http status code: 500; class=Http (34) or unpacking the sent packfile failed on the remote; class=Net (12)
#3832
Comments
A search across GitHub gives me r-universe-org/help#152 (comment), where a similar issue seems to arise because of what seems to be a malformed Git commit signature. Is it possible to verify if there's such a malformed commit in the repository, perhaps through |
Thanks for the reply. We don't use GPG signature. I tried
|
It seems that the problem occurs whever we edit one of the files of our repo. We cannot push with that error:
if we do
|
After more investigation, the error occurs when we edit some large files (100KB) and try to push. But pushing the same files with git works. |
For more context, we have a large repo with many files and a long history containing large files. Is |
iirc, libgit2 (which jj uses for fetch/push) doesn't support the v2 protocol. The stuff to be exchanged would be different between https://git-scm.com/docs/protocol-v2 Appears that the protocol can be downgraded by |
@yuja thanks for chiming in. I am not sure if I get your suggestion right. Would that be a way to break the git push to see if github server relies on |
I tried to push a large file to our repo with git protocol v1 and it works: |
Does that happen only after you modify a large file? Does Is the repo publicly available so we can try it ourselves? |
I'm working on the same repo as @jbcdnr .
It seems this issue is quite flaky. We saw this mostly happen on large files. But here is what I just tried:
Yesterday we created multiple commits that we couldn't push and also couldn't fix using
Yes. See above.
Sadly no. But I'm happy to try any command on it for debugging. |
My guess is that that suggests a bug in either libgit2's code for crashing the pack file to send, or in gitoxide's code for creating the objects. The latter seems more likely since gitoxide is a younger project. |
|
No, I don't think it happens on the client, but I think it's because of a bug on the client. I think the client produces an invalid request for some reason. One way to debug it might be to find another tool that lets you push using libgit2. You said it works to push with git right side jj git push fails, right? That seems like an indication that it's actually a libgit2 bug because gitoxide is not involved there. |
@Byron, do you have any idea what might cause the error? FYI, we use Gitoxide to create commits and then use libgit2 to push them. Can you think of anything that Gitoxide does that might result in packfiles that night surprise libgit2? |
libgit2 doesn't provide easy tracing options, but if you can build For example, anything other than |
It's hard for me to imagine how this would be possible. As last ditch effort to rule that idea out could be to replace commit creation with Unpack failures can certainly also happen if the packs integrity check fails, maybe this could be malformed commits, or a malformed graph structure, like missing objects, or other forbidden things. |
@hmeyer, could you try the steps you reported above with jj before 0.11? I think that was the last version before we started using Gitoxide. |
@martinvonz
|
@martinvonz did that just now. Neither commands reported any problems :-/ |
@martinvonz would you have some other ideas on things to try to narrow down the issue? |
I would try following @yuja's suggestion. I think it's going to be hard for the rest of us to figure out what's going on since we can't reproduce the problem. Btw, there was some other issue with |
Btw, could it be that there was some upgrade of git or github/gitlab/etc done on your server? |
If you try debugger path, maybe you can use Alternatively, you can use wireshark to capture HTTPS (not SSH) packets and decrypt. However, you'll probably need to hook some OpenSSL functions to obtain encryption keys. |
@martinvonz we are on a Github enterprise repo hosted by Github. They might have updated something on the server but it's not visible to us. I will try to build from source and see if I can find some more info in the traces. Thank you for your help. |
We could not reproduce the problem anymore on our side, maybe it was a problem with Github servers. I am closing this issue. Thank you for the help and the great work, |
Description
We have been using
jj
for 6 months on a repo stored in Github.Today we cannot push to the repo anymore. We did not change anything to our setup recently.
Some of us also see the following error:
Even more strange, some of us can push but not if it edits certain files. We could not reproduce this half working state on another computer.
Steps to Reproduce the Problem
jj git push
Specifications
The text was updated successfully, but these errors were encountered: