Re: Still seeing Failed assertion: "p[i] == 0" [ *** i386 chroot on amd64 can get the failure on main 16 too *** ]
Mark Millard <[email protected]>
| Newsgroups | gmane.os.freebsd.devel.arm,gmane.os.freebsd.current |
|---|---|
| Message-ID | <[email protected]> |
On Nov 20, 2025, at 15:38, Mark Millard <[email protected]> wrote: > # cd /usr/src/ > > # env WITH_META_MODE= make -j10 buildworld > . . . > Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/CodeGen/CGExprScalar.pico > <jemalloc>: /usr/src/contrib/jemalloc/include/jemalloc/internal/ehooks.h:170: Failed assertion: "p[i] == 0" > Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/CodeGen/CGGPUBuiltin.pico > Abort trap (core dumped) > *** [CodeGen/CGBuiltin.pico] Error code 134 > > The 7950X3D system has 32 FreeBSD cpus (16 cores), 192 GiByTes of RAM, [Silly typo fixed: GiBytes] > Optane PCIe Storage media. > > # uname -apKU > FreeBSD 7950X3D-UFS 16.0-CURRENT FreeBSD 16.0-CURRENT main-n281922-4872b48b175c GENERIC-NODEBUG amd64 amd64 1600004 1600004 > > But in the chroot: > > # uname -apKU > FreeBSD 7950X3D-UFS 16.0-CURRENT FreeBSD 16.0-CURRENT main-n281922-4872b48b175c GENERIC-NODEBUG i386 i386 1600004 1600004 > > For that particular system I used: > > # grep physmem /boot/loader.conf > hw.physmem="5G" > > It resulted in: > > # dmesg -a | grep 'memory *=' > real memory = 137434759168 (131068 MB) > avail memory = 2708901888 (2583 MB) > > My odd top hack for monitoring and reporting > various "Max(imum) Obs(erved)" figures shows: > > 1914Mi MaxObsActive > 821116Ki MaxObsWired > 2585Mi MaxObs(Act+Wir+Lndry) > 1617Mi MaxObsSwapUsed, > 3488Mi MaxObs(Act+Lndry+SwapUsed), > 4166Mi MaxObs(A+Wir+L+SU) [at such a time: 4193Mi (A+W+L+SU+InAct)] > > I had to build main 16 for the i386 myself, based on the /usr/src/ > from the official pkgbase system in use: such is no longer available. > I did not make changes to allow SIGABRT to core dump. Dumb mistake: I *did* make changes to allow SIGABRT to core dump. (I had done so earlier when figuring out how to do that. I had left the source code change in place on that system and it was in the copy of /usr/src/ that I put into the chroot area.) But I do not have pkg or gdb for the context as stands. > -j8 did not fail. -j12 ran out of RAM+SWAP. > For reference (white space detail may not be preserved): # diff -u /usr/src/contrib/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp.orig /usr/src/contrib/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp --- /usr/src/contrib/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp.orig 2025-11-15 07:58:41.000000000 +0000 +++ /usr/src/contrib/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp 2025-11-18 01:26:50.661412000 +0000 @@ -345,7 +345,7 @@ #include <signal.h> static const int Signals[] = - { SIGABRT, SIGBUS, SIGFPE, SIGILL, SIGSEGV, SIGTRAP }; + { /*SIGABRT,*/ SIGBUS, SIGFPE, SIGILL, SIGSEGV, SIGTRAP }; static const unsigned NumSignals = std::size(Signals); static struct sigaction PrevActions[NumSignals]; # diff -u /usr/src/contrib/llvm-project/llvm/lib/Support/Unix/Signals.inc.orig /usr/src/contrib/llvm-project/llvm/lib/Support/Unix/Signals.inc --- /usr/src/contrib/llvm-project/llvm/lib/Support/Unix/Signals.inc.orig 2025-11-15 07:58:41.000000000 +0000 +++ /usr/src/contrib/llvm-project/llvm/lib/Support/Unix/Signals.inc 2025-11-18 15:37:06.502424000 +0000 @@ -215,7 +215,7 @@ /// been ordered. static const int KillSigs[] = {SIGILL, SIGTRAP, - SIGABRT, +// SIGABRT, SIGFPE, SIGBUS, SIGSEGV, === Mark Millard marklmi at yahoo.com