Public bug reported:

Hello, I'm trying to create a new zfs pool using the special allocation
vdevs and I get an error message that doesn't make sense to me:

cannot create 'newsrv': invalid 'special_small_blocks=262144' property:
must be zero or a power of 2 from 512B to 128K

$ echo "2 ^ 18" | bc -lq
262144

But the manpage says this number may be up to one megabyte:

sarnold@wopr:~ $ PAGER=cat MANWIDTH=70 man -7 --nh --nj zfsprops 2> /dev/null | 
grep -A8 special_small_blocks
     special_small_blocks=size
       This value represents the threshold block size for including
       small file blocks into the special allocation class.  Blocks
       smaller than or equal to this value will be assigned to the
       special allocation class while greater blocks will be
       assigned to the regular class.  Valid values are zero or a
       power of two from 512B up to 1M.  The default size is 0 which
       means no small file blocks will be allocated in the special
       class.

Here is a small demonstration:

sarnold@wopr:/tmp $ truncate -s 200MB disk1
sarnold@wopr:/tmp $ truncate -s 200MB disk2
sarnold@wopr:/tmp $ sudo zpool create  -O recordsize=1MB -O 
special_small_blocks=256KB test /tmp/disk1 special /tmp/disk2
cannot create 'test': invalid 'special_small_blocks=262144' property: must be 
zero or a power of 2 from 512B to 128K
sarnold@wopr:/tmp 1 $ sudo zpool create  -O recordsize=1MB -O 
special_small_blocks=128KB test /tmp/disk1 special /tmp/disk2
sarnold@wopr:/tmp $ zpool status test
  pool: test
 state: ONLINE
config:

 NAME          STATE     READ WRITE CKSUM
 test          ONLINE       0     0     0
   /tmp/disk1  ONLINE       0     0     0
 special
   /tmp/disk2  ONLINE       0     0     0

errors: No known data errors
sarnold@wopr:/tmp $ sudo zpool destroy test
sarnold@wopr:/tmp $

And now the actual command I tried:

sarnold@wopr:~ $ sudo zpool create -f -O atime=off -O checksum=skein -O 
compression=zstd-3 -O dedup=skein -O recordsize=1MB -O 
special_small_blocks=256KB -O xattr=sa newsrv mirror 
/dev/disk/by-id/ata-WDC_WUH721414ALE604_9RKGP7NC 
/dev/disk/by-id/ata-WDC_WUH721414ALE604_Z2K012NT mirror 
/dev/disk/by-id/ata-WDC_WUH721414ALE604_Z2KH01NT 
/dev/disk/by-id/ata-WDC_WUH721414ALE604_Z2KHG12T special 
/dev/disk/by-id/ata-Samsung_SSD_870_EVO_4TB_S6PJNS0W312010E 
/dev/disk/by-id/ata-Samsung_SSD_870_EVO_4TB_S6PJNS0W312031Z 
/dev/disk/by-id/ata-Samsung_SSD_870_EVO_4TB_S6PJNS0W312033K 
/dev/disk/by-id/ata-Samsung_SSD_870_EVO_4TB_S6PJNS0W312101T
cannot create 'newsrv': invalid 'special_small_blocks=262144' property: must be 
zero or a power of 2 from 512B to 128K

Thanks

ProblemType: Bug
DistroRelease: Ubuntu 22.04
Package: zfsutils-linux 2.1.5-1ubuntu6~22.04.1
ProcVersionSignature: Ubuntu 5.15.0-70.77-generic 5.15.92
Uname: Linux 5.15.0-70-generic x86_64
NonfreeKernelModules: zfs zunicode zavl icp zcommon znvpair
ApportVersion: 2.20.11-0ubuntu82.5
Architecture: amd64
CasperMD5CheckResult: unknown
Date: Tue Jul 11 21:27:05 2023
InstallationDate: Installed on 2016-04-04 (2655 days ago)
InstallationMedia: Ubuntu-Server 16.04 LTS "Xenial Xerus" - Beta amd64 
(20160325)
RebootRequiredPkgs: Error: path contained symlinks.
SourcePackage: zfs-linux
UpgradeStatus: Upgraded to jammy on 2022-08-14 (331 days ago)
modified.conffile..etc.sudoers.d.zfs: [inaccessible: [Errno 13] Permission 
denied: '/etc/sudoers.d/zfs']

