git/list[1] front-page[2] threads[3] people[4] search[5] about
 

RE: [BUG] 2.44.0 t7704.9 Fails on NonStop ia64

From
rsbecker@nexbridge.com <rsbecker@nexbridge.com>
Date
Feb 25, 2024, 19:08 UTC
Message-ID
<01be01da681e$0c349090$249db1b0$@nexbridge.com>
In-Reply-To
<01bd01da681a$b8d70a70$2a851f50$@nexbridge.com>
On Sunday, February 25, 2024 1:45 PM, I wrote:
>To: git@vger.kernel.org
>Subject: [BUG] 2.44.0 t7704.9 Fails on NonStop ia64
>
>This appears to be a new issue introduced at 2.44.0. It only occurs on
NonStop ia64
>but not on x86. I am not sure why this is happening although 1Mb exceeds
the
Show 13 quoted lines
>single I/O size on this machine.
>
>expecting success of 7704.9 '--max-cruft-size with pruning':
>        git init max-cruft-size-prune &&
>        (
>                cd max-cruft-size-prune &&
>
>                test_commit base &&
>                foo="$(generate_random_blob foo $((1024*1024)))" &&
>                bar="$(generate_random_blob bar $((1024*1024)))" &&
>                baz="$(generate_random_blob baz $((1024*1024)))" &&
>
>                test-tool chmtime -10000 "$objdir/$(test_oid_to_path
"$foo")" &&
Show 22 quoted lines
>
>                git repack -d --cruft --max-cruft-size=1M &&
>
>                # backdate the mtimes of all cruft packs to validate
>                # that they were rewritten as a result of pruning
>                ls $packdir/pack-*.mtimes | sort >cruft.before &&
>                for cruft in $(cat cruft.before)
>                do
>                        mtime="$(test-tool chmtime --get -10000 "$cruft")"
>&&
>                        echo $cruft $mtime >>mtimes || return 1
>                done &&
>
>                # repack (and prune) with a --max-cruft-size to ensure
>                # that we appropriately split the resulting set of packs
>                git repack -d --cruft --max-cruft-size=1M \
>                        --cruft-expiration=10.seconds.ago &&
>                ls $packdir/pack-*.mtimes | sort >cruft.after &&
>
>                for cruft in $(cat cruft.after)
>                do
>                        old_mtime="$(grep $cruft mtimes | cut -d" " -f2)"
&&
Show 22 quoted lines
>                        new_mtime="$(test-tool chmtime --get $cruft)" &&
>                        test $old_mtime -lt $new_mtime || return 1
>                done &&
>
>                test_line_count = 3 cruft.before &&
>                test_line_count = 2 cruft.after &&
>                test_must_fail git cat-file -e $foo &&
>                git cat-file -e $bar &&
>                git cat-file -e $baz
>        )
>
>Initialized empty Git repository in
>/home/ituglib/randall/jenkins/.jenkins/workspace/Git_Pipeline/t/trash
>directory.t7704-repack-cruft/max-cruft-size-prune/.git/
>[master (root-commit) d1ff1c9] base
> Author: A U Thor mailto:author@example.com
> 1 file changed, 1 insertion(+)
> create mode 100644 base.t
>Enumerating objects: 3, done.
>Counting objects: 100% (3/3), done.
>Writing objects: 100% (3/3), done.
>Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0) Enumerating
cruft
Show 5 quoted lines
>objects: 6, done.
>Counting objects: 100% (3/3), done.
>Compressing objects: 100% (3/3), done.
>Writing objects: 100% (3/3), done.
>Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0) Enumerating
objects: 3,
Show 5 quoted lines
>done.
>Counting objects: 100% (3/3), done.
>Writing objects: 100% (3/3), done.
>Total 3 (delta 0), reused 3 (delta 0), pack-reused 0 (from 0)
>ls: cannot access '.git/objects/pack/pack-*.mtimes': No such file or
directory
>test_line_count: line count for cruft.after != 2 not ok 9 -
--max-cruft-size with
Show 11 quoted lines
>pruning #
>#               git init max-cruft-size-prune &&
>#               (
>#                       cd max-cruft-size-prune &&
>#
>#                       test_commit base &&
>#                       foo="$(generate_random_blob foo $((1024*1024)))" &&
>#                       bar="$(generate_random_blob bar $((1024*1024)))" &&
>#                       baz="$(generate_random_blob baz $((1024*1024)))" &&
>#
>#                       test-tool chmtime -10000
"$objdir/$(test_oid_to_path
Show 5 quoted lines
>"$foo")" &&
>#
>#                       git repack -d --cruft --max-cruft-size=1M &&
>#
>#                       # backdate the mtimes of all cruft packs to
validate
Show 34 quoted lines
>#                       # that they were rewritten as a result of pruning
>#                       ls $packdir/pack-*.mtimes | sort >cruft.before &&
>#                       for cruft in $(cat cruft.before)
>#                       do
>#                               mtime="$(test-tool chmtime --get -10000
>"$cruft")" &&
>#                               echo $cruft $mtime >>mtimes || return 1
>#                       done &&
>#
>#                       # repack (and prune) with a --max-cruft-size to
>ensure
>#                       # that we appropriately split the resulting set of
>packs
>#                       git repack -d --cruft --max-cruft-size=1M \
>#                               --cruft-expiration=10.seconds.ago &&
>#                       ls $packdir/pack-*.mtimes | sort >cruft.after &&
>#
>#                       for cruft in $(cat cruft.after)
>#                       do
>#                               old_mtime="$(grep $cruft mtimes | cut -d" "
>-f2)" &&
>#                               new_mtime="$(test-tool chmtime --get
>$cruft)" &&
>#                               test $old_mtime -lt $new_mtime || return 1
>#                       done &&
>#
>#                       test_line_count = 3 cruft.before &&
>#                       test_line_count = 2 cruft.after &&
>#                       test_must_fail git cat-file -e $foo &&
>#                       git cat-file -e $bar &&
>#                       git cat-file -e $baz
>#               )
>#
>1..9

