Re: git svn import failure : write .git/Git_svn_hash_BmjclS: Bad file descriptor
From: Valery Yundin <hidden>
Date: 2016-06-15 23:03:42
Hi, It seems that the same commit dfa72fdb96 is responsible for the error in "git svn clone https://geuz.org/svn/gmsh/trunk". But unlike in my case, the patch doesn't fix it. Cheers, Valery On 31 January 2015 at 13:51, Nico Schlömer [off-list ref] wrote:
I tried the patch and I still get[...] r100 = e2a9b5baa2cebb18591ecb04ff350410d52f36de (refs/remotes/git-svn) Unexpected result returned from git cat-file at /home/nschloe/share/perl/5.18.2/Git/SVN/Fetcher.pm line 335. Failed to read object 619f9d1d857fb287d06a70c9dac6b8b534d0de6a at /home/nschloe/share/perl/5.18.2/Git/SVN/Fetcher.pm line 336, <GEN16> line 757. error closing pipe: Bad file descriptor at /home/nschloe/libexec/git-core/git-svn line 0. error closing pipe: Bad file descriptor at /home/nschloe/libexec/git-core/git-svn line 0.whengit svn clone https://geuz.org/svn/gmsh/trunkCheers, Nico On Fri, Jan 30, 2015 at 2:30 AM, Eric Wong [off-list ref] wrote:quoted
Valery Yundin [off-list ref] wrote:quoted
Hi, Your patch seems to fix the problem. I tried several times and I can svn clone the whole repository in one go without a crash.Thanks for the confirmation. Cc-ing a few other folks who encountered this problem (and Bcc-ing some folks who emailed me privately). Can the rest of you give this patch a try on your respective platforms and confirm the fix? http://article.gmane.org/gmane.comp.version-control.git/263168/raw (also: http://mid.gmane.org/20150130002247.GA22519@dcvr.yhbt.net ) Junio: assuming all goes well with testers, can you apply my patch to the appropriate maintenance tracks with Tested-by:s? I'm going offline in a few hours and don't think I'll be around much the next week or so. Thanks.quoted
Thanks, Valery On 30 January 2015 at 01:22, Eric Wong [off-list ref] wrote:quoted
Valery Yundin [off-list ref] wrote:quoted
Hi, Here you go: dfa72fdb96befbd790f623bb2909a347176753c2 is the first bad commitThank you. Can you give the following patch a try? I have not been able to reproduce the problem on my end. If it doesn't work out, I might be out of ideas for a bit :/ Increasing --log-window-size will help you run longer without the error, but that's not ideal as it can also eat memory. -----------------------8<---------------------- From: Eric Wong <redacted> Subject: [PATCH] git-svn: destroy all tempfiles when reloading RA This may fix the errors some users are seeing with: "write .git/Git_svn_hash_XXXXXX: Bad file descriptor" Thanks to Valery Yundin for helping bisect the problem introduced in commit dfa72fdb96befbd790f623bb2909a347176753c2 (git-svn: reload RA every log-window-size) Cc: Valery Yundin <redacted> Signed-off-by: Eric Wong <redacted> --- perl/Git.pm | 6 ++++++ perl/Git/SVN/Ra.pm | 1 + 2 files changed, 7 insertions(+)diff --git a/perl/Git.pm b/perl/Git.pm index b5905ee..698018e 100644 --- a/perl/Git.pm +++ b/perl/Git.pm@@ -1347,6 +1347,12 @@ sub temp_path { $TEMP_FILES{$temp_fd}{fname}; } +sub temp_reset_all { + unlink values %TEMP_FILEMAP if %TEMP_FILEMAP; + %TEMP_FILEMAP = (); + %TEMP_FILES = (); +} + sub END { unlink values %TEMP_FILEMAP if %TEMP_FILEMAP; }diff --git a/perl/Git/SVN/Ra.pm b/perl/Git/SVN/Ra.pm index 622535e..878679d 100644 --- a/perl/Git/SVN/Ra.pm +++ b/perl/Git/SVN/Ra.pm@@ -397,6 +397,7 @@ sub gs_fetch_loop_common { $_[0] = undef; $self = undef; $RA = undef; + Git->temp_reset_all; $gpool->clear; $self = Git::SVN::Ra->new($ra_url); $ra_invalid = undef; --EW--