bug: invalid sha1 pointer in cache-tree

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

 



Hello,

I've filled out git-bugreport after discussing this issue with a git
developer. I'm not sure if it's user error, disk corruption, or a bug
in git. Any insight would be appreciated!

What did you do before the bug happened? (Steps to reproduce your issue)

I was attempting to merge a tag into the current branch. Before I did so, I
reset'd away a commit I didn't want:

$ git reset HEAD~1 --hard
error: Could not read 7c03aa457205afa2def273129653bea6225c5a0a
HEAD is now at 387b8b425339 spi: fsi: Print status on error

I fetched the tag I was after:

$ git fetch  stable
>From https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux
   ed99bf0e81b5..2760370b1649  linux-4.14.y         -> stable/linux-4.14.y
   e34184f53363..ff079d726eb6  linux-4.19.y         -> stable/linux-4.19.y
   1392fe82d7fb..c67099a5bc53  linux-4.4.y          -> stable/linux-4.4.y
   9e8a7b701479..aa13f01432a2  linux-4.9.y          -> stable/linux-4.9.y
   5aa003b38148..3a9842b42e42  linux-5.10.y         -> stable/linux-5.10.y
   924356b31dcb..fe024e004fa3  linux-5.14.y         -> stable/linux-5.14.y
   faaca480fd5c..4f508aa9dd3b  linux-5.4.y          -> stable/linux-5.4.y
   080735f6de74..dddcb86bb323  linux-rolling-lts    -> stable/linux-rolling-lts
   66035107bbad..cc0dfcda549b  linux-rolling-stable ->
stable/linux-rolling-stable
   5d6ab0bb408f..3906fe9bb7f1  master               -> stable/master
 * [new tag]                   v4.14.251            -> v4.14.251
 * [new tag]                   v4.14.252            -> v4.14.252
 * [new tag]                   v4.19.211            -> v4.19.211
 * [new tag]                   v4.19.212            -> v4.19.212
 * [new tag]                   v4.19.213            -> v4.19.213
 * [new tag]                   v4.4.289             -> v4.4.289
 * [new tag]                   v4.9.287             -> v4.9.287
 * [new tag]                   v5.10.73             -> v5.10.73
 * [new tag]                   v5.10.74             -> v5.10.74
 * [new tag]                   v5.10.75             -> v5.10.75
 * [new tag]                   v5.14.12             -> v5.14.12
 * [new tag]                   v5.14.13             -> v5.14.13
 * [new tag]                   v5.14.14             -> v5.14.14
 * [new tag]                   v5.15-rc5            -> v5.15-rc5
 * [new tag]                   v5.15-rc6            -> v5.15-rc6
 * [new tag]                   v5.15-rc7            -> v5.15-rc7
 * [new tag]                   v5.4.153             -> v5.4.153
 * [new tag]                   v5.4.154             -> v5.4.154
 * [new tag]                   v5.4.155             -> v5.4.155

This is the merge. I hadn't touched any of these files (I don't work on
arch/xtensa at all), so this was unexpected:

$ git merge v5.14.14
error: Your local changes to the following files would be overwritten by merge:
  arch/xtensa/include/uapi/asm/Kbuild
