<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:56:05 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Whamcloud Community JIRA</title>
    <link>https://jira.whamcloud.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.4.14</version>
        <build-number>940014</build-number>
        <build-date>05-12-2023</build-date>
    </build-info>


<item>
            <title>[LU-12836] target&apos;s degraded property not reset after drive replaced</title>
                <link>https://jira.whamcloud.com/browse/LU-12836</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;h1&gt;&lt;a name=&quot;Summary&quot;&gt;&lt;/a&gt;Summary&lt;/h1&gt;

&lt;p&gt;Lustre 2.12 added the ZEDLET &lt;tt&gt;/etc/zfs/zed.d/statechange-lustre.sh&lt;/tt&gt; which is run when ZFS generates the state change event (&lt;tt&gt;resource.fs.zfs.statechange&lt;/tt&gt;). The ZEDLET runs &lt;tt&gt;lctl set_param&lt;/tt&gt; to change the degraded property (&lt;tt&gt;obdfilter.${service}.degraded&lt;/tt&gt;) for the appropriate target to 0, if the pool is ONLINE, and to 1, if the pool is DEGRADED. When a pool becomes DEGRADED because a drive is FAULTED or OFFLINE, the property is correctly set to 1. When the pool comes back ONLINE, the property is not always reset to 0--it depends on how the drive was brought back ONLINE. When the target is incorrectly marked as degraded, the Lustre filesystem has reduced performance, since the target isn&apos;t used unless stripes are assigned to it.&lt;/p&gt;
&lt;h1&gt;&lt;a name=&quot;Background&quot;&gt;&lt;/a&gt;Background&lt;/h1&gt;

&lt;p&gt;Given a pool which looks like this:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;  pool: ost04
 state: ONLINE
config:        NAME                                    STATE     READ WRITE CKSUM
        ost04                                   ONLINE       0     0     0
          raidz2-0                              ONLINE       0     0     0
            d8000_sep500C0FF03C1AC73E_bay041-0  ONLINE       0     0     0
            d8000_sep500C0FF03C1AC73E_bay042-0  ONLINE       0     0     0
            d8000_sep500C0FF03C1AC73E_bay043-0  ONLINE       0     0     0
            d8000_sep500C0FF03C1AC73E_bay044-0  ONLINE       0     0     0
            d8000_sep500C0FF03C1AC73E_bay045-0  ONLINE       0     0     0
            d8000_sep500C0FF03C1AC73E_bay046-0  ONLINE       0     0     0
            d8000_sep500C0FF03C1AC73E_bay047-0  ONLINE       0     0     0
            d8000_sep500C0FF03C1AC73E_bay048-0  ONLINE       0     0     0
            d8000_sep500C0FF03C1AC73E_bay049-0  ONLINE       0     0     0
            d8000_sep500C0FF03C1AC73E_bay101-0  ONLINE       0     0     0 &lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;When a drive is taken offline, ZFS offlines the drive, marks the pool DEGRADED, and generates a state change event. For example,&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
