OpenSolaris

You are not signed in. Sign in or register.

Heads-up: very old "zfs send" streams no longer supported

Date: Wed, 23 Apr 2008 17:54:47 -0700
From: Matthew Ahrens <Matthew.Ahrens at sun dot com>
To: onnv-gate at onnv dot eng dot sun dot com, on-all at eng dot sun dot com
Subject: Heads-up: very old "zfs send" streams no longer supported

With the putback of:
	
    6655375 panic loop: assertion failed: crc != 0

into build 89, streams generated by running "zfs send" on Nevada build 35 and 
earlier can not be received.

You can probably stop reading here.  Below are details on why we are doing 
this, and what to do if you have these very old "zfs send" streams.

This putback doesn't actually change the on-disk format, it simply enforces a 
change that was made in build 36 by the putback for 6341639.  We are now 
enforcing the change so that we can detect certain types of stream corruption 
(which could lead to pool corruption, as with 6655375).

If you have streams generated with Nevada build 35 or earlier, you should use 
Nevada build 36 to 88 (inclusive, or any version of Solaris 10) to "zfs 
recieve" the old stream into a pool, and then "zfs send" it to a new file.

That the stream version and the zpool version (which is managed by "zpool 
upgrade") are not correlated.  You can use any pool version that the software 
supports to perform the transition steps mentioned above.

We have always disclaimed backwards compatibility of the "zfs send" stream 
format in the zfs(1m) manpage:

          The format of the stream is evolving. No backwards  com-
          patibility is guaranteed. You may not be able to receive
          your streams on future versions of ZFS.

However up until now we have maintained compatibility regardless.

All Solaris 10 releases use the new, post-build-35 stream format, so no 
incompatibility will be introduced to Solaris 10.

We plan to maintain backwards compatibility of the "zfs send" stream format 
throughout all releases of Solaris, and intend to commit to this backwards 
compatibility at some point in the future.

--matt