arch/xtensa/include/uapi/asm/auxvec.h
arch/xtensa/include/uapi/asm/byteorder.h
arch/xtensa/include/uapi/asm/ioctls.h
arch/xtensa/include/uapi/asm/ipcbuf.h
arch/xtensa/include/uapi/asm/mman.h
arch/xtensa/include/uapi/asm/msgbuf.h
arch/xtensa/include/uapi/asm/param.h
arch/xtensa/include/uapi/asm/poll.h
arch/xtensa/include/uapi/asm/posix_types.h
arch/xtensa/include/uapi/asm/ptrace.h
arch/xtensa/include/uapi/asm/sembuf.h
arch/xtensa/include/uapi/asm/setup.h
arch/xtensa/include/uapi/asm/shmbuf.h
arch/xtensa/include/uapi/asm/sigcontext.h
arch/xtensa/include/uapi/asm/signal.h
arch/xtensa/include/uapi/asm/sockios.h
arch/xtensa/include/uapi/asm/stat.h
arch/xtensa/include/uapi/asm/swab.h
arch/xtensa/include/uapi/asm/termbits.h
arch/xtensa/include/uapi/asm/types.h
arch/xtensa/include/uapi/asm/unistd.h arch/xtensa/kernel/.gitignore
arch/xtensa/kernel/Makefile arch/xtensa/kernel/align.S
arch/xtensa/kernel/asm-offsets.c arch/xtensa/kernel/coprocessor.S
arch/xtensa/kernel/entry.S arch/xtensa/kernel/head.S
arch/xtensa/kernel/hw_breakpoint.c arch/xtensa/kernel/irq.c
arch/xtensa/kernel/jump_label.c arch/xtensa/kernel/mcount.S
arch/xtensa/kernel/module.c arch/xtensa/kernel/mxhead.S
arch/xtensa/kernel/pci-dma.c arch/xtensa/kernel/pci.c
arch/xtensa/kernel/perf_event.c arch/xtensa/kernel/platform.c
arch/xtensa/kernel/process.c arch/xtensa/kernel/ptrace.c
arch/xtensa/kernel/s32c1i_selftest.c arch/xtensa/kernel/setup.c
arch/xtensa/kernel/signal.c arch/xtensa/kernel/smp.c
arch/xtensa/kernel/stacktrace.c arch/xtensa/kernel/syscall.c
arch/xtensa/kernel/syscalls/Makefile
arch/xtensa/kernel/syscalls/syscall.tbl arch/xtensa/kernel/time.c
arch/xtensa/kernel/traps.c arch/xtensa/kernel/vectors.S
arch/xtensa/kernel/vmlinux.lds.S arch/xtensa/kernel/xtensa_ksyms.c
arch/xtensa/lib/Makefile arch/xtensa/lib/checksum.S
arch/xtensa/lib/memcopy.S arch/xtensa/lib/memset.S
arch/xtensa/lib/pci-auto.c arch/xtensa/lib/strncpy_user.S
arch/xtensa/lib/strnlen_user.S arch/xtensa/lib/usercopy.S
arch/xtensa/mm/Makefile arch/xtensa/mm/cache.c arch/xtensa/mm/fault.c
arch/xtensa/mm/highmem.c arch/xtensa/mm/init.c
arch/xtensa/mm/ioremap.c arch/xtensa/mm/kasan_init.c
arch/xtensa/mm/misc.S arch/xtensa/mm/mmu.c arch/xtensa/mm/tlb.c
arch/xtensa/platforms/iss/Makefile arch/xtensa/platforms/iss/console.c
arch/xtensa/platforms/iss/include/platform/serial.h
arch/xtensa/platforms/iss/include/platform/simcall-gdbio.h
arch/xtensa/platforms/iss/include/platform/simcall-iss.h
arch/xtensa/platforms/iss/include/platform/simcall.h
arch/xtensa/platforms/iss/network.c arch/xtensa/platforms/iss/setup.c
arch/xtensa/platforms/iss/simdisk.c
arch/xtensa/platforms/xt2000/Makefile
arch/xtensa/platforms/xt2000/include/platform/hardware.h
arch/xtensa/platforms/xt2000/include/platform/serial.h
arch/xtensa/platforms/xt2000/setup.c
arch/xtensa/platforms/xtfpga/Makefile
arch/xtensa/platforms/xtfpga/include/platform/hardware.h
arch/xtensa/platforms/xtfpga/include/platform/lcd.h
arch/xtensa/platforms/xtfpga/include/platform/serial.h
arch/xtensa/platforms/xtfpga/lcd.c
arch/xtensa/platforms/xtfpga/setup.c
arch/xtensa/variants/csp/include/variant/core.h
arch/xtensa/variants/csp/include/variant/tie-asm.h
arch/xtensa/variants/csp/include/variant/tie.h
arch/xtensa/variants/dc232b/include/variant/core.h
arch/xtensa/variants/dc232b/include/variant/tie-asm.h
arch/xtensa/variants/dc232b/include/variant/tie.h
arch/xtensa/variants/dc233c/include/variant/core.h
arch/xtensa/variants/dc233c/include/variant/tie-asm.h
arch/xtensa/variants/dc233c/include/variant/tie.h
arch/xtensa/variants/de212/include/variant/core.h
arch/xtensa/variants/de212/include/variant/tie-asm.h
arch/xtensa/variants/de212/include/variant/tie.h
arch/xtensa/variants/fsf/include/variant/core.h
arch/xtensa/variants/fsf/include/variant/tie-asm.h
arch/xtensa/variants/fsf/include/variant/tie.h
arch/xtensa/variants/test_kc705_be/include/variant/core.h
arch/xtensa/variants/test_kc705_be/include/variant/tie-asm.h
arch/xtensa/variants/test_kc705_b
$ git status
On branch dev-5.14
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
    new file:   arch/xtensa/include/uapi/asm/Kbuild
    new file:   arch/xtensa/include/uapi/asm/auxvec.h
    new file:   arch/xtensa/include/uapi/asm/byteorder.h
    new file:   arch/xtensa/include/uapi/asm/ioctls.h
    new file:   arch/xtensa/include/uapi/asm/ipcbuf.h
    new file:   arch/xtensa/include/uapi/asm/mman.h
    new file:   arch/xtensa/include/uapi/asm/msgbuf.h
    new file:   arch/xtensa/include/uapi/asm/param.h
    new file:   arch/xtensa/include/uapi/asm/poll.h
    new file:   arch/xtensa/include/uapi/asm/posix_types.h
    new file:   arch/xtensa/include/uapi/asm/ptrace.h
    new file:   arch/xtensa/include/uapi/asm/sembuf.h
    new file:   arch/xtensa/include/uapi/asm/setup.h
    new file:   arch/xtensa/include/uapi/asm/shmbuf.h
    new file:   arch/xtensa/include/uapi/asm/sigcontext.h
    new file:   arch/xtensa/include/uapi/asm/signal.h
    new file:   arch/xtensa/include/uapi/asm/sockios.h
    new file:   arch/xtensa/include/uapi/asm/stat.h
    new file:   arch/xtensa/include/uapi/asm/swab.h
    new file:   arch/xtensa/include/uapi/asm/termbits.h
    new file:   arch/xtensa/include/uapi/asm/types.h
    new file:   arch/xtensa/include/uapi/asm/unistd.h
    new file:   arch/xtensa/kernel/.gitignore
    new file:   arch/xtensa/kernel/Makefile
    new file:   arch/xtensa/kernel/align.S
    new file:   arch/xtensa/kernel/asm-offsets.c
    new file:   arch/xtensa/kernel/coprocessor.S
    new file:   arch/xtensa/kernel/entry.S
    new file:   arch/xtensa/kernel/head.S
    new file:   arch/xtensa/kernel/hw_breakpoint.c
    new file:   arch/xtensa/kernel/irq.c
    new file:   arch/xtensa/kernel/jump_label.c
    new file:   arch/xtensa/kernel/mcount.S
    new file:   arch/xtensa/kernel/module.c
    new file:   arch/xtensa/kernel/mxhead.S
    new file:   arch/xtensa/kernel/pci-dma.c
    new file:   arch/xtensa/kernel/pci.c
    new file:   arch/xtensa/kernel/perf_event.c
    new file:   arch/xtensa/kernel/platform.c
    new file:   arch/xtensa/kernel/process.c
    new file:   arch/xtensa/kernel/ptrace.c
    new file:   arch/xtensa/kernel/s32c1i_selftest.c
    new file:   arch/xtensa/kernel/setup.c
    new file:   arch/xtensa/kernel/signal.c
    new file:   arch/xtensa/kernel/smp.c
    new file:   arch/xtensa/kernel/stacktrace.c
    new file:   arch/xtensa/kernel/syscall.c
    new file:   arch/xtensa/kernel/syscalls/Makefile
    new file:   arch/xtensa/kernel/syscalls/syscall.tbl
    new file:   arch/xtensa/kernel/time.c
    new file:   arch/xtensa/kernel/traps.c
    new file:   arch/xtensa/kernel/vectors.S
    new file:   arch/xtensa/kernel/vmlinux.lds.S
    new file:   arch/xtensa/kernel/xtensa_ksyms.c
    new file:   arch/xtensa/lib/Makefile
    new file:   arch/xtensa/lib/checksum.S
    new file:   arch/xtensa/lib/memcopy.S
    new file:   arch/xtensa/lib/memset.S
    new file:   arch/xtensa/lib/pci-auto.c
    new file:   arch/xtensa/lib/strncpy_user.S
    new file:   arch/xtensa/lib/strnlen_user.S
    new file:   arch/xtensa/lib/usercopy.S
    new file:   arch/xtensa/mm/Makefile
    new file:   arch/xtensa/mm/cache.c
    new file:   arch/xtensa/mm/fault.c
    new file:   arch/xtensa/mm/highmem.c
    new file:   arch/xtensa/mm/init.c
    new file:   arch/xtensa/mm/ioremap.c
    new file:   arch/xtensa/mm/kasan_init.c
    new file:   arch/xtensa/mm/misc.S
    new file:   arch/xtensa/mm/mmu.c
    new file:   arch/xtensa/mm/tlb.c
    new file:   arch/xtensa/platforms/iss/Makefile
    new file:   arch/xtensa/platforms/iss/console.c
    new file:   arch/xtensa/platforms/iss/include/platform/serial.h
    new file:   arch/xtensa/platforms/iss/include/platform/simcall-gdbio.h
    new file:   arch/xtensa/platforms/iss/include/platform/simcall-iss.h
    new file:   arch/xtensa/platforms/iss/include/platform/simcall.h
    new file:   arch/xtensa/platforms/iss/network.c
    new file:   arch/xtensa/platforms/iss/setup.c
    new file:   arch/xtensa/platforms/iss/simdisk.c
    new file:   arch/xtensa/platforms/xt2000/Makefile
    new file:   arch/xtensa/platforms/xt2000/include/platform/hardware.h
    new file:   arch/xtensa/platforms/xt2000/include/platform/serial.h
    new file:   arch/xtensa/platforms/xt2000/setup.c
    new file:   arch/xtensa/platforms/xtfpga/Makefile
    new file:   arch/xtensa/platforms/xtfpga/include/platform/hardware.h
    new file:   arch/xtensa/platforms/xtfpga/include/platform/lcd.h
    new file:   arch/xtensa/platforms/xtfpga/include/platform/serial.h
    new file:   arch/xtensa/platforms/xtfpga/lcd.c
    new file:   arch/xtensa/platforms/xtfpga/setup.c
    new file:   arch/xtensa/variants/csp/include/variant/core.h
    new file:   arch/xtensa/variants/csp/include/variant/tie-asm.h
    new file:   arch/xtensa/variants/csp/include/variant/tie.h
    new file:   arch/xtensa/variants/dc232b/include/variant/core.h
    new file:   arch/xtensa/variants/dc232b/include/variant/tie-asm.h
    new file:   arch/xtensa/variants/dc232b/include/variant/tie.h
    new file:   arch/xtensa/variants/dc233c/include/variant/core.h
    new file:   arch/xtensa/variants/dc233c/include/variant/tie-asm.h
    new file:   arch/xtensa/variants/dc233c/include/variant/tie.h
    new file:   arch/xtensa/variants/de212/include/variant/core.h
    new file:   arch/xtensa/variants/de212/include/variant/tie-asm.h
    new file:   arch/xtensa/variants/de212/include/variant/tie.h
    new file:   arch/xtensa/variants/fsf/include/variant/core.h
    new file:   arch/xtensa/variants/fsf/include/variant/tie-asm.h
    new file:   arch/xtensa/variants/fsf/include/variant/tie.h
    new file:   arch/xtensa/variants/test_kc705_be/include/variant/core.h
    new file:   arch/xtensa/variants/test_kc705_be/include/variant/tie-asm.h
    new file:   arch/xtensa/variants/test_kc705_be/include/variant/tie.h
    new file:   arch/xtensa/variants/test_kc705_hifi/include/variant/core.h
    new file:   arch/xtensa/variants/test_kc705_hifi/include/variant/tie-asm.h
    new file:   arch/xtensa/variants/test_kc705_hifi/include/variant/tie.h
    new file:   arch/xtensa/variants/test_mmuhifi_c3/include/variant/core.h
    new file:   arch/xtensa/variants/test_mmuhifi_c3/include/variant/tie-asm.h
    new file:   arch/xtensa/variants/test_mmuhifi_c3/include/variant/tie.h

I cleaned up the working tree (rm -rf arch/xtensa && git reset --hard)
and re-attempted the merge:

$ git merge v5.14.14
fatal: unable to read tree 7c03aa457205afa2def273129653bea6225c5a0a

This is the error I now see when I re-attempt the merge.

What did you expect to happen? (Expected behavior)

The tag to be merged.

What happened instead? (Actual behavior)

The merge failed:

$ git merge v5.14.14
fatal: unable to read tree 7c03aa457205afa2def273129653bea6225c5a0a

What's different between what you expected and what actually happened?

I expected the merge to complete successfully.

Anything else you want to add:

I have tree git trees involved:

linus, a clone of torvald's tree
stable, a bare clone of the stable tree. it was cloned with a
--reference to linus
openbmc, a clone of a kernel tree that has a --reference to both
stable and linus.

I did a fsck and saw this:

error: 7c03aa457205afa2def273129653bea6225c5a0a: invalid sha1 pointer
in cache-tree
broken link from    tree 385b33c97554b2ab43b7dea822b34e10e9d7ce66 (:)
              to    tree 7c03aa457205afa2def273129653bea6225c5a0a (:configs/)


I have since tried re-fetching all three repositories in turn, and
this had no change:

git fetch-pack --all https://github.com/openbmc/linux
git fetch-pack --all
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch-pack --all
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

I also tried removing and re-cloning the stable tree (an the assumption that
this is where the objects that make up the problematic v5.14.14 tag should come
from), but this did not help. I have however changed the output of git fsck:

$ git merge v5.14.14
fatal: unable to read tree 385b33c97554b2ab43b7dea822b34e10e9d7ce66

$ git fsck
...
error: 385b33c97554b2ab43b7dea822b34e10e9d7ce66: invalid sha1 pointer
in cache-tree
broken link from    tree 61a337aed7681b506b935b507a422fc5983ba4f3 (:)
              to    tree 385b33c97554b2ab43b7dea822b34e10e9d7ce66 (:powerpc/)


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.33.0
cpu: x86_64
no commit associated with this build
sizeof-long: 8
sizeof-size_t: 8
shell-path: /bin/sh
uname: Linux 5.14.0-2-amd64 #1 SMP Debian 5.14.9-2 (2021-10-03) x86_64
compiler info: gnuc: 10.2
libc info: glibc: 2.33
$SHELL (typically, interactive shell): /bin/bash


[Enabled Hooks]

Cheers,

Joel



[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