Re: git svn import failure : write .git/Git_svn_hash_BmjclS: Bad file descriptor
- From
Valery Yundin <yuvalery@gmail.com>
- Date
- Jan 30, 2015, 00:40 UTC
- Message-ID
- <CABNxngMVsaSLmzf0ZsaXZqXhD+hOaRmz-uuSzm0ALDFhKjnrXA@mail.gmail.com>
- In-Reply-To
- <20150130002247.GA22519@dcvr.yhbt.net>
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, Valery
On 30 January 2015 at 01:22, Eric Wong <normalperson@yhbt.net> wrote:
Show 61 quoted lines
> 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