From nobody Sun Dec 28 17:44:54 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4dfRYQ4zmnz6M6ss; Sun, 28 Dec 2025 17:44:10 +0000 (UTC) (envelope-from js@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4dfRYQ41zGz3cDH; Sun, 28 Dec 2025 17:44:10 +0000 (UTC) (envelope-from js@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1766943850; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ldLsFafh5aQmhNCcMQZq44d13NL7YGK20hOCHrecsq0=; b=V7HzuXx4XFSeOr3cDjxRyEmjIzN6wD2PQNKjT9yrSx34UkZzcmDHw80CejubfvAfwxNm2L Yw2vN3lWlaQkMpfF0aC2Lo8/otxdJI/1gec92++Hy/mhfI94XMKolb7dHIRwHDEw1FEA6t +Coj0ryebAU0jdnTxERcPnKH7c7vbvA48wA6cjQyyC7P29rpL70fYhTCFoQTaBGW+R1xfl kocNuuGKsZ2b2mQtoZF9rPecApoA1AeYo29p2AvBu/KaZvKMWDG9ZdATg2VfzTSA3Bc445 p/ZbK/ZOKFC2+5gnfznE2H2Nmr8OtgH1OQnxtKP5TxA/OIr9nJpvtgHilyneLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1766943850; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ldLsFafh5aQmhNCcMQZq44d13NL7YGK20hOCHrecsq0=; b=gXnx5+n6FJWoatgrQRBKqFoKIdZAKhbXnqzNa0IsmogFb0R42zI3NceySheC3QnMiCzsDG DLAVEG+7Xx9Tv+ALSZ5GexUn6feLePmWdlfezratAqGrf5V2yOsD1FMcAGoXVra8gE2OXS y+6XJN6KZ/vb677XYZBUAtvVX1Hrrgh2/3RlgoaNYDVeJbN0Y9lYxHXw4lLI+TV9BC9EaD aVphpPLGGoKM9c2kmP+dwoxTUOiwnahkRbrEu2rpY8Mew15ZVYeLpCIs7bnwI9boGunWfh gmFmkX/57QQO1O+7CivTD1/FCemBEHFUv06+kFlV6Erax4eVjK0VBW3G2/bQ6A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1766943850; a=rsa-sha256; cv=none; b=sNAN5GJpqm8j1KW886hWJ7NKaBJvg/94PClJMFTnFZqSQsmT03TRBe7JgyC2hE8T+iKiJ9 dOqWZrsDtUxSZ8dthwPLdlqVqqDy/uw4PYrUTNib/28bMlaYWMV3O8WxZiE+FrexNJSDJJ d6lfptiihTtVvNxGm7W9eMg6QOqRxwkcIPI7pxjenh4xPt/Uo9PsJf1f+XN6deSg/sUhaA N1MYHE73eULnZsmSGgspvH1mrtlHd7uRLla4kca/TaFG17nFeLuJd2jXrwQZTRtvTHvOmG Hgs1OKRyLwLgvwxq4/zasJakAMEDgwDyG73zvdUuAOw5OUZchar3QVUPbPyLxQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from [192.168.1.227] (h-212-85-90-245.A980.priv.bahnhof.se [212.85.90.245]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: js/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 4dfRYP6lN2z1Nln; Sun, 28 Dec 2025 17:44:09 +0000 (UTC) (envelope-from js@FreeBSD.org) Message-ID: <2a58208c-1f84-4c6d-8c01-b9df50d4c5d3@FreeBSD.org> Date: Sun, 28 Dec 2025 18:44:54 +0100 List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: "js@freebsd.org" Subject: Re: armv7 main's gpart [show]: signal 11 core dump during boot, before login; xo_format_string_direct; official pkgbase distribution (kernel and world) To: freebsd-arm , FreeBSD Current References: <73B5AB7B-E546-431C-AAF8-C20DB5616CD5@yahoo.com> <16109C94-D82C-4873-BC21-41B420A850EE@yahoo.com> <6C850038-7550-4954-A319-0F1484C31766@yahoo.com> <29DCA955-4FEB-4EB4-8AEC-01312C932456@yahoo.com> Content-Language: en-US, sv-SE Cc: Mark Millard In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Can someone with a FreeBSD 15 or 16 -CURRENT armv7 machine test if they're also getting segfaults when running gpart show? Or better yet, if someone has a test machine to lend me. On 12/28/25 17:06, Mark Millard wrote: > [minherit(0x2051e000,1100,INHERIT_ZERO) = 0 (0x0) > might be involoved?] > > On Dec 28, 2025, at 00:23, Mark Millard wrote: > >> On Dec 27, 2025, at 23:55, Mark Millard wrote: >> >>> [Turns out: works on aarch64 kernel's armv7 support, fails >>> on the armv7 native kernel, exact same world files on the >>> exact same media.] >> >> I got that wrong: a large part of the output occurs before a >> segmentation fault on the Windows Dev Kit 2023. But it has a >> very different backtrace and the output before that has numerical >> garbage values showing. >> >>> >>> On Dec 27, 2025, at 23:35, Mark Millard wrote: >>> >>>> On Dec 27, 2025, at 22:03, Mark Millard wrote: >>>> >>>>> Context: >>>>> >>>>> # uname -apKU >>>>> FreeBSD OPiP2E-RPi2v1p1 16.0-CURRENT FreeBSD 16.0-CURRENT main-n282732-939ac0c8fde2 GENERIC-NODEBUG arm armv7 1600007 1600007 >>>>> >>>>> That is an official pkgbase distribution that I installed, not >>>>> a personal build. pkgbase for main has world being a debug >>>>> build, no matter which of the kernels one choses to boot. >>>>> For pkgbase, 939ac0c8fde2 would be correct(?) for the kernel >>>>> but might not be exact for the world: /usr/src/sys/ and >>>>> /usr/src/ (without sys/) are from different times, last I >>>>> knew anyway. Changes can happen between. >>>>> >>>>> During boot, the time on the Orange Pi Plus 2ed is bad so: >>>>> >>>>> # ls -lodT /gpart.core >>>>> -rw------- 1 root wheel nodump 3174400 Jan 1 00:01:01 2010 /gpart.core >>>>> >>>>> Also, for pkgbase, a source file distributed can be newer >>>>> for its time stamp than the program distributed that was >>>>> based on the source file. Such happens below. >>>>> >>>>> >>>>> >>>>> Core was generated by `gpart show'. >>>>> Program terminated with signal SIGSEGV, Segmentation fault. >>>>> Address not mapped to object. >>>>> #0 xo_format_string_direct (xop=xop@entry=0x2009b120, xbp=xbp@entry=0x2009b150, flags=flags@entry=4096, wcp=0x0, cp=0x6e480000 , len=-1, max=-1, >>>>> need_enc=3, have_enc=2) at /usr/src/contrib/libxo/libxo/libxo.c:2715 >>>>> >>>>> warning: Source file is more recent than executable. >>>>> 2715 if (*cp == '\0') >>>>> (gdb) bt >>>>> #0 xo_format_string_direct (xop=xop@entry=0x2009b120, xbp=xbp@entry=0x2009b150, flags=flags@entry=4096, wcp=0x0, cp=0x6e480000 , len=-1, max=-1, >>>>> need_enc=3, have_enc=2) at /usr/src/contrib/libxo/libxo/libxo.c:2715 >>>>> #1 0x20150908 in xo_format_string (xop=0x2009b120, xbp=0x2009b150, flags=4096, xfp=0xbfbfd280) at /usr/src/contrib/libxo/libxo/libxo.c:2982 >>>>> #2 xo_do_format_field (xop=, xop@entry=0x2009b120, xbp=0x2009b150, fmt=fmt@entry=0x20130635 "%s", flen=flen@entry=2, flags=4096) at /usr/src/contrib/libxo/libxo/libxo.c:3503 >>>>> #3 0x2014c69c in xo_simple_field (xop=0x2009b120, encode_only=0, value=0x0, vlen=0, fmt=0x20130635 "%s", flen=2, flags=) at /usr/src/contrib/libxo/libxo/libxo.c:3817 >>>>> #4 xo_format_value (xop=, xop@entry=0x2009b120, name=, name@entry=0x204bf931 "state}\n", nlen=, nlen@entry=5, value=0x0, vlen=0, fmt=0x20130635 "%s", >>>>> flen=2, encoding=0x0, elen=0, flags=) at /usr/src/contrib/libxo/libxo/libxo.c:4373 >>>>> #5 0x20148710 in xo_do_emit_fields (xop=, xop@entry=0x2009b120, fields=, fields@entry=0xbfbfd7e8, max_fields=max_fields@entry=17, fmt=) >>>>> at /usr/src/contrib/libxo/libxo/libxo.c:6372 >>>>> #6 0x201476a0 in xo_do_emit (xop=xop@entry=0x2009b120, flags=, fmt=fmt@entry=0x204bf8e3 "=>{t:start/%*jd} {t:sectors/%*jd} {t:name/%*s} {:scheme} ({h:size/%ld}){t:state}\n") >>>>> at /usr/src/contrib/libxo/libxo/libxo.c:6551 >>>>> #7 0x20147840 in xo_emit (fmt=0x204bf8e3 "=>{t:start/%*jd} {t:sectors/%*jd} {t:name/%*s} {:scheme} ({h:size/%ld}){t:state}\n") at /usr/src/contrib/libxo/libxo/libxo.c:6622 >>>>> #8 0x204d1fd4 in gpart_show_geom (gp=gp@entry=0x20089168, element=element@entry=0x204bfe51 "type", show_providers=show_providers@entry=0) at /usr/src/lib/geom/part/geom_part.c:654 >>>>> #9 0x204d1048 in gpart_show (req=0x20089000, fl=) at /usr/src/lib/geom/part/geom_part.c:793 >>>>> #10 0x000230dc in run_command (argc=0, argv=) at /usr/src/sbin/geom/core/geom.c:497 >>>>> #11 0x00022308 in main (argc=1, argv=0xbfbfed90) at /usr/src/sbin/geom/core/geom.c:861 >>>>> (gdb) list >>>>> 2710 for (;;) { >>>>> 2711 if (len == 0) >>>>> 2712 break; >>>>> 2713 >>>>> 2714 if (cp) { >>>>> 2715 if (*cp == '\0') >>>>> 2716 break; >>>>> 2717 if ((flags & XFF_UNESCAPE) && (*cp == '\\' || *cp == '%')) { >>>>> 2718 cp += 1; >>>>> 2719 len -= 1; >>>>> (gdb) up >>>>> #1 0x20150908 in xo_format_string (xop=0x2009b120, xbp=0x2009b150, flags=4096, xfp=0xbfbfd280) at /usr/src/contrib/libxo/libxo/libxo.c:2982 >>>>> 2982 cols = xo_format_string_direct(xop, xbp, flags, wcp, cp, len, >>>>> (gdb) list >>>>> 2977 >>>>> 2978 return rc; >>>>> 2979 } >>>>> 2980 } >>>>> 2981 >>>>> 2982 cols = xo_format_string_direct(xop, xbp, flags, wcp, cp, len, >>>>> 2983 xfp->xf_width[XF_WIDTH_MAX], >>>>> 2984 need_enc, xfp->xf_enc); >>>>> 2985 if (cols < 0) >>>>> 2986 goto bail; >>>>> (gdb) list >>>>> 3498 >>>>> 3499 xf.xf_enc = (xf.xf_fc == 'm') ? XF_ENC_UTF8 >>>>> 3500 : (xf.xf_lflag || (xf.xf_fc == 'S')) ? XF_ENC_WIDE >>>>> 3501 : xf.xf_hflag ? XF_ENC_LOCALE : XF_ENC_UTF8; >>>>> 3502 >>>>> 3503 rc = xo_format_string(xop, xbp, flags, &xf); >>>>> 3504 >>>>> 3505 if ((flags & XFF_TRIM_WS) && xo_style_is_encoding(xop)) >>>>> 3506 rc = xo_trim_ws(xbp, rc); >>>>> 3507 >>>>> (gdb) up >>>>> #3 0x2014c69c in xo_simple_field (xop=0x2009b120, encode_only=0, value=0x0, vlen=0, fmt=0x20130635 "%s", flen=2, flags=) at /usr/src/contrib/libxo/libxo/libxo.c:3817 >>>>> 3817 xo_do_format_field(xop, NULL, fmt, flen, flags); >>>>> (gdb) list >>>>> 3812 { >>>>> 3813 if (encode_only) >>>>> 3814 flags |= XFF_NO_OUTPUT; >>>>> 3815 >>>>> 3816 if (vlen == 0) >>>>> 3817 xo_do_format_field(xop, NULL, fmt, flen, flags); >>>>> 3818 else if (!encode_only) >>>>> 3819 xo_data_append_content(xop, value, vlen, flags); >>>>> 3820 } >>>>> 3821 >>>>> (gdb) up >>>>> #4 xo_format_value (xop=, xop@entry=0x2009b120, name=, name@entry=0x204bf931 "state}\n", nlen=, nlen@entry=5, value=0x0, vlen=0, fmt=0x20130635 "%s", >>>>> flen=2, encoding=0x0, elen=0, flags=) at /usr/src/contrib/libxo/libxo/libxo.c:4373 >>>>> 4373 xo_simple_field(xop, FALSE, value, vlen, fmt, flen, flags); >>>>> (gdb) list >>>>> 4368 >>>>> 4369 save.xhs_offset = xbp->xb_curp - xbp->xb_bufp; >>>>> 4370 save.xhs_columns = xop->xo_columns; >>>>> 4371 save.xhs_anchor_columns = xop->xo_anchor_columns; >>>>> 4372 >>>>> 4373 xo_simple_field(xop, FALSE, value, vlen, fmt, flen, flags); >>>>> 4374 >>>>> 4375 if (flags & XFF_HUMANIZE) >>>>> 4376 xo_format_humanize(xop, xbp, &save, flags); >>>>> 4377 break; >>>>> (gdb) up >>>>> #5 0x20148710 in xo_do_emit_fields (xop=, xop@entry=0x2009b120, fields=, fields@entry=0xbfbfd7e8, max_fields=max_fields@entry=17, fmt=) >>>>> at /usr/src/contrib/libxo/libxo/libxo.c:6372 >>>>> 6372 xo_format_value(xop, content, clen, NULL, 0, >>>>> (gdb) list >>>>> 6367 flags &= ~XFF_WS; /* Prevent later handling of this flag */ >>>>> 6368 } >>>>> 6369 } >>>>> 6370 >>>>> 6371 if (ftype == 'V') >>>>> 6372 xo_format_value(xop, content, clen, NULL, 0, >>>>> 6373 xfip->xfi_format, xfip->xfi_flen, >>>>> 6374 xfip->xfi_encoding, xfip->xfi_elen, flags); >>>>> 6375 else if (ftype == '[') >>>>> 6376 xo_anchor_start(xop, xfip, content, clen); >>>>> (gdb) up >>>>> #6 0x201476a0 in xo_do_emit (xop=xop@entry=0x2009b120, flags=, fmt=fmt@entry=0x204bf8e3 "=>{t:start/%*jd} {t:sectors/%*jd} {t:name/%*s} {:scheme} ({h:size/%ld}){t:state}\n") >>>>> at /usr/src/contrib/libxo/libxo/libxo.c:6551 >>>>> 6551 return xo_do_emit_fields(xop, fields, max_fields, fmt); >>>>> (gdb) list >>>>> 6546 /* Retain the info */ >>>>> 6547 xo_retain_add(fmt, fields, max_fields); >>>>> 6548 } >>>>> 6549 } >>>>> 6550 >>>>> 6551 return xo_do_emit_fields(xop, fields, max_fields, fmt); >>>>> 6552 } >>>>> 6553 >>>>> 6554 /* >>>>> 6555 * Rebuild a format string in a gettext-friendly format. This function >>>>> (gdb) up >>>>> #7 0x20147840 in xo_emit (fmt=0x204bf8e3 "=>{t:start/%*jd} {t:sectors/%*jd} {t:name/%*s} {:scheme} ({h:size/%ld}){t:state}\n") at /usr/src/contrib/libxo/libxo/libxo.c:6622 >>>>> 6622 rc = xo_do_emit(xop, 0, fmt); >>>>> (gdb) list >>>>> 6617 { >>>>> 6618 xo_handle_t *xop = xo_default(NULL); >>>>> 6619 ssize_t rc; >>>>> 6620 >>>>> 6621 va_start(xop->xo_vap, fmt); >>>>> 6622 rc = xo_do_emit(xop, 0, fmt); >>>>> 6623 va_end(xop->xo_vap); >>>>> 6624 bzero(&xop->xo_vap, sizeof(xop->xo_vap)); >>>>> 6625 >>>>> 6626 return rc; >>>>> (gdb) up >>>>> #8 0x204d1fd4 in gpart_show_geom (gp=gp@entry=0x20089168, element=element@entry=0x204bfe51 "type", show_providers=show_providers@entry=0) at /usr/src/lib/geom/part/geom_part.c:654 >>>>> warning: Source file is more recent than executable. >>>>> 654 xo_emit("=>{t:start/%*jd} {t:sectors/%*jd} {t:name/%*s} {:scheme} ({h:size/%ld}){t:state}\n", >>>>> (gdb) list >>>>> 649 } >>>>> 650 wname = wmax; >>>>> 651 pp = LIST_FIRST(&gp->lg_consumer)->lg_provider; >>>>> 652 secsz = pp->lg_sectorsize; >>>>> 653 xo_open_instance("part"); >>>>> 654 xo_emit("=>{t:start/%*jd} {t:sectors/%*jd} {t:name/%*s} {:scheme} ({h:size/%ld}){t:state}\n", >>>>> 655 wblocks, (intmax_t)first, wblocks, (intmax_t)(last - first + 1), >>>>> 656 wname, gp->lg_name, >>>>> 657 scheme, pp->lg_mediasize, >>>>> 658 s ? " [CORRUPT]": ""); >>>>> (gdb) up >>>>> #9 0x204d1048 in gpart_show (req=0x20089000, fl=) at /usr/src/lib/geom/part/geom_part.c:793 >>>>> 793 gpart_show_geom(gp, element, show_providers); >>>>> (gdb) list >>>>> 788 else >>>>> 789 errx(EXIT_FAILURE, "No such geom: %s.", name); >>>>> 790 } >>>>> 791 } else { >>>>> 792 LIST_FOREACH(gp, &classp->lg_geom, lg_geom) { >>>>> 793 gpart_show_geom(gp, element, show_providers); >>>>> 794 } >>>>> 795 } >>>>> 796 xo_close_list(name); >>>>> 797 geom_deletetree(&mesh); >>>>> (gdb) up >>>>> #10 0x000230dc in run_command (argc=0, argv=) at /usr/src/sbin/geom/core/geom.c:497 >>>>> warning: Source file is more recent than executable. >>>>> 497 cmd->gc_func(req, flags); >>>>> (gdb) list >>>>> 492 buf[0] = '\0'; >>>>> 493 if (cmd->gc_func != NULL) { >>>>> 494 unsigned flags; >>>>> 495 >>>>> 496 flags = set_flags(cmd); >>>>> 497 cmd->gc_func(req, flags); >>>>> 498 errstr = req->error; >>>>> 499 } else { >>>>> 500 gctl_add_param(req, "output", sizeof(buf), buf, >>>>> 501 GCTL_PARAM_WR | GCTL_PARAM_ASCII); >>>>> (gdb) up >>>>> #11 0x00022308 in main (argc=1, argv=0xbfbfed90) at /usr/src/sbin/geom/core/geom.c:861 >>>>> 861 run_command(argc, argv); >>>>> (gdb) list >>>>> 856 show_tree(); >>>>> 857 return (0); >>>>> 858 } >>>>> 859 >>>>> 860 get_class(&argc, &argv); >>>>> 861 run_command(argc, argv); >>>>> 862 /* NOTREACHED */ >>>>> 863 >>>>> 864 exit(EXIT_FAILURE); >>>>> 865 } >>>>> >>>>> >>>>> For reference: >>>>> >>>>> # ls -lodT /usr/src/contrib/libxo/libxo/libxo.c /usr/src/lib/geom/part/geom_part.c /usr/src/sbin/geom/core/geom.c /sbin/gpart >>>>> -r-xr-xr-x 17 root wheel - 30720 Dec 18 07:22:59 2025 /sbin/gpart >>>>> -rw-r--r-- 1 root wheel - 211505 Dec 24 08:29:29 2025 /usr/src/contrib/libxo/libxo/libxo.c >>>>> -rw-r--r-- 1 root wheel - 35380 Dec 24 08:29:29 2025 /usr/src/lib/geom/part/geom_part.c >>>>> -rw-r--r-- 1 root wheel - 36298 Dec 24 08:29:29 2025 /usr/src/sbin/geom/core/geom.c >>>>> >>>>> That explains the "warning: Source file is more recent than executable" >>>>> messages. >>>> >>>> Additional context notes: >>>> >>>> ) On the Cortex-A7 SUT the above is repeatable at the >>>> shell prompt when logged in: just try "gpart show", >>>> including via gdb use. "/rescue/gpart show" also >>>> core dumps. >>>> >>>> ) In a armv7 chroot on a aarch64 system (the Windows >>>> Dev Kit 2023), the "gpart show" works just fine. >>>> >>>> But the vintages could well be a little different. >>>> (Tracing to git commits for pkgbase is problematical.) >>>> >>>> >>>> I'll note: >>>> >>>> Johan Söllvander >>>> Date: Thu, 18 Dec 2025 15:23:29 UTC >>>> The branch main has been updated by js: >>>> >>>> URL: https://cgit.FreeBSD.org/src/commit/?id=4f809ffec69cd6ede3e7be9a5bc876b2e5931028 >>>> >>>> commit 4f809ffec69cd6ede3e7be9a5bc876b2e5931028 >>>> Author: Johan Söllvander >>>> AuthorDate: 2025-12-18 15:06:09 +0000 >>>> Commit: Johan Söllvander >>>> CommitDate: 2025-12-18 15:22:59 +0000 >>>> >>>> gpart: add libxo support for "show" subcommand + man page updates >>>> >>>> Added libxo support to `gpart show`, also updated the man >>>> pages for geom and gpart to show where you can expect >>>> libxo formatted output. >>>> >>>> PR: 290629 >>>> MFC after: 1 week >>>> Sponsored by: ConnectWise >>>> Reviewed by: asomers, mckusick, phil >>>> Approved by: asomers (mentor) >>>> Differential Revision: https://reviews.freebsd.org/D53950 >>>> --- >>>> . . . >>>> >>>> >>>> Note: Dec 18 07:22:59 2025 /sbin/gpart for my time zone >>>> would be 2025-12-18 15:22:59 +0000 (the CommitDate) UTC. >>> >>> >>> I shut down the OPi+2e and mounted the boot media >>> on the Windows Dev Kit 2023 and then did a chroot >>> into that boot media and tried "gpart show": >>> >>> "gpart show" worked just fine. >>> >>> What matters is which kernel it runs on for the >>> exact same world files on the exact same media. >>> >> >> I got that wrong: a large part of the output occurs before >> a segmentation fault on the Windows Dev Kit 2023. But it has a >> very different backtrace. Also, note all the "517M" that make no >> sense --and the "0" and "2" junk as well: >> >> # gpart show >> => 34 1000215149 nda0 GPT (2)(null) >> 34 2014 - free - (2) >> 2048 532480 1 efi (517M) >> 534528 32768 2 ms-reserved (517M) >> 567296 997287936 3 ms-basic-data (517M) >> 997855232 2359296 4 ms-recovery (517M) >> 1000214528 655 - free - (2) >> >> => 34 2930277101 da0 GPT (0)(null) >> 34 32734 - free - (0) >> 32768 501760 1 efi (517M) >> 534528 20971520 2 freebsd-swap (517M) >> 21506048 29360128 3 freebsd-swap (517M) >> 50866176 33554432 4 freebsd-swap (517M) >> 84420608 67108864 5 freebsd-swap (517M) >> 151529472 96468992 6 freebsd-swap (517M) >> 247998464 268435456 7 freebsd-swap (517M) >> 516433920 7340032 8 freebsd-swap (517M) >> 523773952 13096960 - free - (0) >> 536870912 2357198848 9 freebsd-ufs (517M) >> 2894069760 36207375 - free - (0) >> >> => 40 1953525088 da1 GPT (0)(null) >> 40 532480 1 efi (517M) >> 532520 2008 - free - (0) >> 534528 3563520 2 freebsd-swap (517M) >> 4098048 6504448 - free - (0) >> 10602496 1740636160 4 freebsd-ufs (517M) >> 1751238656 7546880 3 freebsd-swap (517M) >> 1758785536 194739592 - free - (0) >> >> Segmentation fault (core dumped) >> >> As for gdb's backtrace: >> >> Program terminated with signal SIGSEGV, Segmentation fault. >> Address not mapped to object. >> #0 0x200c5ef0 in delete_config (gp=0x2053e224) at /usr/src/lib/libgeom/geom_xml2tree.c:502 >> >> warning: Source file is more recent than executable. >> 502 LIST_REMOVE(cf, lg_config); >> (gdb) bt >> #0 0x200c5ef0 in delete_config (gp=0x2053e224) at /usr/src/lib/libgeom/geom_xml2tree.c:502 >> #1 geom_deletetree (gmp=gmp@entry=0xffffcb48) at /usr/src/lib/libgeom/geom_xml2tree.c:524 >> #2 0x204d2064 in gpart_show (req=, fl=) at /usr/src/lib/geom/part/geom_part.c:797 >> #3 0x000230dc in run_command (argc=0, argv=) at /usr/src/sbin/geom/core/geom.c:497 >> #4 0x00022308 in main (argc=1, argv=0xffffdc70) at /usr/src/sbin/geom/core/geom.c:861 >> >> >> (I need to get some sleep.) > > Back to the Cortex-A7 context (armv7 without aatch64) > for that same media . . . > > The tail of a truss output from a run looks like > (note the "minherit(0x2051e000,1100,INHERIT_ZERO)"?): > > . . . > modfind("g_part") = 190 (0xbe) > mmap(0x0,20480,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-1,0x0) = 537432064 (0x20089000) > mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-1,0x0) = 537452544 (0x2008e000) > mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-1,0x0) = 537456640 (0x2008f000) > mmap(0x0,12288,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-1,0x0) = 542076928 (0x204f7000) > mmap(0x0,20480,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-1,0x0) = 542089216 (0x204fa000) > mmap(0x0,12288,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-1,0x0) = 542109696 (0x204ff000) > mmap(0x0,28672,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-1,0x0) = 542121984 (0x20502000) > __sysctl("sysctl.name2oid kern.geom.confxml",2,0xbfbfdbb8,0xbfbfdbb0,0x200b4716,17) = 0 (0x0) > __sysctl("kern.geom.confxml",3,0x0,0xbfbfdbb4,0x0,0) = 0 (0x0) > mmap(0x0,24576,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-1,0x0) = 542150656 (0x20509000) > __sysctl("kern.geom.confxml",3,0x20509180,0xbfbfdbb4,0x0,0) = 0 (0x0) > mmap(0x0,20480,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-1,0x0) = 542175232 (0x2050f000) > mmap(0x0,20480,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-1,0x0) = 542195712 (0x20514000) > mmap(0x0,20480,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-1,0x0) = 542216192 (0x20519000) > mmap(0x0,1100,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 542236672 (0x2051e000) > minherit(0x2051e000,1100,INHERIT_ZERO) = 0 (0x0) > getrandom("\M-,\M-;\M^P\^Rl\^VHP\M->'\M-v"...,40,0) = 40 (0x28) > mmap(0x0,20480,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-1,0x0) = 542240768 (0x2051f000) > mmap(0x0,28672,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-1,0x0) = 542261248 (0x20524000) > mmap(0x0,12288,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-1,0x0) = 542289920 (0x2052b000) > mmap(0x0,20480,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-1,0x0) = 542302208 (0x2052e000) > mmap(0x0,12288,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-1,0x0) = 542322688 (0x20533000) > mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-1,0x0) = 542334976 (0x20536000) > mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-1,0x0) = 542339072 (0x20537000) > mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-1,0x0) = 542343168 (0x20538000) > SIGNAL 11 (SIGSEGV) code=SEGV_MAPERR trapno=5 addr=0x6e480000 > process killed, signal = 11 (core dumped) > > > Given recent work on anonymous zeroed pages, I note for > minherit: > > QUOTE > INHERIT_ZERO This option causes the address space in question to be > mapped as new anonymous pages, which would be initial- > ized to all zero bytes, in the child process. > END QUOTE > > Not that I've any specific evidence of it being an issue. > > I'll note that trying the official debug kernel did not report > anything special and got the same behavior. > > > === > Mark Millard > marklmi at yahoo.com >