Re: git svn import failure : write .git/Git_svn_hash_BmjclS: Bad file descriptor
- From
- Eric Wong <normalperson@yhbt.net>
- Date
- Jan 30, 2015, 01:30 UTC
- Message-ID
- <20150130013017.GA10713@dcvr.yhbt.net>
- In-Reply-To
- <CABNxngMVsaSLmzf0ZsaXZqXhD+hOaRmz-uuSzm0ALDFhKjnrXA@mail.gmail.com>
Valery Yundin <yuvalery@gmail.com> wrote:
Show 5 quoted lines
> 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.
Show 66 quoted lines
> Thanks,
> Valery
>
> On 30 January 2015 at 01:22, Eric Wong <normalperson@yhbt.net> wrote:
> > Valery Yundin <yuvalery@gmail.com> wrote:
> >> Hi,
> >>
> >> Here you go:
> >> dfa72fdb96befbd790f623bb2909a347176753c2 is the first bad commit
> >
> > Thank 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 <normalperson@yhbt.net>
> > 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 <yuvalery@gmail.com>
> > Signed-off-by: Eric Wong <normalperson@yhbt.net>
> > ---
> > 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
> --