Date: Sat, 19 Jul 2014 12:00:55 +0200 From: Fabian Keil <freebsd-listen@fabiankeil.de> To: FreeBSD-fs <freebsd-fs@freebsd.org> Subject: zfs receive abort(): internal error: File too large Message-ID: <132a24ce.33d69bdc@fabiankeil.de>
next in thread | raw e-mail | index | archive | help
--Sig_/O9WPSDW0WHp2oOZEwz6yLQd
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable
Receiving a certain differential snapshot reproducible triggers
an assertion in zfs(8) on my system (currently 11-CURRENT r268660,
but I'll rebuild with HEAD over the weekend):
| fk@r500 ~ $zogftw sync
| [...]
| receiving incremental stream of tank/usr/local@2014-06-23_22:33 into inte=
nso1/backup/r500/tank/usr/local@2014-06-23_22:33
| in @ 29.4 MiB/s, out @ 0.0 KiB/s, 4674 MiB total, buffer 100% fullintern=
al error: File too large
| mbuffer: error: outputThread: error writing to <stdout> at offset 0x1241c=
0000: Broken pipe
| summary: 4674 MiByte in 3 min 45.9 sec - average of 20.7 MiB/s
| mbuffer: warning: error during output to <stdout>: Broken pipe
| fk@r500 ~ $gdb-core zfs.core=20
| [...]
| Reading symbols from /sbin/zfs...done.
| [New process 101713]
| [New Thread 803006400 (LWP 101713)]
| Core was generated by `zfs'.
| Program terminated with signal 6, Aborted.
| #0 kill () at kill.S:3
| 3 RSYSCALL(kill)
| (gdb) where
| #0 kill () at kill.S:3
| #1 0x00000008019fa016 in __raise (s=3D6) at /usr/src/lib/libc/gen/raise.=
c:45
| #2 0x00000008019f8849 in abort () at /usr/src/lib/libc/stdlib/abort.c:65
| #3 0x000000080168ba92 in zfs_verror (hdl=3D<optimized out>, error=3D<opt=
imized out>, fmt=3D<optimized out>, ap=3D<optimized out>, hdl=3D<optimized =
out>,=20
| error=3D<optimized out>, fmt=3D<optimized out>, ap=3D<optimized out>)
| at /usr/src/cddl/lib/libzfs/../../../cddl/contrib/opensolaris/lib/lib=
zfs/common/libzfs_util.c:277
| #4 zfs_standard_error_fmt (hdl=3D<optimized out>, error=3D<optimized out=
>, fmt=3D<optimized out>)
| at /usr/src/cddl/lib/libzfs/../../../cddl/contrib/opensolaris/lib/lib=
zfs/common/libzfs_util.c:403
| #5 0x000000080168b485 in zfs_standard_error (hdl=3D0x3022, warning: Unma=
pped DWARF Register #-2 encountered.
| error=3D<error reading variable: Unable to access DWARF register number 0=
xfffffffe>,=20
| msg=3D0x8019fa10a <getpid+10> "\017\202\214\031") at /usr/src/cddl/li=
b/libzfs/../../../cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c:=
341
| #6 0x0000000801681b9a in zfs_receive_one (hdl=3D<optimized out>, infd=3D=
<optimized out>, tosnap=3D<optimized out>, flags=3D<optimized out>, drr=3D0=
x0,=20
| drr_noswap=3D0x0, sendfs=3D<optimized out>, stream_nv=3D<optimized ou=
t>, stream_avl=3D<optimized out>, cleanup_fd=3D<optimized out>,=20
| action_handlep=3D<optimized out>, top_zfs=3D<optimized out>)
| at /usr/src/cddl/lib/libzfs/../../../cddl/contrib/opensolaris/lib/lib=
zfs/common/libzfs_sendrecv.c:3109
| #7 zfs_receive_impl (hdl=3D0x80301a200, tosnap=3D<optimized out>, flags=
=3D0x7fffffffde90, infd=3D<optimized out>, sendfs=3D<optimized out>,=20
| stream_nv=3D<optimized out>, stream_avl=3D<optimized out>, top_zfs=3D=
<optimized out>, cleanup_fd=3D<optimized out>, action_handlep=3D<optimized =
out>)
| at /usr/src/cddl/lib/libzfs/../../../cddl/contrib/opensolaris/lib/lib=
zfs/common/libzfs_sendrecv.c:3275
| #8 0x0000000801681395 in zfs_receive_package (destname=3D<optimized out>=
, flags=3D<optimized out>, drr=3D0x0, zc=3D0x3001777c1, top_zfs=3D<optimize=
d out>,=20
| cleanup_fd=3D<optimized out>, action_handlep=3D<optimized out>, hdl=
=3D<optimized out>, fd=3D<optimized out>)
| at /usr/src/cddl/lib/libzfs/../../../cddl/contrib/opensolaris/lib/lib=
zfs/common/libzfs_sendrecv.c:2501
| #9 zfs_receive_impl (hdl=3D0x80301a200, tosnap=3D0x7fffffffeae5 "intenso=
1/backup/r500/tank/usr/local", flags=3D0x7fffffffde90, infd=3D0,=20
| sendfs=3D<optimized out>, stream_nv=3D<optimized out>, stream_avl=3D<=
optimized out>, top_zfs=3D<optimized out>, cleanup_fd=3D<optimized out>,=20
| action_handlep=3D<optimized out>) at /usr/src/cddl/lib/libzfs/../../.=
./cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c:3281
| #10 0x000000080167fe71 in zfs_receive (hdl=3D0x80301a200, tosnap=3D0x7fff=
ffffeae5 "intenso1/backup/r500/tank/usr/local", flags=3D0x7fffffffde90, inf=
d=3D0,=20
| stream_avl=3D0x0) at /usr/src/cddl/lib/libzfs/../../../cddl/contrib/o=
pensolaris/lib/libzfs/common/libzfs_sendrecv.c:3304
| #11 0x00000000004099a1 in zfs_do_receive (argc=3D<optimized out>, argv=3D=
0x7fffffffe7a0)
| at /usr/src/cddl/sbin/zfs/../../../cddl/contrib/opensolaris/cmd/zfs/z=
fs_main.c:3950
| #12 0x000000000040572f in main (argc=3D<optimized out>, argv=3D<optimized=
out>)
| at /usr/src/cddl/sbin/zfs/../../../cddl/contrib/opensolaris/cmd/zfs/z=
fs_main.c:6953
| (gdb) f 3
| #3 0x000000080168ba92 in zfs_verror (hdl=3D<optimized out>, error=3D<opt=
imized out>, fmt=3D<optimized out>, ap=3D<optimized out>, hdl=3D<optimized =
out>,=20
| error=3D<optimized out>, fmt=3D<optimized out>, ap=3D<optimized out>)
| at /usr/src/cddl/lib/libzfs/../../../cddl/contrib/opensolaris/lib/lib=
zfs/common/libzfs_util.c:277
| 277 abort();
| (gdb) l
| 272=09
| 273 if (hdl->libzfs_printerr) {
| 274 if (error =3D=3D EZFS_UNKNOWN) {
| 275 (void) fprintf(stderr, dgettext(TEXT_DOMAIN, "internal "
| 276 "error: %s\n"), libzfs_error_description(hdl));
| 277 abort();
| 278 }
| 279=09
| 280 (void) fprintf(stderr, "%s: %s\n", hdl->libzfs_action,
| 281 libzfs_error_description(hdl));
What zogftw does is:
| 0 4640 3703 sudo -c - zfs send -I @2013-12-22_11:27 tank/usr/local=
@2014-06-23_22:33
| 1001 4641 3703 mbuffer -m 100M
| 0 4642 3703 sudo -c - zfs receive -v -u -F intenso1/backup/r500/ta=
nk/usr/local
| 0 4643 4640 zfs send -I @2013-12-22_11:27 tank/usr/local@2014-06-2=
3_22:33
| 0 4644 4642 zfs receive -v -u -F intenso1/backup/r500/tank/usr/loc=
al
It happens when receiving to other pools as well,
mbuffer always gets to 67.1 MiB.
zstreamdump doesn't seem to consider the stream objectionable:
| fk@r500 ~ $sudo zfs send -I @2013-12-22_11:27 tank/usr/local@2014-06-23_2=
2:33 | zstreamdump
| BEGIN record
| hdrtype =3D 2
| features =3D 4
| magic =3D 2f5bacbac
| creation_time =3D 0
| type =3D 0
| flags =3D 0x0
| toguid =3D 0
| fromguid =3D 0
| toname =3D tank/usr/local@2014-06-23_22:33
| END checksum =3D 2fb1374c0/c59b43b4b2/1a3f6af4955b/262293c445759
| BEGIN record
| hdrtype =3D 1
| features =3D 4
| magic =3D 2f5bacbac
| creation_time =3D 53a88f1e
| type =3D 2
| flags =3D 0x0
| toguid =3D f2e0cfa41ab80745
| fromguid =3D f1f10991be60bd7d
| toname =3D tank/usr/local@2014-06-23_22:33
| END checksum =3D 1bdac72d140ea8d1/9e56d965e806168a/ed215fadf1a47e7f/a99aa=
9cca7be2746
| END checksum =3D 0/0/0/0
| SUMMARY:
| Total DRR_BEGIN records =3D 2
| Total DRR_END records =3D 3
| Total DRR_OBJECT records =3D 98837
| Total DRR_FREEOBJECTS records =3D 796
| Total DRR_WRITE records =3D 140583
| Total DRR_WRITE_BYREF records =3D 0
| Total DRR_WRITE_EMBEDDED records =3D 0
| Total DRR_FREE records =3D 103847
| Total DRR_SPILL records =3D 0
| Total records =3D 344068
| Total write size =3D 7722947584 (0x1cc52d400)
Receiving tank/usr/local@2014-06-23_22:33 non-incrementally works
as expected, receiving additional incremental snapshots works too.
The zpools:
| fk@r500 ~ $zpool status
| pool: intenso1
| state: ONLINE
| scan: scrub repaired 0 in 0h8m with 0 errors on Fri Jul 18 17:42:59 2014
| config:
|=20
| NAME STATE READ WRITE CKSUM
| intenso1 ONLINE 0 0 0
| label/intenso1.eli ONLINE 0 0 0
|=20
| errors: No known data errors
|=20
| pool: tank
| state: ONLINE
| status: Some supported features are not enabled on the pool. The pool can
| still be used, but some features are unavailable.
| action: Enable all features using 'zpool upgrade'. Once this is done,
| the pool may no longer be accessible by software that does not support
| the features. See zpool-features(7) for details.
| scan: scrub repaired 0 in 4h11m with 0 errors on Sat Mar 22 18:25:01 20=
14
| config:
|=20
| NAME STATE READ WRITE CKSUM
| tank ONLINE 0 0 0
| ada0s1d.eli ONLINE 0 0 0
|=20
| errors: No known data errors
| fk@r500 ~ $zpool upgrade
| This system supports ZFS pool feature flags.
|=20
| All pools are formatted using feature flags.
|=20
|=20
| Some supported features are not enabled on the following pools. Once a
| feature is enabled the pool may become incompatible with software
| that does not support the feature. See zpool-features(7) for details.
|=20
| POOL FEATURE
| ---------------
| tank
| embedded_data
=20
| fk@r500 ~ $zpool list
| NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
| intenso1 2.72T 13.3G 2.71T 0% 1.00x ONLINE -
| tank 228G 193G 35.2G 84% 1.00x ONLINE -
According to my logs, I first saw the problem with r267067
(using a different receiving pool), but as the dataset hasn't
been zfs-sent for about 6 months, the problem could be quite
a bit older.
Fabian
--Sig_/O9WPSDW0WHp2oOZEwz6yLQd
Content-Type: application/pgp-signature; name=signature.asc
Content-Disposition: attachment; filename=signature.asc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iEYEARECAAYFAlPKQdYACgkQBYqIVf93VJ1LxACgmtDdAjJ4jw6G0ISUeyD5Xadx
rl0AnRn3lE+r0h2K+8HF6uQlnb995fLM
=Uie7
-----END PGP SIGNATURE-----
--Sig_/O9WPSDW0WHp2oOZEwz6yLQd--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?132a24ce.33d69bdc>
