Thread (4 messages) 4 messages, 3 authors, 2018-07-29

Re: git broken for AIX somewhere between 2.13.2 and 2.13.3

flat view

From: Ævar Arnfjörð Bjarmason <hidden>
Date: 2018-07-29 20:05:59

On Sun, Jul 29 2018, Michael wrote:
On 29/07/2018 20:10, brian m. carlson wrote:
quoted
On Sun, Jul 29, 2018 at 06:44:26PM +0200, Michael wrote:
quoted
root@x066:[/tmp/xxx]git --version
git version 2.13.3
root@x066:[/tmp/xxx]git clone git@github.com:aixtools/hello-world.git
Cloning into 'hello-world'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3
Receiving objects: 100% (3/3), done.
fatal: pack is corrupted (SHA1 mismatch)
fatal: index-pack failed

p.s. - what surprises me re: git-2.13.2 - no messages about 'Cloning into
...', which version 2.13.1 did give.

I guess a bisect is the next step - between version 2.13.2 and 2.13.3. Other
suggestions welcome!
Are you using SHA1DC on that system, and does compiling with another
SHA-1 implementation help?  There was a change to the SHA1DC code big
endian detection in that commit, which might be the cause of your
problems if you're using a POWER or PowerPC system.
I was thinking it might be an 'endian' issue. So, yes - AIX runs on
POWER, only as BigEndian.

git bisect returns:

michael@x071:[/data/prj/aixtools/git/github/git-master]git bisect bad
Bisecting: 1 revision left to test after this (roughly 1 step)
[35049a2343948f686861e176a8c395f9f67da7b6] Merge branch
'aw/contrib-subtree-doc-asciidoctor' into maint
michael@x071:[/data/prj/aixtools/git/github/git-master]git bisect good
Bisecting: 0 revisions left to test after this (roughly 0 steps)
[9936c1b52a39fa14fca04f937df3e75f7498ac66] sha1dc: update from upstream


michael@x071:[/data/prj/aixtools/git/github/git-master]git bisect bad
9936c1b52a39fa14fca04f937df3e75f7498ac66 is the first bad commit
commit 9936c1b52a39fa14fca04f937df3e75f7498ac66
Author: Ævar Arnfjörð Bjarmason [off-list ref]
Date: Sat Jul 1 22:05:45 2017 +0000

 sha1dc: update from upstream

 Update sha1dc from the latest version by the upstream maintainer[1].

 See commit 6b851e536b ("sha1dc: update from upstream", 2017-06-06) for
 the last update.

 This solves the Big Endian detection on Solaris reported against
 v2.13.2[2], hopefully without any regressions. A version of this has
 been tested on two Solaris SPARC installations, Cygwin (by jturney on
 cygwin@Freenode), and on numerous more boring systems (mainly
 linux/x86_64). See [3] for a discussion of the implementation and
 platform-specific issues.

 See commit a0103914c2 ("sha1dc: update from upstream", 2017-05-20) and
 6b851e536b ("sha1dc: update from upstream", 2017-06-06) for previous
 attempts in the 2.13 series to address various compile-time feature
 detection in this library.


1. https://github.com/cr-marcstevens/sha1collisiondetection/commit/19d97bf5af05312267c2e874ee6bcf584d9e9681


2. [ref]
(https://public-inbox.org/git/CAKKM46tHq13XiW5C8sux3=PZ1VHSu_npG8ExfWwcPD7rkZkyRQ@mail.gmail.com/)

 3. https://github.com/cr-marcstevens/sha1collisiondetection/pull/34

 Signed-off-by: Ævar Arnfjörð Bjarmason [off-list ref]
 Signed-off-by: Junio C Hamano [off-list ref]

:040000 040000 a84797967fb742e4ca9618a641d53ce3a6c6589b
32efa656d78901da961e4a47d84b6d82fede064b M sha1dc
Sorry about that. As can be seen from those PRs and the "git log"
detecting whether something is big endian or not can be quite tricky, we
figured out how to do it on both BSD and Solaris, but apparently broke
AIX as a result.

You should be able to define -DSHA1DC_FORCE_LITTLEENDIAN or
-DSHA1DC_FORCE_BIGENDIAN (looks like you'll need the latter) to get the
latest version to compile, but I and upstream cr-marcstevens would be
very interested to know from someone who knows AIX how this broke.

Also, to you and anyone else with access to AIX: I'd be happy to figure
these issues out pro-actively if you give me a login to an AIX
machine. I promise not to do anything except compile/debug/test git on
it.

I used to have access to an AIX box through a previous job ages ago,
it's a very interesting OS and like with Solaris it's easy to discover a
lot of portability issues.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help