Hi Patrick, On Tue, 4 Mar 2025, Patrick Steinhardt wrote: > On Tue, Mar 04, 2025 at 10:46:17AM +0100, Patrick Steinhardt wrote: > > On Tue, Mar 04, 2025 at 08:40:13AM +0100, Johannes Schindelin wrote: > > > On Tue, 4 Mar 2025, Johannes Schindelin wrote: > > > > On Tue, 4 Mar 2025, Patrick Steinhardt wrote: > > > > > Johannes, did the new version of this patch series make your life any > > > > > easier? As far as I can see the conflicts in your "shears/seen" branch > > > > > seem to have been fixed, and the failing pipeline seems to be due to > > > > > other issues. If so, we would be able to move ahead with this patch > > > > > series and the dependent fix for Windows below. > > > > > > > > Honestly, I cannot say whether it made my life any easier. As you can see > > > > from > > > > https://github.com/git-for-windows/git/actions/workflows/main.yml?query=branch%3Ashears%2Fseen, > > > > the `shears/seen` branch failed to update automatically since I updated it > > > > manually last Thursday. According to > > > > https://github.com/git/git/activity?ref=seen, there have been 5 updates > > > > that were hence missed. > > > > > > > > I'll try to update the `shears/seen` branch now, but I'll time-box it to > > > > half an hour because I really planned on taking care of other issues. > > > > > > It seems that there are the usual CMake-related breakages (not related to > > > ps/reftable-sans-compat-util, but to the introduction of the > > > `CLAR_TEST_OBJS` or at least the `lib-oid` addition to that). I hope that > > > the tip commit of `shears/seen` that I just pushed addresses that, but I > > > ran out of time to monitor this. > > > > > > And there are some pretty bad `exit code 127` problems in the unit tests > > > on Windows, see e.g. > > > https://github.com/git-for-windows/git/actions/runs/13648196783/job/38151312208#step:5:213 > > > (but again, I ran out of the allotted time). > > > > Interesting. All of the errors relate to reftable stuff. Curiously, > > those errors only seem to happen in the MinGW build, but not with the > > Meson-based MSVC build. I can reproduce the issue in MinGW indeed, so > > I'll investigate. Thanks for the hint! > > Okay, I found the issue: it's mismatching allocators. Git for Windows > has support for the custom mimalloc allocator, and it's getting roped in > by default in MinGW builds. And because the allocator is declared in > "git-compat-util.h", the reftable library uses allocators from mscrt.dll, > whereas the rest of the Git code base uses allocators from mimalloc. > This causes us to sometimes free memory with a different allocator than > we have allocated it with, and that causes a SIGTRAP. > > Below patch addresses the issue. > > Patrick > > diff --git a/compat/posix.h b/compat/posix.h > index b484029f751..5ad3539d55b 100644 > --- a/compat/posix.h > +++ b/compat/posix.h > @@ -176,6 +176,16 @@ typedef unsigned long uintptr_t; > #define _ALL_SOURCE 1 > #endif > > +#ifdef USE_MIMALLOC > +#include "mimalloc.h" > +#define malloc mi_malloc > +#define calloc mi_calloc > +#define realloc mi_realloc > +#define free mi_free > +#define strdup mi_strdup > +#define strndup mi_strndup > +#endif > + > #ifdef MKDIR_WO_TRAILING_SLASH > #define mkdir(a,b) compat_mkdir_wo_trailing_slash((a),(b)) > int compat_mkdir_wo_trailing_slash(const char*, mode_t); > diff --git a/git-compat-util.h b/git-compat-util.h > index 8d2acf86670..a102a365592 100644 > --- a/git-compat-util.h > +++ b/git-compat-util.h > @@ -226,16 +226,6 @@ static inline const char *precompose_string_if_needed(const char *in) > # include <sys/sysinfo.h> > #endif > > -#ifdef USE_MIMALLOC > -#include "mimalloc.h" > -#define malloc mi_malloc > -#define calloc mi_calloc > -#define realloc mi_realloc > -#define free mi_free > -#define strdup mi_strdup > -#define strndup mi_strndup > -#endif > - > #ifndef PATH_SEP > #define PATH_SEP ':' > #endif I integrated this into Git for Windows' `shears/seen` branch (i.e. the continuously-rebased Git for Windows patches on top of the `seen` branch), and for the first time in weeks, it passed the CI build: https://github.com/git-for-windows/git/actions/runs/14087673643 Thank you very much! Johannes