-
Notifications
You must be signed in to change notification settings - Fork 316
Run git-daemon on windows without closing socket immediately. #70
Run git-daemon on windows without closing socket immediately. #70
Conversation
git client had exit with 'read error' some time, if connected git-daemon on windows. The cause was that git-daemon close socket immediately. I fixed this problem. Here is detail the explanation. https://github.com/toshiyuki-ogawa/msysgit/wiki/A-consideration-of--'fatal:-read-error-(invalid-argument)' Signed-off-by: Toshiyuki Ogawa <Toshiyuki.Ogawa.2.71@gmail.com>
MSysGit - the development behind Git for Windows » git #83 FAILURE |
@toshiyuki-ogawa looks like a file is missing here, or maybe Windows-specific stuff is not hidden appropriately behind #if ... #endif guards. |
Does this fix the instability problem of git-daemon on Windows? |
I would think that this fix it. On my windows, my fixed version git works fine. |
@linquize the proof lies in the pudding. Please check it out (and you know that it is easy with the net installer). @toshiyuki-ogawa did you get a chance to address the concerns raised by Jenkins (Cloudbees' buildhive)? |
I got account of the Cloudbee's buildhive now. It would take two or three days to understand it. |
Have you actually looked at the link buildhive attached above? If so, have you followed the "Console Output" link? Please notice this line at the end of said output: upload-pack.c:16:26: fatal error: winsock-proc.h: No such file or directory Following the link to your commit attached by GitHub itself, I cannot fail to see the responsible line: toshiyuki-ogawa@48f7556#L30L15 There is actually a file of the name winsock-proc.h which you add, but it is in compat! So the line should read" #include "compat/winsock-proc.h" if at all. But as you can see from git grep include.*compat/ there are precious few users of that construct in Git outside of By the way, this is not at all to hassle you, but to make the code more maintainable and therefore robust. I hope you understand! |
I had looked Jenkins Console output and understood to modify include of 'winsok-proc.h'. I would like to commit the modification In two days. |
MSysGit - the development behind Git for Windows » git #84 FAILURE |
Signed-off-by: Toshiyuki Ogawa <Toshiyuki.Ogawa.2.71@gmail.com>
Signed-off-by: Toshiyuki Ogawa <Toshiyuki.Ogawa.2.71@gmail.com>
MSysGit - the development behind Git for Windows » git #85 SUCCESS |
The option could be to specify close socket at start time. But I had not need it. Signed-off-by: Toshiyuki Ogawa <Toshiyuki.Ogawa.2.71@gmail.com>
MSysGit - the development behind Git for Windows » git #86 SUCCESS |
compat/win-fd.h and compat/winsock-proc.h have to be after mingw.h. Signed-off-by: Toshiyuki Ogawa <Toshiyuki.Ogawa.2.71@gmail.com>
MSysGit - the development behind Git for Windows » git #87 SUCCESS |
I did some commits to compie collectly on both linux and msysgit. |
@toshiyuki-ogawa sorry for the long delay (I cannot always work as much on Git as I want to). I will have a look at this soon! |
Ok, I will pull the socket-test on my pc and do my best. |
Thank you, @toshiyuki-ogawa! |
@toshiyuki-ogawa did you have any luck with the minimal socket test? |
Yes I did, I am going to push some modification to work it. The push will be done 2 or 3 days later. Now I am writing some descriptions for it. |
Any followup? |
@linquize how about providing a Minimal, Complete and Verifiable Example, seeing as you are able to reproduce the issue. |
What things are outstanding in this pull request? |
@linquize pretty much everything: the patch is very, very large, and it appears that all that is needed is a grace period of a couple of seconds after closing the socket before exiting. If that is true -- and I have not been able to verify this myself, I do not even have a way to reproduce here -- then a substantially smaller patch should do the job (and be much easier to review). |
I am afraid that I have to close this ticket because
I will try to find some time to patch the client so it waits a couple of seconds before reading each chunk of data; hopefully I will get an MCVE that way. If I can, I might take a crack at solving this issue myself. |
git client had exit with 'read error' some time, if connected git-daemon
on windows. The cause was that git-daemon close socket immediately.
I fixed this problem.
Here is detail the explanation.
[https://github.com/toshiyuki-ogawa/msysgit/wiki/A-consideration-of--'fatal:-read-error-(invalid-argument)']
Signed-off-by: Toshiyuki Ogawa Toshiyuki.Ogawa.2.71@gmail.com