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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.