Re: `git fetch origin --prune --atomic` core dumped

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 25/03/20 04:36PM, 李葵 wrote:
> Thank you for filling out a Git bug report!
> Please answer the following questions to help us understand your issue.
> 
> What did you do before the bug happened? (Steps to reproduce your issue)
> 
>   ```bash
>   git clone --quiet --mirror https://github.com/git/git-merge.git git-merge.git.git
>   git clone --quiet --mirror git-merge.git.git git-merge.git
> 
>   git --git-dir=git-merge.git.git branch test main
> 
>   touch git-merge.git/refs/heads/test.lock
>   git --git-dir=git-merge.git fetch origin --prune --atomic "+refs/*:refs/*"
>   ```
> 
> What did you expect to happen? (Expected behavior)
> 
>   Without core dumped.
> 
> What happened instead? (Actual behavior)
> 
>   ```bash
>   $ git clone --quiet --mirror https://github.com/git/git-merge.git git-merge.git.git
> 
>   $ git clone --quiet --mirror git-merge.git.git git-merge.git
> 
>   $ git --git-dir=git-merge.git.git branch test main
>   branch 'test' set up to track 'origin/main'.
> 
>   $ touch git-merge.git/refs/heads/test.lock
> 
>   $ git --git-dir=git-merge.git fetch origin --prune --atomic "+refs/*:refs/*"
>   From /tmp/git/git-merge.git
>    * [new branch]      test       -> test
>   error: cannot lock ref 'refs/heads/test': Unable to create '/tmp/git/git-merge.git/refs/heads/test.lock': File exists.
>   
>   Another git process seems to be running in this repository, e.g.
>   an editor opened by 'git commit'. Please make sure all processes
>   are terminated then try again. If it still fails, a git process
>   may have crashed in this repository earlier:
>   remove the file manually to continue.
>   BUG: refs.c:2435: abort called on a closed reference transaction
>   [1]    1298748 IOT instruction (core dumped)  git --git-dir=git-merge.git fetch origin --prune --atomic "+refs/*:refs/*"
> 
>   $ ls
>   core.1298748  git-merge.git  git-merge.git.git
>   ```
> 
> What's different between what you expected and what actually happened?
> 
>   Without core dumped.
> 
> Anything else you want to add:
> 
> Please review the rest of the bug report below.
> You can delete any lines you don't wish to share.
> 
> 
> [System Info]
> git version:
> git version 2.49.0.rc1.120.g683c54c999
> cpu: x86_64
> built from commit: 683c54c999c301c2cd6f715c411407c413b1d84e
> sizeof-long: 8
> sizeof-size_t: 8
> shell-path: /bin/sh
> libcurl: 7.81.0
> OpenSSL: OpenSSL 3.0.2 15 Mar 2022
> zlib: 1.2.11
> uname: Linux 6.8.0-52-generic #53~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Jan 15 19:18:46 UTC 2 x86_64
> compiler info: gnuc: 11.4
> libc info: glibc: 2.35
> $SHELL (typically, interactive shell): /usr/bin/zsh
> 
> 
> [Enabled Hooks]
> not run from a git repository - no hooks to show

I was able to reproduce the reported bug with the following:

    git init foo &&
    git -C foo commit --allow-empty -m init &&
    git clone --mirror foo bar.git &&
    git -C bar.git branch test master &&
    touch bar.git/refs/heads/test.lock &&
    git -C bar.git fetch origin --prune --atomic "+refs/*:refs/*"

This bisects to c92abe71df (builtin/fetch: fix leaking transaction with
`--atomic`, 2024-08-22). cc'ing the author.

-Justin




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux