Re: Git clone failures on armv7, was Re: Git core dump checking out main on armv7 [independent armv7 replication, not on RPi2B]

From: Mark Millard <marklmi_at_yahoo.com>
Date: Thu, 27 Jun 2024 16:46:42 UTC
I have replicated one of the failure types on a Orange Pi+ 2ed
armv7 (2 GiBytes of RAM). My odd variant of top observed:

354824Ki MaxObs(Act+Wir+Lndry)
354824Ki MaxObs(Act+Wir+Lndry+SwapUsed)

It failed on the first try (after modernizing
the FreeBSD and package installations involved,
given the old/unknown status of things before
the update):

# git clone --depth=1 -o freebsd ssh://anongit@192.158.248.9/src.git /tmp/DOES-NOT_EXIST
Cloning into '/tmp/DOES-NOT_EXIST'...
remote: Enumerating objects: 104642, done.
remote: Counting objects: 100% (104642/104642), done.
remote: Compressing objects: 100% (88919/88919), done.
remote: Total 104642 (delta 22161), reused 43509 (delta 11808), pack-reused 0 (from 0)
Receiving objects: 100% (104642/104642), 344.48 MiB | 1.08 MiB/s, done.
fatal: pack is corrupted (SHA1 mismatch)
fatal: fetch-pack: invalid index-pack output

Context:

# swapinfo
Device          1K-blocks     Used    Avail Capacity
/dev/gpt/BPIM3swp2   3773440        0  3773440     0%

# uname -apKU
FreeBSD OPiP2E-RPi2v1p1 15.0-CURRENT FreeBSD 15.0-CURRENT main-n270963-609cdb12b962 GENERIC arm armv7 1500019 1500019

That is from package base installation.

[How does one well identify a specific pkgbase set's
synchronization point for identifying what is observed
to have a problem?]


# ifconfig
awg0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
        options=8000b<RXCSUM,TXCSUM,VLAN_MTU,LINKSTATE>
        ether 02:81:57:76:75:e7
        inet . . . netmask 0xffffff00 broadcast 192.168.1.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
. . .


Note: armv7 Package building by ampere2 has been broken for
       some time so there are not recent updates to the
       official packages: The builds noted date back to late
       April.

# pkg info pkg
pkg-1.21.2
Name           : pkg
Version        : 1.21.2
Installed on   : Thu Jun 27 08:07:53 2024 PDT
Origin         : ports-mgmt/pkg
Architecture   : FreeBSD:15:armv7
Prefix         : /usr/local
Categories     : ports-mgmt
Licenses       : BSD2CLAUSE
Maintainer     : pkg@FreeBSD.org
WWW            : https://github.com/freebsd/pkg
Comment        : Package manager
Options        :
DOCS           : on
Shared Libs provided:
libpkg.so.4
Annotations    :
FreeBSD_version: 1500018
build_timestamp: 2024-04-26T09:30:15+0000
built_by       : poudriere-git-3.4.1-30-g79e3edcd
port_checkout_unclean: no
port_git_hash  : 3d57467ec90
ports_top_checkout_unclean: no
ports_top_git_hash: 1c7a816cd0a
repo_type      : binary
repository     : FreeBSD
Flat size      : 40.7MiB
Description    :
Package management tool

# pkg info git
git-2.44.0
Name           : git
Version        : 2.44.0
Installed on   : Thu Jun 27 08:18:30 2024 PDT
Origin         : devel/git
Architecture   : FreeBSD:15:armv7
Prefix         : /usr/local
Categories     : devel
Licenses       : GPLv2
Maintainer     : garga@FreeBSD.org
WWW            : https://git-scm.com/
Comment        : Distributed source code management tool  Options        :
CONTRIB        : on
CURL           : on
GITWEB         : on
HTMLDOCS       : off
ICONV          : on
NLS            : on
PCRE2          : on
PERL           : on
SEND_EMAIL     : on
SUBTREE        : on
Shared Libs required:
libpcre2-8.so.0
libintl.so.8
libexpat.so.1
libcurl.so.4
Annotations    :
FreeBSD_version: 1500018
build_timestamp: 2024-04-30T03:01:54+0000
built_by       : poudriere-git-3.4.1-30-g79e3edcd
cpe            : cpe:2.3:a:git-scm:git:2.44.0:::::freebsd15:armv7
flavor         : default
port_checkout_unclean: no
port_git_hash  : a99af2ec54e
ports_top_checkout_unclean: no
ports_top_git_hash: 5a022ef6a46
repo_type      : binary
repository     : FreeBSD
Flat size      : 33.6MiB
Description    :
Git is a free and open source distributed version control system designed to
handle everything from small to very large projects with speed and efficiency.


[How does one well identify a specific pkg set's synchronization point for
identifying what is observed to have a problem?]




While it is not a great context for well-made comparisons, I used an older
personal kernel build (main-n268827-75464941dc17-dirty which has 1500015)
to boot and tried the experiment. This is a non-debug kernel, unlike the
above. This also did not have swap enabled.

# git clone --depth=1 -o freebsd ssh://anongit@192.158.248.9/src.git /tmp/DOES-NOT-EXIST
Cloning into '/tmp/DOES-NOT-EXIST'...
remote: Enumerating objects: 104642, done.
remote: Counting objects: 100% (104642/104642), done.
remote: Compressing objects: 100% (88919/88919), done.
remote: Total 104642 (delta 22161), reused 43522 (delta 11808), pack-reused 0 (from 0)
Receiving objects: 100% (104642/104642), 344.49 MiB | 1.12 MiB/s, done.
Resolving deltas: 100% (22161/22161), done.
fatal: missing blob object '837133bfd4602deb2cca4a4b4d81f4b75f47aa2a'
fatal: remote did not send all necessary objects

So it also replicated another example type of failure, not that such tells
us much.



===
Mark Millard
marklmi at yahoo.com