Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[zfs-2.1.15] Misc backports #15858

Merged
merged 11 commits into from
Feb 13, 2024
Merged

Commits on Feb 8, 2024

  1. Add zfs_prepare_disk script for disk firmware install

    Have libzfs call a special `zfs_prepare_disk` script before a disk is
    included into the pool.  The user can edit this script to add things
    like a disk firmware update or a disk health check.  Use of the script
    is totally optional. See the zfs_prepare_disk manpage for full details.
    
    Reviewed-by: Brian Behlendorf <[email protected]>
    Signed-off-by: Tony Hutter <[email protected]>
    Closes openzfs#15243
    tonyhutter committed Feb 8, 2024
    Configuration menu
    Copy the full SHA
    321af6e View commit details
    Browse the repository at this point in the history
  2. zed: misc vdev_enc_sysfs_path fixes

    There have been rare cases where the VDEV_ENC_SYSFS_PATH value that zed
    gets passed is stale.  To mitigate this, dynamically check the sysfs
    path at the time of zed event processing, and use the dynamic value if
    possible.  Note that there will be other times when we can not
    dynamically detect the sysfs path (like if a disk disappears) and have
    to rely on the old value for things like turning on the fault LED.  That
    is to say, we can't just blindly use the dynamic path in every case.
    
    Also:
    	- Add enclosure sysfs entry when running 'zpool add'
    	- Fix 'slot' and 'enc' zpool.d scripts for nvme
    
    Reviewed-by: Don Brady <[email protected]>
    Reviewed-by: Brian Behlendorf <[email protected]>
    Signed-off-by: Tony Hutter <[email protected]>
    Closes openzfs#15462
    tonyhutter committed Feb 8, 2024
    Configuration menu
    Copy the full SHA
    db6469f View commit details
    Browse the repository at this point in the history
  3. ZTS: Fix 'could not unmount datasets' on Alma 9 (openzfs#15542)

    Many tests are failing on AlmaLinux 9 because ZTS could not destroy the
    pool in cleanup.  This was due to $PWD being set to '.' instead of the
    expected full path.  This patch sets $PWD to the full path.
    
    Signed-off-by: Tony Hutter <[email protected]>
    Reviewed-by: Don Brady <[email protected]>
    tonyhutter committed Feb 8, 2024
    Configuration menu
    Copy the full SHA
    6b85607 View commit details
    Browse the repository at this point in the history
  4. ZTS: Add dirty dnode stress test

    Add a test for the dirty dnode SEEK_HOLE/SEEK_DATA bug described in
    openzfs#15526
    
    The bug was fixed in openzfs#15571 and
    was backported to 2.2.2 and 2.1.14.  This test case is just to
    make sure it does not come back.
    
    seekflood.c originally written by Rob Norris.
    
    Reviewed-by: Graham Perrin <[email protected]>
    Reviewed-by: Brian Behlendorf <[email protected]>
    Reviewed-by: Rob Norris <[email protected]>
    Signed-off-by: Tony Hutter <[email protected]>
    Closes openzfs#15608
    tonyhutter committed Feb 8, 2024
    Configuration menu
    Copy the full SHA
    dc7533b View commit details
    Browse the repository at this point in the history
  5. zed: fix typo in variable ZED_POWER_OFF_ENCLO*US*RE_SLOT_ON_FAULT

    Replace ENCLO_US_RE with ENCLO_SU_RE in the name of the variable.
    
    Note this changes the user-visible string in zed.rc, thus might
    break current users with the wrong string, but it's ~2 months
    since zfs-2.2.0 tag is out, thus should not be widespread yet.
    
    Mechanical change:
    
        $ grep -rl ZED_POWER_OFF_ENCLOUSRE_SLOT_ON_FAULT
        cmd/zed/zed.d/zed.rc
        cmd/zed/zed.d/statechange-slot_off.sh
    
        $ sed -i 's/ZED_POWER_OFF_ENCLOUSRE_SLOT_ON_FAULT/<linebreak>
                    ZED_POWER_OFF_ENCLOSURE_SLOT_ON_FAULT/g' \
          cmd/zed/zed.d/zed.rc \
          cmd/zed/zed.d/statechange-slot_off.sh
    
        $ grep -rl ZED_POWER_OFF_ENCLOUSRE_SLOT_ON_FAULT
        $
    
    Fixes 11fbcac
    ("zed: Add zedlet to power off slot when drive is faulted")
    
    Reviewed-by: Tony Hutter <[email protected]>
    Reviewed-by: Brian Behlendorf <[email protected]>
    Signed-off-by: Mauricio Faria de Oliveira <[email protected]>
    Closes openzfs#15651
    mfoliveira authored and tonyhutter committed Feb 8, 2024
    Configuration menu
    Copy the full SHA
    67f140a View commit details
    Browse the repository at this point in the history
  6. zpool: Add slot power control, print power status

    Add `zpool` flags to control the slot power to drives.  This assumes
    your SAS or NVMe enclosure supports slot power control via sysfs.
    
    The new `--power` flag is added to `zpool offline|online|clear`:
    
        zpool offline --power <pool> <device>    Turn off device slot power
        zpool online --power <pool> <device>     Turn on device slot power
        zpool clear --power <pool> [device]      Turn on device slot power
    
    If the ZPOOL_AUTO_POWER_ON_SLOT env var is set, then the '--power'
    option is automatically implied for `zpool online` and `zpool clear`
    and does not need to be passed.
    
    zpool status also gets a --power option to print the slot power status.
    
    Reviewed-by: Brian Behlendorf <[email protected]>
    Reviewed-by: Mart Frauenlob <[email protected]>
    Signed-off-by: Tony Hutter <[email protected]>
    Closes openzfs#15662
    tonyhutter committed Feb 8, 2024
    Configuration menu
    Copy the full SHA
    f9744dc View commit details
    Browse the repository at this point in the history
  7. Add 'zpool status -e' flag to see unhealthy vdevs

    When very large pools are present, it can be laborious to find
    reasons for why a pool is degraded and/or where an unhealthy vdev
    is. This option filters out vdevs that are ONLINE and with no errors
    to make it easier to see where the issues are. Root and parents of
    unhealthy vdevs will always be printed.
    
    Testing:
    ZFS errors and drive failures for multiple vdevs were simulated with
    zinject.
    
    Sample vdev listings with '-e' option
    - All vdevs healthy
        NAME        STATE     READ WRITE CKSUM
        iron5       ONLINE       0     0     0
    
    - ZFS errors
        NAME        STATE     READ WRITE CKSUM
        iron5       ONLINE       0     0     0
          raidz2-5  ONLINE       1     0     0
            L23     ONLINE       1     0     0
            L24     ONLINE       1     0     0
            L37     ONLINE       1     0     0
    
    - Vdev faulted
        NAME        STATE     READ WRITE CKSUM
        iron5       DEGRADED     0     0     0
          raidz2-6  DEGRADED     0     0     0
            L67     FAULTED      0     0     0  too many errors
    
    - Vdev faults and data errors
        NAME        STATE     READ WRITE CKSUM
        iron5       DEGRADED     0     0     0
          raidz2-1  DEGRADED     0     0     0
            L2      FAULTED      0     0     0  too many errors
          raidz2-5  ONLINE       1     0     0
            L23     ONLINE       1     0     0
            L24     ONLINE       1     0     0
            L37     ONLINE       1     0     0
          raidz2-6  DEGRADED     0     0     0
            L67     FAULTED      0     0     0  too many errors
    
    - Vdev missing
        NAME        STATE     READ WRITE CKSUM
        iron5       DEGRADED     0     0     0
          raidz2-6  DEGRADED     0     0     0
            L67     UNAVAIL      3     1     0
    
    - Slow devices when -s provided with -e
        NAME        STATE     READ WRITE CKSUM  SLOW
        iron5       DEGRADED     0     0     0     -
          raidz2-5  DEGRADED     0     0     0     -
            L10     FAULTED      0     0     0     0  external device fault
            L51     ONLINE       0     0     0    14
    
    Reviewed-by: Tony Hutter <[email protected]>
    Reviewed-by: Brian Behlendorf <[email protected]>
    Signed-off-by: Cameron Harr <[email protected]>
    Closes openzfs#15769
    cmharr authored and tonyhutter committed Feb 8, 2024
    Configuration menu
    Copy the full SHA
    ea7a7a7 View commit details
    Browse the repository at this point in the history
  8. LUA: Backport CVE-2020-24370's patch

    CVE-2020-24370 is a security vulnerability in lua. Although the CVE
    description in CVE-2020-24370 said that this CVE only affected lua
    5.4.0, according to lua this CVE actually existed since lua 5.2. The
    root cause of this CVE is the negation overflow that occurs when you
    try to take the negative of 0x80000000. Thus, this CVE also exists in
    openzfs. Try to backport the fix to the lua in openzfs since the
    original fix is for 5.4 and several functions have been changed.
    
    GHSA-gfr4-c37g-mm3v
    https://nvd.nist.gov/vuln/detail/CVE-2020-24370
    https://www.lua.org/bugs.html#5.4.0-11
    lua/lua@a585eae
    
    Reviewed-by: Tony Hutter <[email protected]>
    Reviewed-by: Brian Behlendorf <[email protected]>
    Signed-off-by: ChenHao Lu <[email protected]>
    Closes openzfs#15847
    the-Chain-Warden-thresh authored and tonyhutter committed Feb 8, 2024
    Configuration menu
    Copy the full SHA
    61b2a5a View commit details
    Browse the repository at this point in the history
  9. ZTS: Fix zfs_load-key failures on F39

    The zfs_load-key tests were failing on F39 due to their use of the
    deprecated ssl.wrap_socket function.  This commit updates the test to
    instead use ssl.SSLContext() as described in
    https://stackoverflow.com/a/65194957.
    
    Reviewed-by: Brian Behlendorf <[email protected]>
    Signed-off-by: Tony Hutter <[email protected]>
    Closes openzfs#15534
    Closes openzfs#15550
    tonyhutter committed Feb 8, 2024
    Configuration menu
    Copy the full SHA
    5c3e9d0 View commit details
    Browse the repository at this point in the history

Commits on Feb 9, 2024

  1. [zfs-2.1.15] Update ABI files

    Update ABI files from latest CI run results (for zfs-2.1.15)
    
    Signed-off-by: Tony Hutter <[email protected]>
    tonyhutter committed Feb 9, 2024
    Configuration menu
    Copy the full SHA
    7643c7c View commit details
    Browse the repository at this point in the history

Commits on Feb 12, 2024

  1. Fix the FreeBSD userspace build (openzfs#15716)

    - Mark some parameters to zpool_power*() as unused.
    - Add a stub zpool_disk_wait().
    
    Fixes: a9520e6 ("zpool: Add slot power control, print power status")
    
    Signed-off-by: Mark Johnston <[email protected]>
    Reviewed-by: Alexander Motin <[email protected]>
    Reviewed-by: Tony Hutter <[email protected]>
    markjdb authored and tonyhutter committed Feb 12, 2024
    Configuration menu
    Copy the full SHA
    1db3b37 View commit details
    Browse the repository at this point in the history