Date: Sun, 3 Mar 2024 19:25:30 -0800 From: Mark Millard <marklmi@yahoo.com> To: freebsd-hackers <freebsd-hackers@freebsd.org>, FreeBSD ARM List <freebsd-arm@freebsd.org> Subject: In rust build, PkgBase armv7 in armv7 poudriere jail on aarch64: jemalloc's arena_choose_impl got Failed assertion: "ret" (arena_choose_hard result) Message-ID: <F3F1D89A-F685-4F02-A8D6-B1941A10A718@yahoo.com> References: <F3F1D89A-F685-4F02-A8D6-B1941A10A718.ref@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
The context for this is messy and the failure happened after hours of = high load average bulk build activity. 32 GiBytes RAM with 118 GiBytes of swap (so: = RAM+SWAP =3D=3D 150 GiBytes). 8 cores (4 cortex-A78C and 4 cortex-X1C). Windows Dev Kit 2023. llvm18 = was also building. (Note: https://pkg.freebsd.org/FreeBSD:15:armv7/base_latest/ last = updated over a month ago: 2024-Jan-25 09:48 UTC most recent file timestamps.) The aarch64 world in = use to do the bulk run was via a chroot into a directory tree not matching the boot = world. (The boot world was a more recent PkgBase aarch64 world, explaining the = /home/bapt/worktrees/ in the path in the message.) <jemalloc>: = /home/bapt/worktrees/main/contrib/jemalloc/include/jemalloc/internal/jemal= loc_internal_inlines_b.h:23: Failed assertion: "ret" /* Choose an arena based on a per-thread value. */ static inline arena_t * arena_choose_impl(tsd_t *tsd, arena_t *arena, bool internal) { arena_t *ret; if (arena !=3D NULL) { return arena; } /* During reentrancy, arena 0 is the safest bet. */ if (unlikely(tsd_reentrancy_level_get(tsd) > 0)) { return arena_get(tsd_tsdn(tsd), 0, true); } ret =3D internal ? tsd_iarena_get(tsd) : tsd_arena_get(tsd); if (unlikely(ret =3D=3D NULL)) { ret =3D arena_choose_hard(tsd, internal); assert(ret); . . . For reference: . . . [main-armv7-default] [2024-03-03_12h08m11s] [parallel_build] Queued: 265 = Built: 255 Failed: 0 Skipped: 0 Ignored: 0 Fetched: 0 Tobuild: = 10 Time: 06:29:58 ID TOTAL ORIGIN PKGNAME PHASE TIME = TMPFS CPU% MEM% [01] 04:32:52 devel/llvm18@default | llvm18-18.1.0.r3 build 04:26:27 = 8.58 GiB 432.9% 4.5% [05] 04:32:52 lang/rust | rust-1.76.0 build 04:31:14 = 22.07 GiB 230.5% 3.1% [06:30:02] Logs: = /usr/local/poudriere/data/logs/bulk/main-armv7-default/2024-03-03_12h08m11= s [06:33:33] [05] [04:36:23] Finished lang/rust | rust-1.76.0: Failed: = build . . . My monitoring got "Maximum observed" figures: 60015Mi MaxObs(Act+Wir+Lndry+SwapUsed) 56885Mi MaxObs(Act+Lndry+SwapUsed) Swap: 29443Mi MaxObsUsed 31293Mi MaxObs(Act+Wir+Lndry) 3146Mi MaxObsWired 26712Mi MaxObsActive (Sampled via a top variation.) (Note: UFS file system, ZFS not loaded: no ARC.) It is unlikely that I'll reproduce this failure, much less identify a simpler context for reproducing it. I do learn from this that PkgBase for armv7 has that assert enabled in that code. (I do not know if that is typical or not.) =3D=3D=3D Mark Millard marklmi at yahoo.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?F3F1D89A-F685-4F02-A8D6-B1941A10A718>