"git am" crash (builtin/apply.c:2108) + small repro

4 messages, 2 authors, 2016-06-15 · open the first message on its own page

"git am" crash (builtin/apply.c:2108) + small repro

From: Alexey Spiridonov <hidden>
Date: 2016-06-15 22:54:54

This reproduces in trunk, 1.7.8.4, and 1.7.9.5.

I suspect this has to do with a whitespace + no trailing newline
issues. The patch was generated by 1.7.9.5. I mangled it by hand to
get it to be small, but the initial crash happened on a large,
real-world output of "git format-patch".

Error messages:

~/GIT-AM-CRASH$ ../git/git am crashy.patch
Applying: Git crash bug
git: builtin/apply.c:2108: update_pre_post_images: Assertion
`fixed_preimage.nr == preimage->nr' failed.
/home/lesha/GIT-AM-CRASH/../git/git-am: line 811: 23819 Aborted
         git apply --index "$dotest/patch"
Patch failed at 0001 Git crash bug
The copy of the patch that failed is found in:
   /home/lesha/GIT-AM-CRASH/.git/rebase-apply/patch
When you have resolved this problem, run "git am --resolved".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

Repro steps:

mkdir GIT-AM-CRASH
cd GIT-AM-CRASH
# download files into this directory
git init .
mkdir -p meep/spork
mv __init__.py meep/spork
git add meep/spork/__init__.py
git ci -am 'moo'
git am crashy.patch

Hope this helps!

Alexey

Re: "git am" crash (builtin/apply.c:2108) + small repro

From: Nguyen Thai Ngoc Duy <hidden>
Date: 2016-06-15 22:54:55

On Tue, Oct 2, 2012 at 1:33 AM, Alexey Spiridonov [off-list ref] wrote:
This reproduces in trunk, 1.7.8.4, and 1.7.9.5.
fwiw, I cannot reproduce it (git-apply does not crash). I tried both
versions and 1.8.0-rc1. Just in case the attached files are somehow
corrupted, this is sha1sum from my side:

3d4711cd15d9617e0d3a52bbcd7def898c12c328  crashy.patch
fd63cc32338823f216a6684ce5118a69113968c8  meep/spork/__init__.py
I suspect this has to do with a whitespace + no trailing newline
issues. The patch was generated by 1.7.9.5. I mangled it by hand to
get it to be small, but the initial crash happened on a large,
real-world output of "git format-patch".

Error messages:

~/GIT-AM-CRASH$ ../git/git am crashy.patch
Applying: Git crash bug
git: builtin/apply.c:2108: update_pre_post_images: Assertion
`fixed_preimage.nr == preimage->nr' failed.
/home/lesha/GIT-AM-CRASH/../git/git-am: line 811: 23819 Aborted
         git apply --index "$dotest/patch"
Patch failed at 0001 Git crash bug
The copy of the patch that failed is found in:
   /home/lesha/GIT-AM-CRASH/.git/rebase-apply/patch
When you have resolved this problem, run "git am --resolved".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

Repro steps:

mkdir GIT-AM-CRASH
cd GIT-AM-CRASH
# download files into this directory
git init .
mkdir -p meep/spork
mv __init__.py meep/spork
git add meep/spork/__init__.py
git ci -am 'moo'
git am crashy.patch

Hope this helps!

Alexey
-- 
Duy

Re: "git am" crash (builtin/apply.c:2108) + small repro

From: Alexey Spiridonov <hidden>
Date: 2016-06-15 22:54:56

Thanks a lot for trying this.

My hashes match. I just re-reproduced it on two flavors of Linux (64
and 32-bit), with two different Git versions (see below). What
platform are you using?


lesha@buryonka-ubuntu32:~$ mkdir GIT-AM-CRASH
lesha@buryonka-ubuntu32:~$ cd GIT-AM-CRASH
lesha@buryonka-ubuntu32:~/GIT-AM-CRASH$ mv ../crashy.patch ../__init__.py .
lesha@buryonka-ubuntu32:~/GIT-AM-CRASH$ git init .
Initialized empty Git repository in /home/lesha/GIT-AM-CRASH/.git/
lesha@buryonka-ubuntu32:~/GIT-AM-CRASH$ mkdir -p meep/spork
lesha@buryonka-ubuntu32:~/GIT-AM-CRASH$ mv __init__.py meep/spork
lesha@buryonka-ubuntu32:~/GIT-AM-CRASH$ git add meep/spork/__init__.py
lesha@buryonka-ubuntu32:~/GIT-AM-CRASH$ git ci -am 'moo'
[master (root-commit) fa8f8fd] moo
 1 file changed, 6 insertions(+)
 create mode 100644 meep/spork/__init__.py