zpool offline ost04 d8000_sep500C0FF03C1AC73E_bay101-0
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;generates an event which looks like this:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;Oct  8 2019 09:22:43.109749814 resource.fs.zfs.statechange
        version = 0x0
        class = &quot;resource.fs.zfs.statechange&quot;
        pool = &quot;ost04&quot;
        pool_guid = 0x8159dca79b3945a4
        pool_state = 0x0
        pool_context = 0x0
        vdev_guid = 0x4b6ac5c4c8d5cb1a
        vdev_state = &quot;OFFLINE&quot; (0x2)
        vdev_path = &quot;/dev/mapper/d8000_sep500C0FF03C1AC73E_bay101-0&quot;
        vdev_devid = &quot;dm-uuid-mpath-35000c500a63e36f7&quot;
        vdev_laststate = &quot;ONLINE&quot; (0x7)
        time = 0x5d9c9bb3 0x68aa636
        eid = 0x7a
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;ZED will run&#160;&lt;tt&gt;statechange-lustre.sh&lt;/tt&gt;, which will set the degraded property of the target:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
# lctl get_param obdfilter.lustrefs-OST0004.degraded
obdfilter.lustrefs-OST0004.degraded=1
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;When the offline drive is brought online, ZFS generates a state change event, onlines the drive, resilvers the drive, and marks the pool ONLINE. For example,&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
zpool online ost04 d8000_sep500C0FF03C1AC73E_bay101-0
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;generates a series of events like this:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;Oct  8 2019 09:29:58.726502922 resource.fs.zfs.statechange
        version = 0x0
        class = &quot;resource.fs.zfs.statechange&quot;
        pool = &quot;ost04&quot;
        pool_guid = 0x8159dca79b3945a4
        pool_state = 0x0
        pool_context = 0x0
        vdev_guid = 0x4b6ac5c4c8d5cb1a
        vdev_state = &quot;ONLINE&quot; (0x7)
        vdev_path = &quot;/dev/mapper/d8000_sep500C0FF03C1AC73E_bay101-0&quot;
        vdev_devid = &quot;dm-uuid-mpath-35000c500a63e36f7&quot;
        vdev_laststate = &quot;OFFLINE&quot; (0x2)
        time = 0x5d9c9d66 0x2b4d8e0a
        eid = 0x7c

Oct  8 2019 09:29:59.261511291 sysevent.fs.zfs.vdev_online
        version = 0x0
        class = &quot;sysevent.fs.zfs.vdev_online&quot;
        pool = &quot;ost04&quot;
        pool_guid = 0x8159dca79b3945a4
        pool_state = 0x0
        pool_context = 0x0
        vdev_guid = 0x4b6ac5c4c8d5cb1a
        vdev_state = &quot;ONLINE&quot; (0x7)
        vdev_path = &quot;/dev/mapper/d8000_sep500C0FF03C1AC73E_bay101-0&quot;
        vdev_devid = &quot;dm-uuid-mpath-35000c500a63e36f7&quot;
        time = 0x5d9c9d67 0xf96587b
        eid = 0x7d

Oct  8 2019 09:29:59.341512542 sysevent.fs.zfs.resilver_start
        version = 0x0
        class = &quot;sysevent.fs.zfs.resilver_start&quot;
        pool = &quot;ost04&quot;
        pool_guid = 0x8159dca79b3945a4
        pool_state = 0x0
        pool_context = 0x0
        time = 0x5d9c9d67 0x145b115e
        eid = 0x7e

Oct  8 2019 09:29:59.341512542 sysevent.fs.zfs.history_event
        version = 0x0
        class = &quot;sysevent.fs.zfs.history_event&quot;
        pool = &quot;ost04&quot;
        pool_guid = 0x8159dca79b3945a4
        pool_state = 0x0
        pool_context = 0x0
        history_hostname = &quot;cv-g10-oss0.dev.net&quot;
        history_internal_str = &quot;func=2 mintxg=164314 maxtxg=164319&quot;
        history_internal_name = &quot;scan setup&quot;
        history_txg = 0x28236
        history_time = 0x5d9c9d67
        time = 0x5d9c9d67 0x145b115e
        eid = 0x7f

Oct  8 2019 09:29:59.372513027 sysevent.fs.zfs.history_event
        version = 0x0
        class = &quot;sysevent.fs.zfs.history_event&quot;
        pool = &quot;ost04&quot;
        pool_guid = 0x8159dca79b3945a4
        pool_state = 0x0
        pool_context = 0x0
        history_hostname = &quot;cv-g10-oss0.dev.net&quot;
        history_internal_str = &quot;errors=0&quot;
        history_internal_name = &quot;scan done&quot;
        history_txg = 0x28237
        history_time = 0x5d9c9d67
        time = 0x5d9c9d67 0x16341903
        eid = 0x80

