|
|
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
|