lesha@buryonka-ubuntu32:~/GIT-AM-CRASH$ git am crashy.patch
Applying: Git crash bug
git: builtin/apply.c:1990: update_pre_post_images: Assertion
`fixed_preimage.nr == preimage->nr' failed.
Aborted (core dumped)
Patch failed at 0001 Git crash bug
When you have resolved this problem run "git am --resolved".
If you would prefer to skip this patch, instead run "git am --skip".
To restore the original branch and stop patching run "git am --abort".
lesha@buryonka-ubuntu32:~/GIT-AM-CRASH$ sha1
sha1pass  sha1sum
lesha@buryonka-ubuntu32:~/GIT-AM-CRASH$ sha1sum crashy.patch
meep/spork/__init__.py
3d4711cd15d9617e0d3a52bbcd7def898c12c328  crashy.patch
fd63cc32338823f216a6684ce5118a69113968c8  meep/spork/__init__.py
lesha@buryonka-ubuntu32:~/GIT-AM-CRASH$ git --version
git version 1.7.9.5
lesha@buryonka-ubuntu32:~/GIT-AM-CRASH$ uname -a
Linux buryonka-ubuntu32 3.2.0-31-generic #50-Ubuntu SMP Fri Sep 7
16:17:36 UTC 2012 i686 i686 i386 GNU/Linux


[lesha@dev037 ~/GIT-AM-CRASH] git init .
Initialized empty Git repository in /home/lesha/GIT-AM-CRASH/.git/
[lesha@dev037 ~/GIT-AM-CRASH] mkdir -p meep/spork
[lesha@dev037 ~/GIT-AM-CRASH] mv __init__.py meep/spork
[lesha@dev037 ~/GIT-AM-CRASH] git add meep/spork/__init__.py
[lesha@dev037 ~/GIT-AM-CRASH] git ci -am 'moo'
[master (root-commit) 4c3fe5f] moo
 1 files changed, 6 insertions(+), 0 deletions(-)
 create mode 100644 meep/spork/__init__.py
[lesha@dev037 ~/GIT-AM-CRASH] git am crashy.patch
Applying: Git crash bug
git: builtin/apply.c:1989: update_pre_post_images: Assertion
`fixed_preimage.nr == preimage->nr' failed.
/usr/libexec/git-core/git-am: line 789: 32074 Aborted
git apply --index "$dotest/patch"
Patch failed at 0001 Git crash bug
When you have resolved this problem run "git am --resolved".
If you would prefer to skip this patch, instead run "git am --skip".
To restore the original branch and stop patching run "git am --abort".
[lesha@dev037 ~/GIT-AM-CRASH] git --version
git version 1.7.8.4
[lesha@dev037 ~/GIT-AM-CRASH] uname -a
Linux dev037 2.6.38.4 #63 SMP Mon Feb 13 16:22:45 PST 2012 x86_64
x86_64 x86_64 GNU/Linux
[lesha@dev037 ~/GIT-AM-CRASH] sha1sum crashy.patch meep/spork/__init__.py
3d4711cd15d9617e0d3a52bbcd7def898c12c328  crashy.patch
fd63cc32338823f216a6684ce5118a69113968c8  meep/spork/__init__.py

-a

On Wed, Oct 3, 2012 at 4:27 AM, Nguyen Thai Ngoc Duy [off-list ref] wrote:
On Tue, Oct 2, 2012 at 1:33 AM, Alexey Spiridonov [off-list ref] wrote:
quoted
This reproduces in trunk, 1.7.8.4, and 1.7.9.5.
fwiw, I cannot reproduce it (git-apply does not crash). I tried both
versions and 1.8.0-rc1. Just in case the attached files are somehow
corrupted, this is sha1sum from my side:

3d4711cd15d9617e0d3a52bbcd7def898c12c328  crashy.patch
fd63cc32338823f216a6684ce5118a69113968c8  meep/spork/__init__.py
quoted
I suspect this has to do with a whitespace + no trailing newline
issues. The patch was generated by 1.7.9.5. I mangled it by hand to
get it to be small, but the initial crash happened on a large,
real-world output of "git format-patch".

Error messages:

~/GIT-AM-CRASH$ ../git/git am crashy.patch
Applying: Git crash bug
git: builtin/apply.c:2108: update_pre_post_images: Assertion
`fixed_preimage.nr == preimage->nr' failed.
/home/lesha/GIT-AM-CRASH/../git/git-am: line 811: 23819 Aborted
         git apply --index "$dotest/patch"
Patch failed at 0001 Git crash bug
The copy of the patch that failed is found in:
   /home/lesha/GIT-AM-CRASH/.git/rebase-apply/patch
When you have resolved this problem, run "git am --resolved".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

Repro steps:

mkdir GIT-AM-CRASH
cd GIT-AM-CRASH
# download files into this directory
git init .
mkdir -p meep/spork
mv __init__.py meep/spork
git add meep/spork/__init__.py
git ci -am 'moo'
git am crashy.patch

Hope this helps!

Alexey
--
Duy

Re: "git am" crash (builtin/apply.c:2108) + small repro

From: Nguyen Thai Ngoc Duy <hidden>
Date: 2016-06-15 22:54:57

On Wed, Oct 3, 2012 at 10:44 PM, Alexey Spiridonov
[off-list ref] wrote:
Thanks a lot for trying this.

My hashes match. I just re-reproduced it on two flavors of Linux (64
and 32-bit), with two different Git versions (see below). What
platform are you using?
x86, 32 bit. Perhaps it has something to do with your configuration
(config files, hooks, attributes). Assuming you use standard
repository templates, you create new repo in your test so hooks and
attributes are out. Is there anything suspicuous in "git config -l"?
-- 
Duy
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help