Oct  8 2019 09:29:59.372513027 sysevent.fs.zfs.resilver_finish
        version = 0x0
        class = &quot;sysevent.fs.zfs.resilver_finish&quot;
        pool = &quot;ost04&quot;
        pool_guid = 0x8159dca79b3945a4
        pool_state = 0x0
        pool_context = 0x0
        time = 0x5d9c9d67 0x16341903
        eid = 0x81
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;ZED will run&#160;&lt;tt&gt;statechange-lustre.sh&lt;/tt&gt;, which will reset the degraded property of the target:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
# lctl get_param obdfilter.lustrefs-OST0004.degraded
obdfilter.lustrefs-OST0004.degraded=0
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;br/&gt;
 When a drive fails in a pool, ZFS faults the drive, marks the pool as DEGRADED, and generates a state change event which looks like this:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;Oct&#160; 4 2019 09:17:51.637116237 resource.fs.zfs.statechange
&#160;&#160;&#160;&#160;&#160;&#160;&#160; version = 0x0
&#160;&#160;&#160;&#160;&#160;&#160;&#160; class = &quot;resource.fs.zfs.statechange&quot;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; pool = &quot;ost04&quot;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; pool_guid = 0x8159dca79b3945a4
&#160;&#160;&#160;&#160;&#160;&#160;&#160; pool_state = 0x0
&#160;&#160;&#160;&#160;&#160;&#160;&#160; pool_context = 0x0
&#160;&#160;&#160;&#160;&#160;&#160;&#160; vdev_guid = 0x12d754fcdac78110
&#160;&#160;&#160;&#160;&#160;&#160;&#160; vdev_state = &quot;FAULTED&quot; (0x5)
&#160;&#160;&#160;&#160;&#160;&#160;&#160; vdev_path = &quot;/dev/disk/by-id/dm-uuid-mpath-35000c500a647974b&quot;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; vdev_devid = &quot;dm-uuid-mpath-35000c500a647974b&quot;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; vdev_laststate = &quot;ONLINE&quot; (0x7)
&#160;&#160;&#160;&#160;&#160;&#160;&#160; time = 0x5d97548f 0x25f99f4d
&#160;&#160;&#160;&#160;&#160;&#160;&#160; eid = 0x39
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;ZED will run&#160;&lt;tt&gt;statechange-lustre.sh&lt;/tt&gt;, which will set the degraded property of the target:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
# lctl get_param obdfilter.lustrefs-OST0004.degraded
obdfilter.lustrefs-OST0004.degraded=1&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;h1&gt;&lt;a name=&quot;Problemdescription&quot;&gt;&lt;/a&gt;Problem description&lt;/h1&gt;

