From nobody Tue Nov 26 17:59:08 2024 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 4XyVhC1Hbvz5dnNb for ; Tue, 26 Nov 2024 17:59:23 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic301-22.consmr.mail.gq1.yahoo.com (sonic301-22.consmr.mail.gq1.yahoo.com [98.137.64.148]) (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) by mx1.freebsd.org (Postfix) with ESMTPS id 4XyVhB5SHbz52GT for ; Tue, 26 Nov 2024 17:59:22 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1732643961; bh=hrJigfJv2bPxK6GZurULYk3OWDMc4KIJq6s5m3SU3Kc=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From:Subject:Reply-To; b=OLFZYBe8bPn0fpDDZ0ZxX64c03EPz5q0/iixEekCR+5/XO8iAjFsykltYBDX7DVsP7JMs1dISC2/M3YzyCMkKMZlAN2RihcYTN/3S+MYpZevmysYQKlekBxQ3l0xu7TX4QidpOBrqcEUX473Q1It3tW2EwC1uWdAYitufbHLe3HcM1mY5Ikcf6uC5B4qOO4O5JpGNFDxBsVHJ+9NgDvBa+VywzPNg1UdHl4eIeOc1QCTBdBbgmA5+LscaRtxcPY4xp4+AL54Wlv+CLZMShKBTB2vIPUatSu7lQc9VzEV/SOSQpXK2gR5HvanQO14IPvKFX8iLXlFqbIKawkLXUkheQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1732643961; bh=iZmauvUjuErKk3iG+v6NiJTl2JVF91OHcwwcYWb8T/J=; h=X-Sonic-MF:Subject:From:Date:To:From:Subject; b=CTFNrn1s44As4dGLSjSMZf+m2Y+aWv7FJ//Tt07NY9W7CUsPyJ44LwKpVZjkZl79JZlwKF88Lz9OlntDhTYqWhs36XmRaqpmpKxS6TTUFzcPZinH8vT1YkGvBXcdqZyESo9ShCd41cI8IJjy3EIrjAG7qjDUIJu0k3MQ9DhCO+Ets5Q7JPFdUgQB+bYi5zSODZjGl2ib69TnziZL/P0qB6ZWFd/vCrRU6W9lv0PpFeS3uwr4OmiA7SUkyCDPrUzawpZeJNZMaH2wFXrZvIBvqXTKDp1vfxnQdetANhTWiKXmyhbArt5C3wjYJHIC/lZAorH+NU45LC0kVKa/pt3A6w== X-YMail-OSG: S1fAFHAVM1lZV7dUJgm8NyQXOAfzWdliHjCIgRYs5KJ4mtchikBX2cm_Veubu2l JGiyH5BFdNBai5xQo2DiLQm28cjCmR87eD.L3gjM.w69BP.OtYgef6EQcr.pvXR00tQmr60sDtEv UvHQ0MwLNX6i9KQLl1iYp1m1j2MaJi3g666UNhSdvrN4AlmvlZazlEVtQAEVAJ4ppdM02FY_DgU2 YsjTbGagf9P7zgfVNiyxmi7SwRrdbQhI6ZZzaqQ6TT4FUBg_2yZajXLcSdwl5f38Mxj_dQKGqJSr VEK7dHqJkRc2EO77w0YcA0a.PSSxXaqWAyfeDvLZILIZln99kBBxIOVkPn.DuNCzfqRQkQ125cAR 6vc1pjKox3BDj7hOk0Ma5skuiPtai4jwTFJFTJa6dI50omGAg_ZP5NXzv6xBhBtph_fasdutAvpt Z4EYdXL5AvMWmbwxXJIOTNGkq_H9726i_KHxGQY9zQ9sp.Dw35p.ABl95dxNnePfq1jsKRwrGWqU ZCjI.1Jt6HIUUFxRs.EF8rY6idPB_HhLdS6bNOz7vMB3sJ02XgxsInq34kdcPCYdT.fDYeIJoJeq iX6QL8.4S_QwDIiwx78Pv6kbVMjCVpNWNGVh4VuMA08.f7g3uD0oGeTwt1773tlrGXr2xUGntPnh hhlKRIQJ8qJQG0jOGOQlra4n2lgmB_E1hTYO3JAdZ.EWOOcaB5NJbOagNubWJPYG1MuQaBlUfi0U ccsalqlFuo8cjKMVe9knPmosPj0imxvDHzQY_.qSuM952Mwn5z8xvGWv3pK3t_KAqUwCZwgFxEE. Uxw0sS_L0bRCZaFfqgoIM9BIVT9UbaC7coX5JIjIGLqYTvUPDygTph.dIbhXUnr6hIjdWtIL8Sky jtVhIWZ3AFTQsT_AVGYOd0Yu3x2dtMbMLiqDnApcA_z4YnChiwDHN.qzVVBHOiSWZL8UTomJRW_W MgCCBurc4nppHi.bnyC08NAYCMxq61pWWbCwH0YoXwwkYDp9axWBtwlTjLQeeaEhZox..VA8L9NB LOfsrkOxupROKLuCACZRZeDWnf6ltaEEu3aU4N5T_LNUreLfSrJYZYGtkMPOQDZE_cDhRPkHsRwY FkaSkiBeyy.lw8LPYF35f.WRH2eWrD8ZSfvG6pR358XZ..pXV5Ck7mLsP4ao2K8GdFF3bLQAHDur 3AvzjwpLadBwd9ft4wPPRsJaVogaIzHCew7tZR2euiS.YTglYtRyI9ApYALA0HY_.KM6YcMDfWvO S493avF91YHJEu8iKmUAXlhFgumehWWc1OLumBJgMUSD1d1pSoWHMFHf085UDeSVFllhr55a7PeG K5cpLBPLYlajh1uEc.tuhqtw_j8FbX4wlt2sh7YXyOqzwb1zbo9rPu9cpMHYbSM3Law0YBv_coQA QGTCVM1rTo39u2yiWSMlcpF6Lac_9SvlCIjqXZQkrnyMY0Epg5IaaEqWOqU71AjZjqTWZwQ3ahhn DBcbMsAPs9DCcm3nPakCWghMKyEqYcagh0tDVuv.PcNFqioAlxNDjbgtfRgVeQCjPYUAQGdoMiCL sD4nlhUKYTi.pF96qrR2RK.p_6.KRWNlD0qq2888R2sCdUuRoaBl8Bd1ePXwuXyCjdi6pv54yRL5 fszeX.gNkGQtaX22AcHxV7s77DKNA8iHjf8iXFoRCEemEOFXbJMR5mzOX.9tcvTNi7u12YvH1oUX hEe9WDNOgwe0fQEAi8oew_a4aoN7dEiVt6EwjWhXjmbRAE7HWhKdCmbX_T4vLrognHFt4KFwRLi3 IogFB6pIcUYiHmv7XqKn8M.jaBs6uRoNisYGY2x0S5TijHRwJqIuypRwgaGBzSFkOOgH.IROo_Qt 8ZsDVHZ1j1j8s5zsUhZwNBRWOwLq7zQXPElAMRQ2J0q2txjP7Bf0hZkNtvIULPoZfnLcbdijM1j7 Eh6uYOO1gQiCPWAl7QJv1et__Q18Rne2uc_.GwttuLIOZLazyvcoPSfa0FP2lAwxgoPSj22y37Tf Ir9x8Pf5u83VxmCfS6Jxt39dN3odxzvRdrZvYYONBfhQIzOxcZRKSyBgPa_cQvgu1jnlKkAmfnb_ Eo__p.ZBJ_kYejxGOVlNrv4soUUeRPwQ.JhbDXOKeHcqBKEA9.avyhcv.zSGifquUYDI.VmbzIyp Gn0FcRMEzviAszZ27J2gvBl5ZwcDLNY_AX4EemMMizNZZb9AZuQsVHudfbPZ.lH6W07Y4C1Wpg3F EY6c68HQx8chcDc_Yz6jrzkbprW2f7GrImOVjjiFtj.aHUmwgqkK8X5BXQtCWvkmAPT7SnXFdisB bqSdETXpOaVG1ZsCfCMUjwGbdEsk2q8REqWKRKvAe X-Sonic-MF: X-Sonic-ID: 867300d6-66c1-4ac0-99a9-70e4835f0c19 Received: from sonic.gate.mail.ne1.yahoo.com by sonic301.consmr.mail.gq1.yahoo.com with HTTP; Tue, 26 Nov 2024 17:59:21 +0000 Received: by hermes--production-gq1-5dd4b47f46-zz6g6 (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 96ab8f073a80e750fb8e02192beccda2; Tue, 26 Nov 2024 17:59:20 +0000 (UTC) Content-Type: text/plain; charset=utf-8 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 (Mac OS X Mail 16.0 \(3776.700.51.11.1\)) Subject: Re: port binary dumping core on recent head in poudriere [tmpfs corruptions involving blocks of zeros that should not be all zeros] From: Mark Millard In-Reply-To: Date: Tue, 26 Nov 2024 09:59:08 -0800 Cc: Konstantin Belousov , Dimitry Andric , =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= , "jah@freebsd.org" , Alan Somers , Mark Johnston , FreeBSD Current , Guido Falsi , Yasuhiro Kimura , ports@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <5E0432D6-41D1-4A54-AA21-CCB5B8DC08E6@yahoo.com> References: <38658C0D-CA33-4010-BBE1-E68D253A3DF7@FreeBSD.org> <1004a753-9a3c-4aa2-bfa8-4a0c471fe3ea@madpilot.net> <0690CFB1-6A6D-4B63-916C-BAB7F6256000@yahoo.com> <3660625A-0EE8-40DA-A248-EC18C734718C@yahoo.com> <865xoa2t6f.fsf@ltc.des.dev> <69A2E921-F5E3-40D2-977D-0964EE27349A@FreeBSD.org> <4AE5B316-D7EB-4290-8D52-7FBF244EA7A4@FreeBSD.org> <33D56E3E-6476-48E8-B115-B906629B8AF5@yahoo.com> To: Doug Moore X-Mailer: Apple Mail (2.3776.700.51.11.1) X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US] X-Rspamd-Queue-Id: 4XyVhB5SHbz52GT X-Spamd-Bar: ---- On Nov 26, 2024, at 09:29, Doug Moore wrote: > I think @kib has found the source of the problem. I've attached an = attempt to fix it. That worked for what I'm testing. Following the same procedure but with the new patch content, .got.plt looks good at the beginning: 2bed60 78ba2b00 00000000 00000000 00000000 x.+............. 2bed70 00000000 00000000 86a62a00 00000000 ..........*..... 2bed80 96a62a00 00000000 a6a62a00 00000000 ..*.......*..... 2bed90 b6a62a00 00000000 c6a62a00 00000000 ..*.......*..... . . . And sassc no longer fails: # sassc Usage: sassc [options] [INPUT] [OUTPUT] Options: -s, --stdin Read input from standard input instead of an = input file. -t, --style NAME Output style. Can be: nested, expanded, = compact, compressed. -l, --line-numbers Emit comments showing original line numbers. --line-comments -I, --load-path PATH Set Sass import path. -P, --plugin-path PATH Set path to autoload plugins. -m, --sourcemap[=3DTYPE] Emit source map (auto or inline). -M, --omit-map-comment Omits the source map url comment. -p, --precision Set the precision for numbers. -a, --sass Treat input as indented syntax. -v, --version Display compiled versions. -h, --help Display this help message. > On 11/26/24 09:52, Mark Millard wrote: >> On Nov 26, 2024, at 05:38, Konstantin Belousov = wrote: >>=20 >>> On Tue, Nov 26, 2024 at 01:58:19PM +0100, Dimitry Andric wrote: >>>> On 26 Nov 2024, at 13:32, Dimitry Andric wrote: >>>>> On 26 Nov 2024, at 11:19, Dag-Erling Sm=C3=B8rgrav = wrote: >>>>>> Mark Millard writes: >>>>>>> =46rom inside a bulk -i where I did a manual make command >>>>>>> after it built and installed libsass.so.1.0.0 . The >>>>>>> manual make produced a /wrkdirs/ : >>>>>>> [...] >>>>>>> So the original creation looks okay. But . . . >>>>>>> [...] >>>>>>> So: The later, staged copy is a bad copy. Both are in the >>>>>>> tmpfs. So copying to the staging area makes a corrupted >>>>>>> copy inside the same tmpfs. After that, further copies of >>>>>>> staging's bad copy can be expected to be messed up. >>>>>> This and the fact that it happens on 14 and 15 but not on 13 = strongly >>>>>> suggests an issue wth `copy_file_range(2)`, since `install(1)` in = 14 and >>>>>> 15 (but not in 13) now uses `copy_file_range(2)` if at all = possible. >>>>>>=20 >>>>>> My educated guess is that hole detection doesn't work reliably = for files >>>>>> that have had holes filled while memory-mapped, so = `copy_file_range(2)` >>>>>> thinks there is a hole where there isn't one and skips some of = the data >>>>>> when `install(1)` uses it to copy the library from `${WRKSRC}` to >>>>>> `${STAGEDIR}`. This may or may not be specific to tmpfs. >>>>>>=20 >>>>>> You may want to try applying the attached patch to your FreeBSD = 14 and >>>>>> 15 jails. It prevents `cp(1)` and `install(1)` from trying to = use >>>>>> `copy_file_range(2)`. >>>>> Yes, tmpfs is indeed the culprit (or at least involved). I have = had USE_TMPFS=3Dlocalbase in my poudriere.conf for a long time, since = otherwise my build machine would run out of memory very quickly, so I = didn't encounter any issues. >>>>>=20 >>>>> Now I changed it to USE_TMPFS=3Dyes, rebuilt only textproc/libsass = and textproc/sassc, and then after reinstalling those packages: >>>>>=20 >>>>> $ /usr/local/bin/sassc >>>>> Segmentation fault >>>> And after applying Dag-Erling's patch to disable copy_file_range = for cp and install, it works correctly again. >>> So indeed there might be an issue in tmpfs seeking for data. Could = you try >>> the following? >>>=20 >>> commit f4b848946a131dab260b44eab2cfabceb82bee0c >>> Author: Konstantin Belousov >>> Date: Tue Nov 26 15:34:56 2024 +0200 >>>=20 >>> tmpfs: do not skip pages searching for data >>>=20 >>> If the iterator finds invalid page at the requested pindex in >>> swap_pager_seek_data(), the current code only looks at the swap = blocks >>> to search for data. This is not correct, valid pages may appear = at the >>> higher indexes still. >>>=20 >>> diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c >>> index db925f4ae7f6..390b2c10d680 100644 >>> --- a/sys/vm/swap_pager.c >>> +++ b/sys/vm/swap_pager.c >>> @@ -2503,12 +2503,9 @@ swap_pager_seek_data(vm_object_t object, = vm_pindex_t pindex) >>> VM_OBJECT_ASSERT_RLOCKED(object); >>> vm_page_iter_init(&pages, object); >>> m =3D vm_page_iter_lookup_ge(&pages, pindex); >>> - if (m !=3D NULL) { >>> - if (!vm_page_any_valid(m)) >>> - m =3D NULL; >>> - else if (pages.index =3D=3D pindex) >>> - return (pages.index); >>> - } >>> + if (m !=3D NULL && pages.index =3D=3D pindex) >>> + return (pages.index); >>> + >>> swblk_iter_init_only(&blks, object); >>> swap_index =3D swap_pager_iter_find_least(&blks, pindex); >>> if (swap_index =3D=3D pindex) >> Not sufficient, unfortunately . . . >>=20 >> I patched what I've been running and rebooted into: >>=20 >> # uname -apKU >> FreeBSD 7950X3D-ZFS 15.0-CURRENT FreeBSD 15.0-CURRENT #152 = main-n273696-43e045c1733d-dirty: Tue Nov 26 07:21:27 PST 2024 = root@7950X3D-ZFS:/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64= .amd64/sys/GENERIC-NODBG amd64 amd64 1500027 1500027 >>=20 >> Note: 43e045c1733d is from 2024-Nov-18 . >>=20 >> I then built libsass : >>=20 >> [00:00:02] [01] [00:00:00] Building textproc/libsass | = libsass-3.6.6 >> [00:00:20] [01] [00:00:18] Finished textproc/libsass | = libsass-3.6.6: Success ending TMPFS: 3.42 GiB >>=20 >> I then installed it, resulting in: >>=20 >> # pkg info libsass >> libsass-3.6.6 >> Name : libsass >> Version : 3.6.6 >> Installed on : Tue Nov 26 07:33:15 2024 PST >> Origin : textproc/libsass >> Architecture : FreeBSD:15:amd64 >> Prefix : /usr/local >> Categories : textproc >> Licenses : MIT >> Maintainer : nivit@FreeBSD.org >> WWW : https://sass-lang.com/libsass >> Comment : C/C++ implementation of a Sass compiler >> Shared Libs provided: >> libsass.so.1 >> Annotations : >> FreeBSD_version: 1500027 >> build_timestamp: 2024-11-26T15:32:33+0000 >> built_by : poudriere-git-3.4.99.20240811 >> . . . >>=20 >> libsass.so.1.0.0 still has .got.plt starting with (this time): >>=20 >> 2bed60 00000000 00000000 00000000 00000000 ................ >> 2bed70 00000000 00000000 00000000 00000000 ................ >> 2bed80 00000000 00000000 00000000 00000000 ................ >> 2bed90 00000000 00000000 00000000 00000000 ................ >> . . . >> 2bffc0 00000000 00000000 00000000 00000000 ................ >> 2bffd0 00000000 00000000 00000000 00000000 ................ >> 2bffe0 00000000 00000000 00000000 00000000 ................ >> 2bfff0 00000000 00000000 00000000 00000000 ................ >> 2c0000 96cb2a00 00000000 a6cb2a00 00000000 ..*.......*..... >> 2c0010 b6cb2a00 00000000 c6cb2a00 00000000 ..*.......*..... >> 2c0020 d6cb2a00 00000000 e6cb2a00 00000000 ..*.......*..... >> 2c0030 f6cb2a00 00000000 06cc2a00 00000000 ..*.......*..... >> . . . >>=20 >> And still results in: >>=20 >> # sassc >> Segmentation fault (core dumped) >>=20 >>=20 >>=20 >> =3D=3D=3D >> Mark Millard >> marklmi at yahoo.com > =3D=3D=3D Mark Millard marklmi at yahoo.com