[OmniOS-discuss] zfs recv assertion failed when scrubbing source pool

Dan McDonald danmcd at omniti.com
Fri Mar 4 15:54:09 UTC 2016


> On Mar 4, 2016, at 7:17 AM, Lauri Tirkkonen <lotheac at iki.fi> wrote:
> 
> Because there is sensitive data involved, I'm reluctant to share either the
> core or the stream, but would appreciate any cluebats. Thanks.

The length in question arrives via a drr_payloadlen.  See zfs_receive_package(), line 2589 on illumos-gate:

2585	/*
2586	 * Read in the nvlist from the stream.
2587	 */
2588	if (drr->drr_payloadlen != 0) {
2589		error = recv_read_nvlist(hdl, fd, drr->drr_payloadlen,
2590		    &stream_nv, flags->byteswap, zc);
2591		if (error) {
2592			error = zfs_error(hdl, EZFS_BADSTREAM, errbuf);
2593			goto out;
2594		}
2595	}

Can you zstreamdump and see if any drr_payloadlen looks iffy?

Also, are you sending this stream from a post-illumos-5027 (Large Block Size) box to a pre-illumos-5027 receiver?  A quick disassembly of recv_read() can tell you what it thinks SPA_MAXBLOCKSIZE is.  Otherwise, for some reason the drr_payloadlen of one of these payloads is WAY OFF for some reason.

Hope this helps,
Dan



More information about the OmniOS-discuss mailing list