Subject: Re: [GSoC PATCH v4 0/5] preserve promisor files content after repack

From: Junio C Hamano <[email-masked]>
Date: Fri, 10 Apr 2026 16:05:51 -0700

LorenzoPegorari <[email-masked]> writes:

> The goal of this patch is to solve the NEEDSWORK comment added by
> 5374a290 (fetch-pack: write fetched refs to .promisor, 14/10/2019). This
> is done by adding a helper function that takes the content of all
> .promisor files in the `repository`, and copies it inside the first
> .promisor file created by the repack.
> ...
> V4 DIFF:
>  * `copy_promisor_content()` now prints timestamps in Unix time format.
>  * `copy_promisor_content()` now doesn't use a list of `strbuf`, but
>    instead uses the more lightweight `string_list`.
>  * improved the tests.
>  * fixed issue (that showed up in the GitHub Actions-based CI) where
>    sometimes the 2 packs created in the second new test inside "t7700"
>    were not both repacked into a single new pack. 

When merged to the tip of 'seen' (with a fixup to use st_mtime where
we need only whole second precision, to avoid using st_mtim on
platforms that do not have it), this seems to break linux-leaks and
linux-reftable-leaks CI jobs (t0410, t5616, and t5710).

This topic standalone, without interaction with other things in
'seen', breaks these three tests.

  https://github.com/git/git/actions/runs/24267948258/job/70866907548

This is one commit directly on top of your topic that reduces CI
jobs down to just two "leaks" job, and removes many test scripts
to leave only these three breaking ones.

I managed to also locally reproduce this failure.  Here is how

    $ cd t && t5710-*.sh -i -v

dies:

Direct leak of 285 byte(s) in 1 object(s) allocated from:
    #0 0x55ce48ca1d4d in malloc (git+0x8cd4d) (BuildId: 1aa6efa30b2fc4772028a3dd31aba3ced49bf128)
    #1 0x55ce48fed3f2 in do_xmalloc wrapper.c:55:8
    #2 0x55ce48fed3b6 in xmalloc wrapper.c:76:9
    #3 0x55ce48eed314 in alloc_packed_git packfile.c:306:25
    #4 0x55ce48eed209 in parse_pack_index packfile.c:326:25
    #5 0x55ce48f65f03 in copy_promisor_content repack-promisor.c:67:14
    ...