Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Aug 2019 11:27:17 +0000 (UTC)
From:      Andriy Gapon <avg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org
Subject:   svn commit: r350896 - vendor-sys/illumos/dist/common/zfs vendor/illumos/dist/man/man5
Message-ID:  <201908121127.x7CBRHB7093338@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: avg
Date: Mon Aug 12 11:27:17 2019
New Revision: 350896
URL: https://svnweb.freebsd.org/changeset/base/350896

Log:
  6585 sha512, skein, and edonr have an unenforced dependency on extensible dataset
  
  illumos/illumos-gate@892586e8a147c02d7f4053cc405229a13e796928
  https://github.com/illumos/illumos-gate/commit/892586e8a147c02d7f4053cc405229a13e796928
  
  https://www.illumos.org/issues/6585
    In any pool without the extensible dataset feature flag already enabled,
    creating a dataset with dedup set to use one of the new checksums would result
    in the following panic as soon as any data was added:
    panic[cpu0]/thread=ffffff0006761c40: feature_get_refcount(spa, feature,
    &refcount) != 48 (0x30 != 0x30), file: ../../common/fs/zfs/zfeature.c line 390
  
    ffffff0006761830 fffffffffba8fbdd ()
    ffffff0006761890 zfs:feature_do_action+11a ()
    ffffff00067618c0 zfs:spa_feature_incr+1e ()
    ffffff0006761920 zfs:dmu_object_zapify+b7 ()
    ffffff00067619b0 zfs:dsl_dataset_activate_feature+97 ()
    ffffff0006761a20 zfs:dsl_dataset_sync+ba ()
    ffffff0006761ab0 zfs:dsl_pool_sync+153 ()
    ffffff0006761b70 zfs:spa_sync+26e ()
    ffffff0006761c20 zfs:txg_sync_thread+227 ()
    ffffff0006761c30 unix:thread_start+8 ()
    Inspection showed that feature->fi_feature was 7, which is the value of
    SPA_FEATURE_EXTENSIBLE_DATASET in the spa_feature enum.
    Testing shows that the panic can be prevented by explicitly setting extensible
    dataset as a dependency for the sha512, edonr, and skein feature flags.
    Alternatively, the new checksums code could possibly be changed to obviate the
    need for the dependency.
  
  Reviewed by: Matthew Ahrens <mahrens@delphix.com>
  Reviewed by: Richard Laager <rlaager@wiktel.com>
  Approved by: Robert Mustacchi <rm@joyent.com>
  Author: ilovezfs <ilovezfs@icloud.com>

Modified:
  vendor/illumos/dist/man/man5/zpool-features.5

Changes in other areas also in this revision:
Modified:
  vendor-sys/illumos/dist/common/zfs/zfeature_common.c

Modified: vendor/illumos/dist/man/man5/zpool-features.5
==============================================================================
--- vendor/illumos/dist/man/man5/zpool-features.5	Mon Aug 12 10:57:56 2019	(r350895)
+++ vendor/illumos/dist/man/man5/zpool-features.5	Mon Aug 12 11:27:17 2019	(r350896)
@@ -543,7 +543,7 @@ filesystems that have ever had their recordsize larger
 l l .
 GUID	org.illumos:sha512
 READ\-ONLY COMPATIBLE	no
-DEPENDENCIES	none
+DEPENDENCIES	extensible_dataset
 .TE
 
 This feature enables the use of the SHA-512/256 truncated hash algorithm
@@ -575,7 +575,7 @@ Booting off of pools utilizing SHA-512/256 is supporte
 l l .
 GUID	org.illumos:skein
 READ\-ONLY COMPATIBLE	no
-DEPENDENCIES	none
+DEPENDENCIES	extensible_dataset
 .TE
 
 This feature enables the use of the Skein hash algorithm for checksum
@@ -609,7 +609,7 @@ Booting off of pools using \fBskein\fR is supported.
 l l .
 GUID	org.illumos:edonr
 READ\-ONLY COMPATIBLE	no
-DEPENDENCIES	none
+DEPENDENCIES	extensible_dataset
 .TE
 
 This feature enables the use of the Edon-R hash algorithm for checksum,



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201908121127.x7CBRHB7093338>