&lt;p&gt;The problem arises when a failed or offline drive is replaced. ZFS will start attaching the replacement drive, resilver it, remove the failed or offline drive, finish attaching the replacement drive, and detach the failed or offline drive. For example:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
zpool replace ost04 d8000_sep500C0FF03C1AC73E_bay101-0 d8000_sep500C0FF03C1AC73E_bay050-0
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;will generates a series of events like this (with&#160;&lt;tt&gt;sysevent.fs.zfs.config_sync&lt;/tt&gt; events removed):&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;Oct  8 2019 10:50:47.193227758 sysevent.fs.zfs.vdev_attach
        version = 0x0
        class = &quot;sysevent.fs.zfs.vdev_attach&quot;
        pool = &quot;ost04&quot;
        pool_guid = 0x8159dca79b3945a4
        pool_state = 0x0
        pool_context = 0x0
        vdev_guid = 0xb9f869eb9bd523ec
        vdev_state = &quot;ONLINE&quot; (0x7)
        vdev_path = &quot;/dev/mapper/d8000_sep500C0FF03C1AC73E_bay050-0&quot;
        vdev_devid = &quot;dm-uuid-mpath-35000c500a647974b&quot;
        time = 0x5d9cb057 0xb846bee
        eid = 0x9b

Oct  8 2019 10:50:47.274229010 sysevent.fs.zfs.resilver_start
        version = 0x0
        class = &quot;sysevent.fs.zfs.resilver_start&quot;
        pool = &quot;ost04&quot;
        pool_guid = 0x8159dca79b3945a4
        pool_state = 0x0
        pool_context = 0x0
        time = 0x5d9cb057 0x10586712
        eid = 0x9c

Oct  8 2019 10:50:47.274229010 sysevent.fs.zfs.history_event
        version = 0x0
        class = &quot;sysevent.fs.zfs.history_event&quot;
        pool = &quot;ost04&quot;
        pool_guid = 0x8159dca79b3945a4
        pool_state = 0x0
        pool_context = 0x0
        history_hostname = &quot;cv-g10-oss0.dev.net&quot;
        history_internal_str = &quot;func=2 mintxg=3 maxtxg=165396&quot;
        history_internal_name = &quot;scan setup&quot;
        history_txg = 0x28614
        history_time = 0x5d9cb057
        time = 0x5d9cb057 0x10586712
        eid = 0x9d

Oct  8 2019 10:50:47.520232812 sysevent.fs.zfs.history_event
        version = 0x0
        class = &quot;sysevent.fs.zfs.history_event&quot;
        pool = &quot;ost04&quot;
        pool_guid = 0x8159dca79b3945a4
        pool_state = 0x0
        pool_context = 0x0
        history_hostname = &quot;cv-g10-oss0.dev.net&quot;
        history_internal_str = &quot;errors=0&quot;
        history_internal_name = &quot;scan done&quot;
        history_txg = 0x28615
        history_time = 0x5d9cb057
        time = 0x5d9cb057 0x1f021f6c
        eid = 0x9e

Oct  8 2019 10:50:47.520232812 sysevent.fs.zfs.resilver_finish
        version = 0x0
        class = &quot;sysevent.fs.zfs.resilver_finish&quot;
        pool = &quot;ost04&quot;
        pool_guid = 0x8159dca79b3945a4
        pool_state = 0x0
        pool_context = 0x0
        time = 0x5d9cb057 0x1f021f6c
        eid = 0x9f

Oct  8 2019 10:50:47.582233770 sysevent.fs.zfs.vdev_remove
        version = 0x0
        class = &quot;sysevent.fs.zfs.vdev_remove&quot;
        pool = &quot;ost04&quot;
        pool_guid = 0x8159dca79b3945a4
        pool_state = 0x0
        pool_context = 0x0
        vdev_guid = 0xdb315a1b87016f8c
        vdev_state = &quot;OFFLINE&quot; (0x2)
        vdev_path = &quot;/dev/mapper/d8000_sep500C0FF03C1AC73E_bay101-0&quot;
        vdev_devid = &quot;dm-uuid-mpath-35000c500a63e36f7&quot;
        time = 0x5d9cb057 0x22b42eaa
        eid = 0xa1

Oct  8 2019 10:50:47.587233848 sysevent.fs.zfs.history_event
        version = 0x0
        class = &quot;sysevent.fs.zfs.history_event&quot;
        pool = &quot;ost04&quot;
        pool_guid = 0x8159dca79b3945a4
        pool_state = 0x0
        pool_context = 0x0
        history_hostname = &quot;cv-g10-oss0.dev.net&quot;
        history_internal_str = &quot;replace vdev=/dev/mapper/d8000_sep500C0FF03C1AC73E_bay050-0 for vdev=/dev/mapper/d8000_sep500C0FF03C1AC73E_bay101-0&quot;
        history_internal_name = &quot;vdev attach&quot;
        history_txg = 0x28616
        history_time = 0x5d9cb057
        time = 0x5d9cb057 0x23007a38
        eid = 0xa2

Oct  8 2019 10:50:52.581311041 sysevent.fs.zfs.history_event
        version = 0x0
        class = &quot;sysevent.fs.zfs.history_event&quot;
        pool = &quot;ost04&quot;
        pool_guid = 0x8159dca79b3945a4
        pool_state = 0x0
        pool_context = 0x0
        history_hostname = &quot;cv-g10-oss0.dev.net&quot;
        history_internal_str = &quot;vdev=/dev/mapper/d8000_sep500C0FF03C1AC73E_bay101-0&quot;
        history_internal_name = &quot;detach&quot;
        history_txg = 0x28617
        history_time = 0x5d9cb05c
        time = 0x5d9cb05c 0x22a61a41
        eid = 0xa4
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Since ZFS did not generate a state change event, ZED does not run &lt;tt&gt;statechange-lustre.sh&lt;/tt&gt;, and the degraded property of the target is not reset:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
# lctl get_param obdfilter.lustrefs-OST0004.degraded
obdfilter.lustrefs-OST0004.degraded=1
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;despite the pool being ONLINE:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
# zpool status ost04
   pool: ost04
 state: ONLINE
  scan: resilvered 2.62M in 0h0m with 0 errors on Tue Oct  8 10:50:47 2019
config:        NAME                                    STATE     READ WRITE CKSUM
        ost04                                   ONLINE       0     0     0
          raidz2-0                              ONLINE       0     0     0
            d8000_sep500C0FF03C1AC73E_bay041-0  ONLINE       0     0     0
            d8000_sep500C0FF03C1AC73E_bay042-0  ONLINE       0     0     0
            d8000_sep500C0FF03C1AC73E_bay043-0  ONLINE       0     0     0
            d8000_sep500C0FF03C1AC73E_bay044-0  ONLINE       0     0     0
            d8000_sep500C0FF03C1AC73E_bay045-0  ONLINE       0     0     0
            d8000_sep500C0FF03C1AC73E_bay046-0  ONLINE       0     0     0
            d8000_sep500C0FF03C1AC73E_bay047-0  ONLINE       0     0     0
            d8000_sep500C0FF03C1AC73E_bay048-0  ONLINE       0     0     0
            d8000_sep500C0FF03C1AC73E_bay049-0  ONLINE       0     0     0
            d8000_sep500C0FF03C1AC73E_bay050-0  ONLINE       0     0     0

errors: No known data errors&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;h1&gt;&lt;a name=&quot;Stepstoreproduce&quot;&gt;&lt;/a&gt;Steps to reproduce&lt;/h1&gt;
&lt;ol&gt;
	&lt;li&gt;Create a Lustre filesystem using ZFS&lt;/li&gt;
	&lt;li&gt;Select a pool to test&lt;/li&gt;
	&lt;li&gt;Select a drive to fail from the pool&lt;/li&gt;
	&lt;li&gt;Select an unused drive to use as the replacement drive&lt;/li&gt;
	&lt;li&gt;Verify the target (MGT, MDT, or OST) corresponding to the pool does not have the degraded property set&lt;/li&gt;
	&lt;li&gt;Wipe the replacement drive so it looks like an unused drive&lt;/li&gt;
	&lt;li&gt;Fail the selected drive&lt;/li&gt;
	&lt;li&gt;Wait for the drive to report faulted&lt;/li&gt;
	&lt;li&gt;Replace the failed drive&lt;/li&gt;
	&lt;li&gt;Wait for resilvering to finish&lt;/li&gt;
	&lt;li&gt;Check the degraded property for the target&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;I have attached the script &lt;tt&gt;test-degraded-drive&lt;/tt&gt; which implements the above steps. While it does make a few assumptions (datasets are named the same as the pool they are in &lt;span class=&quot;error&quot;&gt;&amp;#91;e.g., {{ost04/ost04}}&amp;#93;&lt;/span&gt; and drives are given by their device mapper names), it should be easy to repurpose it for use on another system.&lt;/p&gt;</description>
                <environment>x86_64&lt;br/&gt;
CentOS 7.6.1810&lt;br/&gt;
Lustre 2.12.2&lt;br/&gt;
ZFS 0.7.13&lt;br/&gt;
HPE DL380 Gen 10 connected to D8000 via multipath</environment>
        <key id="57107">LU-12836</key>
            <summary>target&apos;s degraded property not reset after drive replaced</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</priority>
                        <status id="5" iconUrl="https://jira.whamcloud.com/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="hutter">Tony Hutter</assignee>
                                    <reporter username="voltz">Christopher Voltz</reporter>
                        <labels>
                            <label>HA</label>
                            <label>LTS12</label>
                            <label>zfs</label>
                    </labels>
                <created>Tue, 8 Oct 2019 16:14:38 +0000</created>
                <updated>Tue, 9 Nov 2021 03:36:11 +0000</updated>
                            <resolved>Wed, 2 Jun 2021 23:31:24 +0000</resolved>
                                    <version>Lustre 2.12.0</version>
                    <version>Lustre 2.12.1</version>
                    <version>Lustre 2.12.2</version>
                                    <fixVersion>Lustre 2.12.8</fixVersion>
                    <fixVersion>Lustre 2.15.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                            <comments>
                            <comment id="256086" author="pjones" created="Tue, 8 Oct 2019 17:46:48 +0000"  >&lt;p&gt;Nathaniel&lt;/p&gt;

&lt;p&gt;Could you please advise on this one?&lt;/p&gt;

&lt;p&gt;Thanks&lt;/p&gt;

&lt;p&gt;Peter&lt;/p&gt;</comment>
                            <comment id="256112" author="voltz" created="Wed, 9 Oct 2019 12:11:35 +0000"  >&lt;p&gt;Verified the behavior is the same with ZFS 0.7.9.&lt;/p&gt;

&lt;p&gt;Was there a test plan for this feature? If so, where is it?&lt;/p&gt;</comment>
                            <comment id="256122" author="utopiabound" created="Wed, 9 Oct 2019 14:22:09 +0000"  >&lt;p&gt;This looks like it&apos;s a ZFS issue.  zfs::vdev_set_state() seems to not be posting the statechange event to ZED.&lt;br/&gt;
This block of code: &lt;a href=&quot;https://github.com/zfsonlinux/zfs/blob/zfs-0.7-release/module/zfs/vdev.c#L3628-L3638&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/zfsonlinux/zfs/blob/zfs-0.7-release/module/zfs/vdev.c#L3628-L3638&lt;/a&gt;&lt;br/&gt;
The code is the same on master: &lt;a href=&quot;https://github.com/zfsonlinux/zfs/blob/master/module/zfs/vdev.c#L4548-L4562&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/zfsonlinux/zfs/blob/master/module/zfs/vdev.c#L4548-L4562&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I think the &quot;filter out state change due to initial vdev_open&quot; is filtering out the DEGRADED -&amp;gt; ONLINE state change also.&lt;/p&gt;</comment>
                            <comment id="256127" author="voltz" created="Wed, 9 Oct 2019 15:13:13 +0000"  >&lt;p&gt;The state change event is generated if the pool goes from DEGRADED to ONLINE when the drive in the VDEV changes from OFFLINE instead of FAULTED. I don&apos;t have any proof that the state change event was ever generated for this scenario so I&apos;m not convinced your theory is correct but I&apos;ll go ahead and create a ZFS issue for the problem.&lt;/p&gt;</comment>
                            <comment id="256141" author="voltz" created="Wed, 9 Oct 2019 19:47:43 +0000"  >&lt;p&gt;Created ZFS issue &lt;a href=&quot;https://github.com/zfsonlinux/zfs/issues/9437&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;statechange event not always generated when VDEV state changes  #9437&lt;/a&gt;. &lt;/p&gt;</comment>
                            <comment id="257104" author="voltz" created="Fri, 25 Oct 2019 20:14:10 +0000"  >&lt;p&gt;Created ZFS pull request &lt;a href=&quot;https://github.com/zfsonlinux/zfs/pull/9513&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;9513&lt;/a&gt;.&lt;br/&gt;
&#160;&lt;/p&gt;</comment>
                            <comment id="257200" author="voltz" created="Mon, 28 Oct 2019 17:25:02 +0000"  >&lt;p&gt;Replaced ZFS pull request 9513 with &lt;a href=&quot;https://github.com/zfsonlinux/zfs/pull/9523&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;9523&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="300598" author="gerrit" created="Wed, 5 May 2021 20:29:43 +0000"  >&lt;p&gt;Tony Hutter (hutter2@llnl.gov) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/43552&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/43552&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-12836&quot; title=&quot;target&amp;#39;s degraded property not reset after drive replaced&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-12836&quot;&gt;&lt;del&gt;LU-12836&lt;/del&gt;&lt;/a&gt; osd-zfs: Catch all ZFS pool change events&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 524baf41eab96348d34ce70ba423392cdffc8c3d&lt;/p&gt;</comment>
                            <comment id="303328" author="gerrit" created="Wed, 2 Jun 2021 17:48:55 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/43552/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/43552/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-12836&quot; title=&quot;target&amp;#39;s degraded property not reset after drive replaced&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-12836&quot;&gt;&lt;del&gt;LU-12836&lt;/del&gt;&lt;/a&gt; osd-zfs: Catch all ZFS pool change events&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: e11a47da71a2e2482e4c4cf582d663cd76a2ecab&lt;/p&gt;</comment>
                            <comment id="303381" author="pjones" created="Wed, 2 Jun 2021 23:31:24 +0000"  >&lt;p&gt;Landed for 2.15&lt;/p&gt;</comment>
                            <comment id="303653" author="gerrit" created="Fri, 4 Jun 2021 22:31:43 +0000"  >&lt;p&gt;Minh Diep (mdiep@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/43929&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/43929&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-12836&quot; title=&quot;target&amp;#39;s degraded property not reset after drive replaced&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-12836&quot;&gt;&lt;del&gt;LU-12836&lt;/del&gt;&lt;/a&gt; osd-zfs: Catch all ZFS pool change events&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: b2_12&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: dd089ff7a49d4e2fb735adde206ab4b802727a2a&lt;/p&gt;</comment>
                            <comment id="306492" author="gerrit" created="Wed, 7 Jul 2021 16:39:12 +0000"  >&lt;p&gt;Gian-Carlo DeFazio (defazio1@llnl.gov) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/44171&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/44171&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-12836&quot; title=&quot;target&amp;#39;s degraded property not reset after drive replaced&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-12836&quot;&gt;&lt;del&gt;LU-12836&lt;/del&gt;&lt;/a&gt; osd-zfs: Catch all ZFS pool change events&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: b2_14&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 11929c1491c51aef21be1606b4b0a5d0035f750d&lt;/p&gt;</comment>
                            <comment id="309725" author="gerrit" created="Tue, 10 Aug 2021 06:35:07 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/43929/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/43929/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-12836&quot; title=&quot;target&amp;#39;s degraded property not reset after drive replaced&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-12836&quot;&gt;&lt;del&gt;LU-12836&lt;/del&gt;&lt;/a&gt; osd-zfs: Catch all ZFS pool change events&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: b2_12&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 5b7627beef0c35a0fc47a416c5fbb9bbf2933f3a&lt;/p&gt;</comment>
                            <comment id="317721" author="gerrit" created="Tue, 9 Nov 2021 03:36:11 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/44171/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/44171/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-12836&quot; title=&quot;target&amp;#39;s degraded property not reset after drive replaced&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-12836&quot;&gt;&lt;del&gt;LU-12836&lt;/del&gt;&lt;/a&gt; osd-zfs: Catch all ZFS pool change events&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: b2_14&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: bb5aa50947039cbe4217468d3a941d9883b63e81&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="33623" name="test-degraded-drive" size="1696" author="voltz" created="Tue, 8 Oct 2019 15:40:46 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                            <customfield id="customfield_10890" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i00nqv:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10060" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Severity</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10021"><![CDATA[2]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        </customfields>
    </item>
</channel>
</rss>