I did find the following calls to write(), one of which might be involved. write() should not be used directly unless the count is clearly very small. Xwrite() should be used instead. There are other calls but those are either small or not on platform.

reftable/writer.c: int n = w->write(w->write_arg, zeroed, w->pending_padding); reftable/writer.c: n = w->write(w->write_arg, data, len); run-command.c: len = write(io->fd, io->u.out.buf, t/helper/test-path-utils.c: if (write(1, buffer, count) < 0) t/helper/test-windows-named-pipe.c: write(1, buf, nbr); t/helper/test-windows-named-pipe.c: write(1, buf, nbr); trace2/tr2_dst.c: bytes = write(fd, buf_line->buf, buf_line->len);

Previous: rsbecker@nexbridge.comNext: Torsten Bögershausen
Message 2 of 15 in “[BUG] 2.44.0 t7704.9 Fails on NonStop ia64”
  1. rsbecker@nexbridge.comFeb 25, 2024
  2. rsbecker@nexbridge.comFeb 25, 2024
  3. Torsten BögershausenFeb 25, 2024
  4. rsbecker@nexbridge.comFeb 25, 2024
  5. Phillip WoodFeb 26, 2024
  6. rsbecker@nexbridge.comFeb 26, 2024
  7. Phillip WoodFeb 26, 2024
  8. rsbecker@nexbridge.comFeb 26, 2024
  9. rsbecker@nexbridge.comFeb 26, 2024
  10. phillip.wood123@gmail.comFeb 26, 2024
  11. Patrick SteinhardtFeb 27, 2024
  12. phillip.wood123@gmail.comFeb 27, 2024
  13. rsbecker@nexbridge.comFeb 27, 2024
  14. Patrick SteinhardtFeb 27, 2024
  15. rsbecker@nexbridge.comFeb 27, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.