Date: Thu, 2 Feb 2017 18:04:17 +0300 From: Slawa Olhovchenkov <slw@zxy.spb.ru> To: Steven Hartland <killing@multiplay.co.uk> Cc: freebsd-fs@freebsd.org Subject: Re: ZFS: mkdir: File too large Message-ID: <20170202150417.GD26493@zxy.spb.ru> In-Reply-To: <20170202145251.GC26493@zxy.spb.ru> References: <20170202115304.GA26493@zxy.spb.ru> <20170202142455.GB26493@zxy.spb.ru> <397541e0-2327-0591-e05c-bdf09cb2d923@multiplay.co.uk> <20170202145251.GC26493@zxy.spb.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Feb 02, 2017 at 05:52:51PM +0300, Slawa Olhovchenkov wrote: > On Thu, Feb 02, 2017 at 02:50:01PM +0000, Steven Hartland wrote: > > > On 02/02/2017 14:24, Slawa Olhovchenkov wrote: > > >> Try tracing SET_ERROR for EFBIG with dtrace to determine underlying > > >> cause. > > > 0 37281 none:set-error set-error 27 > > > zfs.ko`zfs_freebsd_mkdir+0x3a3 > > > kernel`VOP_MKDIR_APV+0x8a > > > kernel`kern_mkdirat+0x1e1 > > > kernel`amd64_syscall+0x50e > > > kernel`0xffffffff8079499b > > > > > > (kgdb) x zfs_freebsd_mkdir+0x3a3 > > > 0xffffffff81171813 <zfs_freebsd_mkdir+931>: 0xb4b78b45 > > > Current language: auto; currently minimal > > > (kgdb) info line *0xffffffff81171813 > > > Line 2145 of "/usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c" starts at address 0xffffffff81171813 <zfs_freebsd_mkdir+931> and ends at 0xffffffff8117181a <zfs_freebsd_mkdir+938>. > > > > > > 2138 /* > > > 2139 * Add a new entry to the directory. > > > 2140 */ > > > 2141 getnewvnode_reserve(1); > > > 2142 tx = dmu_tx_create(zfsvfs->z_os); > > > 2143 dmu_tx_hold_zap(tx, dzp->z_id, TRUE, dirname); > > > 2144 dmu_tx_hold_zap(tx, DMU_NEW_OBJECT, FALSE, NULL); > > > 2145 fuid_dirtied = zfsvfs->z_fuid_dirty; > > > 2146 if (fuid_dirtied) > > > 2147 zfs_fuid_txhold(zfsvfs, tx); > > > 2148 if (!zfsvfs->z_use_sa && acl_ids.z_aclp->z_acl_bytes > ZFS_ACE_SPACE) { > > > 2149 dmu_tx_hold_write(tx, DMU_NEW_OBJECT, 0, > > > 2150 acl_ids.z_aclp->z_acl_bytes); > > > 2151 } > > > > > > PS: Please, CC me > > What OS ver as those offsets seem odd? Offset seem true: dmu_tx_assign failed at start by tx->tx_err == EFBIG. tx->tx_err is EFBIG at dmu_tx_hold_zap:entry : # dtrace -n 'fbt:zfs:dmu_tx_hold_zap:entry { printf("err %d id %x", args[0]->tx_err, args[1]); }' dtrace: description 'fbt:zfs:dmu_tx_hold_zap:entry ' matched 1 probe CPU ID FUNCTION:NAME 0 31349 dmu_tx_hold_zap:entry err 0 id 4 0 31349 dmu_tx_hold_zap:entry err 0 id ffffffffffffffff 0 31349 dmu_tx_hold_zap:entry err 27 id 6 > I am try trace every call in zfs_freebsd_mkdir. > This is dmu_tx_assign: > > 3 29599 dmu_tx_assign:return ret 27 > > 2153 dmu_tx_hold_sa_create(tx, acl_ids.z_aclp->z_acl_bytes + > 2154 ZFS_SA_BASE_ATTR_SIZE); > 2155 > 2156 error = dmu_tx_assign(tx, TXG_WAIT); > 2157 if (error) { > 2158 zfs_acl_ids_free(&acl_ids); > 2159 dmu_tx_abort(tx); > 2160 getnewvnode_drop_reserve(); > 2161 ZFS_EXIT(zfsvfs); > 2162 return (error); > 2163 }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20170202150417.GD26493>