From nobody Tue Apr 4 05:28:11 2023 X-Original-To: dev-commits-src-main@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 4PrGWM5zf7z43wxx; Tue, 4 Apr 2023 05:28:15 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from omta001.cacentral1.a.cloudfilter.net (omta001.cacentral1.a.cloudfilter.net [3.97.99.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Client", Issuer "CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4PrGWM18Fvz4PMB; Tue, 4 Apr 2023 05:28:15 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Authentication-Results: mx1.freebsd.org; dkim=none; spf=none (mx1.freebsd.org: domain of cy.schubert@cschubert.com has no SPF policy when checking 3.97.99.32) smtp.mailfrom=cy.schubert@cschubert.com; dmarc=none Received: from shw-obgw-4001a.ext.cloudfilter.net ([10.228.9.142]) by cmsmtp with ESMTP id jOKSpp6QBuZMSjZDKpwCnQ; Tue, 04 Apr 2023 05:28:14 +0000 Received: from spqr.komquats.com ([70.66.148.124]) by cmsmtp with ESMTPA id jZDIpKBnSHFsOjZDJp9hjz; Tue, 04 Apr 2023 05:28:14 +0000 X-Authority-Analysis: v=2.4 cv=XZqaca15 c=1 sm=1 tr=0 ts=642bb56e a=Cwc3rblV8FOMdVN/wOAqyQ==:117 a=Cwc3rblV8FOMdVN/wOAqyQ==:17 a=kj9zAlcOel0A:10 a=dKHAf1wccvYA:10 a=pGLkceISAAAA:8 a=VxmjJ2MpAAAA:8 a=6I5d2MoRAAAA:8 a=YxBL1-UpAAAA:8 a=EkcXrb_YAAAA:8 a=9vvC0qTqT2CmnUR6vOYA:9 a=CjuIK1q_8ugA:10 a=swc79zMUYnAA:10 a=7gXAzLPJhVmCkEl4_tsf:22 a=IjZwj45LgO3ly-622nXo:22 a=Ia-lj3WSrqcvXOmTRaiG:22 a=LK5xJRSDVpKd5WXXoEvA:22 Received: from slippy.cwsent.com (slippy [10.1.1.91]) by spqr.komquats.com (Postfix) with ESMTP id 00F22C88; Mon, 3 Apr 2023 22:28:12 -0700 (PDT) Received: by slippy.cwsent.com (Postfix, from userid 1000) id DA2172C1; Mon, 3 Apr 2023 22:28:11 -0700 (PDT) X-Mailer: exmh version 2.9.0 11/07/2018 with nmh-1.8+dev Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: Rick Macklem cc: Cy Schubert , Martin Matuska , src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: 2a58b312b62f - main - zfs: merge openzfs/zfs@431083f75 In-reply-to: References: <202304031513.333FD6qw014903@gitrepo.freebsd.org> <20230403231444.CF48911F@slippy.cwsent.com> <20230403232549.73E331A2@slippy.cwsent.com> <20230403235851.84C0467@slippy.cwsent.com> Comments: In-reply-to Rick Macklem message dated "Mon, 03 Apr 2023 22:20:03 -0700." List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 03 Apr 2023 22:28:11 -0700 Message-Id: <20230404052811.DA2172C1@slippy.cwsent.com> X-CMAE-Envelope: MS4xfGzNdKoMybQXzs0JWbpeNcFluj2jEuvToVGl8FLpTKS/SR0Ae63kd5pgOSFc2rh6eZntrt90Lf34nPIKHwQns9xIMNpRw84O/loSkymscC6pIAlWpzK7 TgA4TTmds4jdfL58pRBFq7vNQoO4eZ2tcWKNWrCUGPMTXZoiHPvrkOlJS7MeawEvE0KX7NjUUC/Ys3tbBlzdtNTOzMfXJQYfHquZM48HecZK1QTN771JYaTt p/EipLs4djaF62fQC/DA0nS/FjY2GQmGoJE4iyeqS8IRLO2eeR3CwIH6gAUtKDssh9IXGmX7PcSCXRWMaRxE3jhf3aT+yCo/W44Mrsh/agZ74c4cKuZsTPS9 TNm2iLNW X-Spamd-Result: default: False [3.26 / 15.00]; R_BAD_CTE_7BIT(3.50)[7bit]; SUSPICIOUS_RECIPS(1.50)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; AUTH_NA(1.00)[]; NEURAL_HAM_SHORT(-0.98)[-0.985]; NEURAL_HAM_MEDIUM(-0.96)[-0.958]; MV_CASE(0.50)[]; RCVD_IN_DNSWL_MED(-0.20)[3.97.99.32:from]; MIME_GOOD(-0.10)[text/plain]; TAGGED_RCPT(0.00)[]; DMARC_NA(0.00)[cschubert.com: no valid DMARC record]; TO_DN_SOME(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_SPF_NA(0.00)[no SPF record]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RWL_MAILSPIKE_POSSIBLE(0.00)[3.97.99.32:from]; MLMMJ_DEST(0.00)[dev-commits-src-all@freebsd.org,dev-commits-src-main@freebsd.org]; RCPT_COUNT_FIVE(0.00)[6]; FROM_HAS_DN(0.00)[]; RCVD_COUNT_FIVE(0.00)[5]; R_DKIM_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; FREEMAIL_TO(0.00)[gmail.com]; REPLYTO_EQ_FROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:16509, ipnet:3.96.0.0/15, country:US]; GREYLIST(0.00)[pass,meta]; ARC_NA(0.00)[]; HAS_REPLYTO(0.00)[Cy.Schubert@cschubert.com] X-Rspamd-Queue-Id: 4PrGWM18Fvz4PMB X-Spamd-Bar: +++ X-ThisMailContainsUnwantedMimeParts: N In message , Rick Macklem writes: > On Mon, Apr 3, 2023 at 6:55=E2=80=AFPM Rick Macklem > wrote: > > > > On Mon, Apr 3, 2023 at 4:58=E2=80=AFPM Cy Schubert .com> wrote: > > > > > > In message gmail.c > > > om> > > > , Rick Macklem writes: > > > > On Mon, Apr 3, 2023 at 4:38=3DE2=3D80=3DAFPM Cy Schubert @cschubert.c=3D > > > > om> wrote: > > > > > > > > > > In message <20230403231444.CF48911F@slippy.cwsent.com>, Cy Schubert= > write=3D > > > > s: > > > > > > In message <202304031513.333FD6qw014903@gitrepo.freebsd.org>, Mar= > tin > > > > > > Matuska wr > > > > > > ites: > > > > > > > The branch main has been updated by mm: > > > > > > > > > > > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=3D3D2a58b312b62f90= > 8ec92311=3D > > > > d1bd8536 > > > > > > db > > > > > > > aeb8e55b > > > > > > > > > > > > > > commit 2a58b312b62f908ec92311d1bd8536dbaeb8e55b > > > > > > > Merge: b98fbf3781df 431083f75bdd > > > > > > > Author: Martin Matuska > > > > > > > AuthorDate: 2023-04-03 14:49:30 +0000 > > > > > > > Commit: Martin Matuska > > > > > > > CommitDate: 2023-04-03 14:49:30 +0000 > > > > > > > > > > > > > > zfs: merge openzfs/zfs@431083f75 > > > > > > > > > > > > > > Notable upstream pull request merges: > > > > > > > #12194 Fix short-lived txg caused by autotrim > > > > > > > #13368 ZFS_IOC_COUNT_FILLED does unnecessary txg_wait_syn= > ced() > > > > > > > #13392 Implementation of block cloning for ZFS > > > > > > > #13741 SHA2 reworking and API for iterating over multiple= > imple=3D > > > > mentat > > > > > > io > > > > > > > ns > > > > > > > #14282 Sync thread should avoid holding the spa config wr= > ite lo=3D > > > > ck > > > > > > > when possible > > > > > > > #14283 txg_sync should handle write errors in ZIL > > > > > > > #14359 More adaptive ARC eviction > > > > > > > #14469 Fix NULL pointer dereference in zio_ready() > > > > > > > #14479 zfs redact fails when dnodesize=3D3Dauto > > > > > > > #14496 improve error message of zfs redact > > > > > > > #14500 Skip memory allocation when compressing holes > > > > > > > #14501 FreeBSD: don't verify recycled vnode for zfs contr= > ol dir=3D > > > > ectory > > > > > > > #14502 partially revert PR 14304 (eee9362a7) > > > > > > > #14509 Fix per-jail zfs.mount_snapshot setting > > > > > > > #14514 Fix data race between zil_commit() and zil_suspend= > () > > > > > > > #14516 System-wide speculative prefetch limit > > > > > > > #14517 Use rw_tryupgrade() in dmu_bonus_hold_by_dnode() > > > > > > > #14519 Do not hold spa_config in ZIL while blocked on IO > > > > > > > #14523 Move dmu_buf_rele() after dsl_dataset_sync_done() > > > > > > > #14524 Ignore too large stack in case of dsl_deadlist_mer= > ge > > > > > > > #14526 Use .section .rodata instead of .rodata on FreeBSD > > > > > > > #14528 ICP: AES-GCM: Refactor gcm_clear_ctx() > > > > > > > #14529 ICP: AES-GCM: Unify gcm_init_ctx() and gmac_init_c= > tx() > > > > > > > #14532 Handle unexpected errors in zil_lwb_commit() witho= > ut ASS=3D > > > > ERT() > > > > > > > #14544 icp: Prevent compilers from optimizing away memset= > () > > > > > > > in gcm_clear_ctx() > > > > > > > #14546 Revert zfeature_active() to static > > > > > > > #14556 Remove bad kmem_free() oversight from previous zfs= > dev_st=3D > > > > ate_li > > > > > > st > > > > > > > patch > > > > > > > #14563 Optimize the is_l2cacheable functions > > > > > > > #14565 FreeBSD: zfs_znode_alloc: lock the vnode earlier > > > > > > > #14566 FreeBSD: fix false assert in cache_vop_rmdir when = > replay=3D > > > > ing ZI > > > > > > L > > > > > > > #14567 spl: Add cmn_err_once() to log a message only on t= > he fir=3D > > > > st cal > > > > > > l > > > > > > > #14568 Fix incremental receive silently failing for recur= > sive s=3D > > > > ends > > > > > > > #14569 Restore ASMABI and other Unify work > > > > > > > #14576 Fix detection of IBM Power8 machines (ISA 2.07) > > > > > > > #14577 Better handling for future crypto parameters > > > > > > > #14600 zcommon: Refactor FPU state handling in fletcher4 > > > > > > > #14603 Fix prefetching of indirect blocks while destroyin= > g > > > > > > > #14633 Fixes in persistent error log > > > > > > > #14639 FreeBSD: Remove extra arc_reduce_target_size() cal= > l > > > > > > > #14641 Additional limits on hole reporting > > > > > > > #14649 Drop lying to the compiler in the fletcher4 code > > > > > > > #14652 panic loop when removing slog device > > > > > > > #14653 Update vdev state for spare vdev > > > > > > > #14655 Fix cloning into already dirty dbufs > > > > > > > #14678 Revert "Do not hold spa_config in ZIL while blocke= > d on I=3D > > > > O" > > > > > > > > > > > > > > Obtained from: OpenZFS > > > > > > > OpenZFS commit: 431083f75bdd3efaee992bdd672625ec7240d252 > > > > > > > > > > > > Just a heads up, I'm encountering the following error with an NFS= > share=3D > > > > of > > > > > > a ZFS dataset. > > > > > > > > > > > > Fatal trap 12: page fault while in kernel mode > > > > > > cpuid =3D3D 1; apic id =3D3D 01 > > > > > > fault virtual address =3D3D 0x178 > > > > > > fault code =3D3D supervisor read data, page not presen= > t > > > > > > instruction pointer =3D3D 0x20:0xffffffff814eebcd > > > > > > stack pointer =3D3D 0x28:0xfffffe00ec6c7cd0 > > > > > > frame pointer =3D3D 0x28:0xfffffe00ec6c7d50 > > > > > > code segment =3D3D base 0x0, limit 0xfffff, type 0x1b > > > > > > =3D3D DPL 0, pres 1, long 1, def32 0, gran = > 1 > > > > > > processor eflags =3D3D interrupt enabled, resume, IOPL =3D3D= > 0 > > > > > > current process =3D3D 3735 (nfsd: master) > > > > > > rdi: fffff8020a6f8570 rsi: fffffe00ec6c80d8 rdx: fffff8020f56f3a0 > > > > > > rcx: fffffe00ec6c80e0 r8: 0 r9: 1000000 > > > > > > rax: 0 rbx: fffff80210123540 rbp: fffffe00ec6c7d50 > > > > > > r10: 1876 r11: ffffffff81714596 r12: fffffe00ec6c7d20 > > > > > > r13: 0 r14: fffff8020b2f3e00 r15: fffffe00ec6c7d68 > > > > > > trap number =3D3D 12 > > > > > > panic: page fault > > > > > > cpuid =3D3D 1 > > > > > > time =3D3D 1680563351 > > > > > > KDB: stack backtrace: > > > > > > db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame > > > > > > 0xfffffe00ec6c7a90 > > > > > > vpanic() at vpanic+0x152/frame 0xfffffe00ec6c7ae0 > > > > > > panic() at panic+0x43/frame 0xfffffe00ec6c7b40 > > > > > > > > > > > trap_pfault() at trap_pfault+0x4f/frame 0xfffffe00ec6c7c00 > > > > > > calltrap() at calltrap+0x8/frame 0xfffffe00ec6c7c00 > > > > > > --- trap 0xc, rip =3D3D 0xffffffff814eebcd, rsp =3D3D 0xfffffe00e= > c6c7cd0, r=3D > > > > bp =3D3D > > > > > > 0xfffffe00ec6c7d50 --- > > > > > > zfs_freebsd_copy_file_range() at zfs_freebsd_copy_file_range+0x1b= > d/fram=3D > > > > e > > > > > > 0xfffffe00ec6c7d50 > > > > Can you find out the line# for the above? > > > > (I'll admit I don't know how to do that for loadable modules.) > > > > > > > > I know nothing about ZFS, but I might be able to spot why the > > > > VOP_COPY_FILE_RANGE() might be crashing. > > > > Looks like a NULL pointer reference to a fairly large structure. > > > > (I don't think a zfs_copy_file_range() exists in older ZFS versions?) > > > > > > I don't think it does so it calls vn_generic_copy_file_range() instead. > > > > > > A workaround at vfs_vnops.c:3077 should fix it but I'm not sure if this= > is > > > the correct fix. > > Well, I looked and the crash is obvious. For the NFS server, the last > > argument (fsize_td) is NULL (as noted by "man VOP_COPY_FILE_RANGE()). > > > > zfs_copy_file_range() cannot use ap->a_fsizetd->td_ucred for the NFS serv= > er > > case. It should probably use ap->a_incred or ap->a_outcred when > > ap->a_fsizetd =3D=3D NULL. > > (Both ap->a_incred and ap->a_outcred are the same for the NFS server, > > so either one > > should be ok.) > > > Looking at zfs_clone_range(), the only use of the cred argument is a call > to zfs_clear_setid_bits_if_necessary(). Since UFS decides whether or not > to clear SUID when writing to a file based on the credentials used when the > file is open()'d for writing, I think > ap->a_outcred is the correct credential to pass into > zfs_clone_range() whenever it is called. The thread credential > might have changed, due to something like a seteuid() after opening > the file. Will update your patch to use outcred instead. > > rick > > > You could try the attached patch, rick > > > > > > > > > > > -- > > > Cheers, > > > Cy Schubert > > > FreeBSD UNIX: Web: https://FreeBSD.org > > > NTP: Web: https://nwtime.org > > > > > > e^(i*pi)+1=3D0 > > > > > > > > > > > > h=C3=A1L I've noticed random artifacts in my emails since the new ZFS. I'm not sure if it's related to block_cloning or something else. This could mean deeper trouble. -- Cheers, Cy Schubert FreeBSD UNIX: Web: https://FreeBSD.org NTP: Web: https://nwtime.org e^(i*pi)+1=0