** Affects: zfs-linux (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug jammy

** Description changed:

  Hello, I'm trying to create a new zfs pool using the special allocation
  vdevs and I get an error message that doesn't make sense to me:
  
  cannot create 'newsrv': invalid 'special_small_blocks=262144' property:
  must be zero or a power of 2 from 512B to 128K
  
  $ echo "2 ^ 18" | bc -lq
  262144
  
+ But the manpage says this number may be up to one megabyte:
+ 
+ sarnold@wopr:~ $ PAGER=cat MANWIDTH=70 man -7 --nh --nj zfsprops 2> /dev/null 
| grep -A8 special_small_blocks 
+      special_small_blocks=size
+        This value represents the threshold block size for including
+        small file blocks into the special allocation class.  Blocks
+        smaller than or equal to this value will be assigned to the
+        special allocation class while greater blocks will be
+        assigned to the regular class.  Valid values are zero or a
+        power of two from 512B up to 1M.  The default size is 0 which
+        means no small file blocks will be allocated in the special
+        class.
+ 
  
  Here is a small demonstration:
  
  sarnold@wopr:/tmp $ sudo zpool create  -O recordsize=1MB -O 
special_small_blocks=256KB test /tmp/disk1 special /tmp/disk2
  cannot create 'test': invalid 'special_small_blocks=262144' property: must be 
zero or a power of 2 from 512B to 128K
  sarnold@wopr:/tmp 1 $ sudo zpool create  -O recordsize=1MB -O 
special_small_blocks=128KB test /tmp/disk1 special /tmp/disk2
  sarnold@wopr:/tmp $ zpool status test
-   pool: test
-  state: ONLINE
+   pool: test
+  state: ONLINE
  config:
  
-       NAME          STATE     READ WRITE CKSUM
-       test          ONLINE       0     0     0
-         /tmp/disk1  ONLINE       0     0     0
-       special 
-         /tmp/disk2  ONLINE       0     0     0
+  NAME          STATE     READ WRITE CKSUM
+  test          ONLINE       0     0     0
+    /tmp/disk1  ONLINE       0     0     0
+  special
+    /tmp/disk2  ONLINE       0     0     0
  
  errors: No known data errors
  sarnold@wopr:/tmp $ sudo zpool destroy test
- sarnold@wopr:/tmp $ 
- 
+ sarnold@wopr:/tmp $
  
  And now the actual command I tried:
  
  sarnold@wopr:~ $ sudo zpool create -f -O atime=off -O checksum=skein -O 
compression=zstd-3 -O dedup=skein -O recordsize=1MB -O 
special_small_blocks=256KB -O xattr=sa newsrv mirror 
/dev/disk/by-id/ata-WDC_WUH721414ALE604_9RKGP7NC 
/dev/disk/by-id/ata-WDC_WUH721414ALE604_Z2K012NT mirror 
/dev/disk/by-id/ata-WDC_WUH721414ALE604_Z2KH01NT 
/dev/disk/by-id/ata-WDC_WUH721414ALE604_Z2KHG12T special 
/dev/disk/by-id/ata-Samsung_SSD_870_EVO_4TB_S6PJNS0W312010E 
/dev/disk/by-id/ata-Samsung_SSD_870_EVO_4TB_S6PJNS0W312031Z 
/dev/disk/by-id/ata-Samsung_SSD_870_EVO_4TB_S6PJNS0W312033K 
/dev/disk/by-id/ata-Samsung_SSD_870_EVO_4TB_S6PJNS0W312101T
  cannot create 'newsrv': invalid 'special_small_blocks=262144' property: must 
be zero or a power of 2 from 512B to 128K
- 
  
  Thanks
  
  ProblemType: Bug
  DistroRelease: Ubuntu 22.04
  Package: zfsutils-linux 2.1.5-1ubuntu6~22.04.1
  ProcVersionSignature: Ubuntu 5.15.0-70.77-generic 5.15.92
  Uname: Linux 5.15.0-70-generic x86_64
  NonfreeKernelModules: zfs zunicode zavl icp zcommon znvpair
  ApportVersion: 2.20.11-0ubuntu82.5
  Architecture: amd64
  CasperMD5CheckResult: unknown
  Date: Tue Jul 11 21:27:05 2023
  InstallationDate: Installed on 2016-04-04 (2655 days ago)
  InstallationMedia: Ubuntu-Server 16.04 LTS "Xenial Xerus" - Beta amd64 
(20160325)
  RebootRequiredPkgs: Error: path contained symlinks.
  SourcePackage: zfs-linux
  UpgradeStatus: Upgraded to jammy on 2022-08-14 (331 days ago)
  modified.conffile..etc.sudoers.d.zfs: [inaccessible: [Errno 13] Permission 
denied: '/etc/sudoers.d/zfs']

** Description changed:

  Hello, I'm trying to create a new zfs pool using the special allocation
  vdevs and I get an error message that doesn't make sense to me:
  
  cannot create 'newsrv': invalid 'special_small_blocks=262144' property:
  must be zero or a power of 2 from 512B to 128K
  
  $ echo "2 ^ 18" | bc -lq
  262144
  
  But the manpage says this number may be up to one megabyte:
  
- sarnold@wopr:~ $ PAGER=cat MANWIDTH=70 man -7 --nh --nj zfsprops 2> /dev/null 
| grep -A8 special_small_blocks 
-      special_small_blocks=size
-        This value represents the threshold block size for including
-        small file blocks into the special allocation class.  Blocks
-        smaller than or equal to this value will be assigned to the
-        special allocation class while greater blocks will be
-        assigned to the regular class.  Valid values are zero or a
-        power of two from 512B up to 1M.  The default size is 0 which
-        means no small file blocks will be allocated in the special
-        class.
- 
+ sarnold@wopr:~ $ PAGER=cat MANWIDTH=70 man -7 --nh --nj zfsprops 2> /dev/null 
| grep -A8 special_small_blocks
+      special_small_blocks=size
+        This value represents the threshold block size for including
+        small file blocks into the special allocation class.  Blocks
+        smaller than or equal to this value will be assigned to the
+        special allocation class while greater blocks will be
+        assigned to the regular class.  Valid values are zero or a
+        power of two from 512B up to 1M.  The default size is 0 which
+        means no small file blocks will be allocated in the special
+        class.
  
  Here is a small demonstration:
  
+ sarnold@wopr:/tmp $ truncate -s 200MB disk1
+ sarnold@wopr:/tmp $ truncate -s 200MB disk2
  sarnold@wopr:/tmp $ sudo zpool create  -O recordsize=1MB -O 
special_small_blocks=256KB test /tmp/disk1 special /tmp/disk2
  cannot create 'test': invalid 'special_small_blocks=262144' property: must be 
zero or a power of 2 from 512B to 128K
  sarnold@wopr:/tmp 1 $ sudo zpool create  -O recordsize=1MB -O 
special_small_blocks=128KB test /tmp/disk1 special /tmp/disk2
  sarnold@wopr:/tmp $ zpool status test
    pool: test
   state: ONLINE
  config:
  
   NAME          STATE     READ WRITE CKSUM
   test          ONLINE       0     0     0
     /tmp/disk1  ONLINE       0     0     0
   special
     /tmp/disk2  ONLINE       0     0     0
  
  errors: No known data errors
  sarnold@wopr:/tmp $ sudo zpool destroy test
  sarnold@wopr:/tmp $
  
  And now the actual command I tried:
  
  sarnold@wopr:~ $ sudo zpool create -f -O atime=off -O checksum=skein -O 
compression=zstd-3 -O dedup=skein -O recordsize=1MB -O 
special_small_blocks=256KB -O xattr=sa newsrv mirror 
/dev/disk/by-id/ata-WDC_WUH721414ALE604_9RKGP7NC 
/dev/disk/by-id/ata-WDC_WUH721414ALE604_Z2K012NT mirror 
/dev/disk/by-id/ata-WDC_WUH721414ALE604_Z2KH01NT 
/dev/disk/by-id/ata-WDC_WUH721414ALE604_Z2KHG12T special 
/dev/disk/by-id/ata-Samsung_SSD_870_EVO_4TB_S6PJNS0W312010E 
/dev/disk/by-id/ata-Samsung_SSD_870_EVO_4TB_S6PJNS0W312031Z 
/dev/disk/by-id/ata-Samsung_SSD_870_EVO_4TB_S6PJNS0W312033K 
/dev/disk/by-id/ata-Samsung_SSD_870_EVO_4TB_S6PJNS0W312101T
  cannot create 'newsrv': invalid 'special_small_blocks=262144' property: must 
be zero or a power of 2 from 512B to 128K
  
  Thanks
  
  ProblemType: Bug
  DistroRelease: Ubuntu 22.04
  Package: zfsutils-linux 2.1.5-1ubuntu6~22.04.1
  ProcVersionSignature: Ubuntu 5.15.0-70.77-generic 5.15.92
  Uname: Linux 5.15.0-70-generic x86_64
  NonfreeKernelModules: zfs zunicode zavl icp zcommon znvpair
  ApportVersion: 2.20.11-0ubuntu82.5
  Architecture: amd64
  CasperMD5CheckResult: unknown
  Date: Tue Jul 11 21:27:05 2023
  InstallationDate: Installed on 2016-04-04 (2655 days ago)
  InstallationMedia: Ubuntu-Server 16.04 LTS "Xenial Xerus" - Beta amd64 
(20160325)
  RebootRequiredPkgs: Error: path contained symlinks.
  SourcePackage: zfs-linux
  UpgradeStatus: Upgraded to jammy on 2022-08-14 (331 days ago)
  modified.conffile..etc.sudoers.d.zfs: [inaccessible: [Errno 13] Permission 
denied: '/etc/sudoers.d/zfs']

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to zfs-linux in Ubuntu.
https://bugs.launchpad.net/bugs/2027535

Title:
  unexpected error message: invalid 'special_small_blocks=262144'
  property: must be zero or a power of 2 from 512B to 128K

Status in zfs-linux package in Ubuntu:
  New

Bug description:
  Hello, I'm trying to create a new zfs pool using the special
  allocation vdevs and I get an error message that doesn't make sense to
  me:

  cannot create 'newsrv': invalid 'special_small_blocks=262144'
  property: must be zero or a power of 2 from 512B to 128K

  $ echo "2 ^ 18" | bc -lq
  262144

  But the manpage says this number may be up to one megabyte:

  sarnold@wopr:~ $ PAGER=cat MANWIDTH=70 man -7 --nh --nj zfsprops 2> /dev/null 
| grep -A8 special_small_blocks
       special_small_blocks=size
         This value represents the threshold block size for including
         small file blocks into the special allocation class.  Blocks
         smaller than or equal to this value will be assigned to the
         special allocation class while greater blocks will be
         assigned to the regular class.  Valid values are zero or a
         power of two from 512B up to 1M.  The default size is 0 which
         means no small file blocks will be allocated in the special
         class.

  Here is a small demonstration:

  sarnold@wopr:/tmp $ truncate -s 200MB disk1
  sarnold@wopr:/tmp $ truncate -s 200MB disk2
  sarnold@wopr:/tmp $ sudo zpool create  -O recordsize=1MB -O 
special_small_blocks=256KB test /tmp/disk1 special /tmp/disk2
  cannot create 'test': invalid 'special_small_blocks=262144' property: must be 
zero or a power of 2 from 512B to 128K
  sarnold@wopr:/tmp 1 $ sudo zpool create  -O recordsize=1MB -O 
special_small_blocks=128KB test /tmp/disk1 special /tmp/disk2
  sarnold@wopr:/tmp $ zpool status test
    pool: test
   state: ONLINE
  config:

   NAME          STATE     READ WRITE CKSUM
   test          ONLINE       0     0     0
     /tmp/disk1  ONLINE       0     0     0
   special
     /tmp/disk2  ONLINE       0     0     0

  errors: No known data errors
  sarnold@wopr:/tmp $ sudo zpool destroy test
  sarnold@wopr:/tmp $

  And now the actual command I tried:

  sarnold@wopr:~ $ sudo zpool create -f -O atime=off -O checksum=skein -O 
compression=zstd-3 -O dedup=skein -O recordsize=1MB -O 
special_small_blocks=256KB -O xattr=sa newsrv mirror 
/dev/disk/by-id/ata-WDC_WUH721414ALE604_9RKGP7NC 
/dev/disk/by-id/ata-WDC_WUH721414ALE604_Z2K012NT mirror 
/dev/disk/by-id/ata-WDC_WUH721414ALE604_Z2KH01NT 
/dev/disk/by-id/ata-WDC_WUH721414ALE604_Z2KHG12T special 
/dev/disk/by-id/ata-Samsung_SSD_870_EVO_4TB_S6PJNS0W312010E 
/dev/disk/by-id/ata-Samsung_SSD_870_EVO_4TB_S6PJNS0W312031Z 
/dev/disk/by-id/ata-Samsung_SSD_870_EVO_4TB_S6PJNS0W312033K 
/dev/disk/by-id/ata-Samsung_SSD_870_EVO_4TB_S6PJNS0W312101T
  cannot create 'newsrv': invalid 'special_small_blocks=262144' property: must 
be zero or a power of 2 from 512B to 128K

  Thanks

  ProblemType: Bug
  DistroRelease: Ubuntu 22.04
  Package: zfsutils-linux 2.1.5-1ubuntu6~22.04.1
  ProcVersionSignature: Ubuntu 5.15.0-70.77-generic 5.15.92
  Uname: Linux 5.15.0-70-generic x86_64
  NonfreeKernelModules: zfs zunicode zavl icp zcommon znvpair
  ApportVersion: 2.20.11-0ubuntu82.5
  Architecture: amd64
  CasperMD5CheckResult: unknown
  Date: Tue Jul 11 21:27:05 2023
  InstallationDate: Installed on 2016-04-04 (2655 days ago)
  InstallationMedia: Ubuntu-Server 16.04 LTS "Xenial Xerus" - Beta amd64 
(20160325)
  RebootRequiredPkgs: Error: path contained symlinks.
  SourcePackage: zfs-linux
  UpgradeStatus: Upgraded to jammy on 2022-08-14 (331 days ago)
  modified.conffile..etc.sudoers.d.zfs: [inaccessible: [Errno 13] Permission 
denied: '/etc/sudoers.d/zfs']

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/zfs-linux/+bug/2027535/+subscriptions


-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to