<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:41:42 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-11187] MMP updated sometimes failes T10PI checks</title>
                <link>https://jira.whamcloud.com/browse/LU-11187</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;We had seen this before. &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5481&quot; title=&quot;mmp updates can some times fail T10PI checks&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5481&quot;&gt;&lt;del&gt;LU-5481&lt;/del&gt;&lt;/a&gt;. At time we just removed MMP from the OST, because we didn&apos;t use hos failover. But our new filesystem does use host failover. We are seeing the same error on a ISER+T10PI connect storage. This error can happen at mount time and random times during IO.&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;
 [ 3520.840977] mlx5_3:mlx5_poll_one:657:(pid 0): CQN: 0xc05 Got SIGERR on key: 0x80007b0b err_type 0 err_offset 207 expected 9b3c actual a13c
[ 3520.878451] PI error found type 0 at sector 1337928 expected 953c vs actual 9b3c
[ 3520.900800] PI error found type 0 at sector 1337928 expected 9b3c vs actual a13c
[ 3520.923968] blk_update_request: I/O error, dev sdai, sector 20150568
[ 3520.943377] blk_update_request: I/O error, dev sdae, sector 20150568
[ 3520.963067] blk_update_request: I/O error, dev dm-15, sector 20150568
[ 3520.982436] Buffer I/O error on dev dm-15, logical block 2518821, lost async page write
[ 3521.006511] Buffer I/O error on dev dm-15, logical block 2518822, lost async page write
[ 3521.006558] blk_update_request: I/O error, dev dm-13, sector 20150568
[ 3521.006559] Buffer I/O error on dev dm-13, logical block 2518821, lost async page write
[ 3521.006563] Buffer I/O error on dev dm-13, logical block 2518822, lost async 

device /dev/dm-15 mounted by lustre
Filesystem volume name:   nbp10-OST001d
Last mounted on:          /
Filesystem UUID:          08b337bb-b3b1-48b0-925b-0bf5d3ba7253
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr dir_index filetype needs_recovery extent 64bit mmp flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize quota
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              9337344
Block count:              19122880512
Reserved block count:     0
Free blocks:              19120188065
Free inodes:              9337011
First block:              0
Block size:               4096
Fragment size:            4096
Group descriptor size:    64
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         16
Inode blocks per group:   2
Flex block group size:    64
Filesystem created:       Fri Jul 27 10:21:56 2018
Last mount time:          Fri Jul 27 10:44:14 2018
Last write time:          Fri Jul 27 10:44:15 2018
Mount count:              4
Maximum mount count:      -1
Last checked:             Fri Jul 27 10:21:56 2018
Check interval:           0 (&amp;lt;none&amp;gt;)
Lifetime writes:          7774 kB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               512
Required extra isize:     32
Desired extra isize:      32
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      2ebd542d-9757-456f-b597-43fae5c542c0
Journal backup:           inode blocks
MMP block number:         2518821
MMP update interval:      5
User quota inode:         3
Group quota inode:        4
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Note block with the error is the MMP block.&lt;/p&gt;</description>
                <environment></environment>
        <key id="52845">LU-11187</key>
            <summary>MMP updated sometimes failes T10PI checks</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="2" iconUrl="https://jira.whamcloud.com/images/icons/priorities/critical.svg">Critical</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="dongyang">Dongyang Li</assignee>
                                    <reporter username="mhanafi">Mahmoud Hanafi</reporter>
                        <labels>
                    </labels>
                <created>Fri, 27 Jul 2018 18:51:29 +0000</created>
                <updated>Tue, 22 Jan 2019 18:49:07 +0000</updated>
                            <resolved>Sat, 6 Oct 2018 13:34:34 +0000</resolved>
                                    <version>Lustre 2.10.3</version>
                                    <fixVersion>Lustre 2.12.0</fixVersion>
                    <fixVersion>Lustre 2.10.7</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>8</watches>
                                                                            <comments>
                            <comment id="231019" author="adilger" created="Fri, 27 Jul 2018 20:41:00 +0000"  >&lt;p&gt;This is likely an artifact of how MMP writes are being submitted to the block device.&lt;/p&gt;

&lt;p&gt;The &lt;tt&gt;write_mmp_block()&lt;/tt&gt; IO submission likely needs to be modified to use the right interface if T10PI is enabled.&lt;/p&gt;

&lt;p&gt;If that is already done properly, there is some chance that on a heavily-loaded system the multiple writes to the MMP block are racing with the integrity calculation, and this is resulting in the buffer being modified during/after the checksum but before the data is written to disk.  Blocking or skipping next write if the previous IO is incomplete is an option in this case, but may result in a slower update of the MMP block.&lt;/p&gt;

&lt;p&gt;A possibly better option would be to use the &lt;tt&gt;extend-integrity-processing-fn-rhel7.patch&lt;/tt&gt; from &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10472&quot; title=&quot;Data Integrity(T10PI) support for Lustre&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10472&quot;&gt;&lt;del&gt;LU-10472&lt;/del&gt;&lt;/a&gt; and then submit the MMP block with pre-computed PI checksum, to avoid the race in computing this.&lt;/p&gt;</comment>
                            <comment id="231078" author="pjones" created="Mon, 30 Jul 2018 17:22:20 +0000"  >&lt;p&gt;Dongyang&lt;/p&gt;

&lt;p&gt;Do you have any advice to offer here?&lt;/p&gt;

&lt;p&gt;Peter&lt;/p&gt;</comment>
                            <comment id="231190" author="dongyang" created="Wed, 1 Aug 2018 00:31:21 +0000"  >&lt;p&gt;I&apos;m not sure if&#160;extend-integrity-processing-fn-rhel7.patch from &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10472&quot; title=&quot;Data Integrity(T10PI) support for Lustre&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10472&quot;&gt;&lt;del&gt;LU-10472&lt;/del&gt;&lt;/a&gt; could help here.&lt;/p&gt;

&lt;p&gt;The patch allows us to override the integrity generate/verify functions for a given bio, write_mmp_block() is just using buffer_head and submit_bh(). I&apos;m also confused that even we can pass the pre-computed PI with MMP block, if the buffer gets modified again before I/O is done, we could still end up with mismatching data and PI right?&lt;/p&gt;</comment>
                            <comment id="231196" author="lixi_wc" created="Wed, 1 Aug 2018 03:32:11 +0000"  >&lt;p&gt;I hit the same problem when using ISER + T10PI disk. And the environment was never stable. A lot of I/O errors happened when I was doing very small I/Os. I think I saw almost the same error messages on that environment too. Thus, I believe there might be some bugs on the driver level. And I agree with Dongyang. Most likely the patch of &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10472&quot; title=&quot;Data Integrity(T10PI) support for Lustre&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10472&quot;&gt;&lt;del&gt;LU-10472&lt;/del&gt;&lt;/a&gt; won&apos;t be so useful for this problem.&lt;/p&gt;</comment>
                            <comment id="231769" author="adilger" created="Thu, 9 Aug 2018 23:07:29 +0000"  >&lt;p&gt;Looking at the &lt;tt&gt;write_mmp_block()&lt;/tt&gt; code more closely, I see that it is not doing a &quot;fire and forget&quot; as I thought it was doing (which might result in two MMP block updates modifying the same buffer and causing PI errors). The &lt;tt&gt;kmmpd&lt;/tt&gt; thread submits the writes for synchronous writes, and is waiting for the IO to complete before it is submitting a new MMP block update.  This means that there should only ever be a single MMP write in flight at a time from the only thread that should be updating this buffer.&lt;/p&gt;

&lt;p&gt;If there are problems with only the MMP block, this implies that either the block layer is returning from a sync write before the buffer is actually persistent on disk, or that the block device is potentially reordering the blocks in an internal queue?  &lt;/p&gt;

&lt;p&gt;What kernel version is in use here?  One option you could try is adding &lt;tt&gt;REQ_FUA&lt;/tt&gt; into the flags passed to &lt;tt&gt;submit_bh()&lt;/tt&gt; to force the buffer through the block device cache.  However, this may impact storage device performance.&lt;/p&gt;</comment>
                            <comment id="231774" author="mhanafi" created="Thu, 9 Aug 2018 23:41:17 +0000"  >&lt;p&gt;&#160;We are running&lt;/p&gt;

&lt;p&gt;3.10.0-693.21.1.el7.20180508.x86_64.lustre2103&lt;/p&gt;

&lt;p&gt;We have Only seen the issue with the MMP block. What could be changing the buffers before it is sync to disk. &lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="231784" author="adilger" created="Fri, 10 Aug 2018 05:27:35 +0000"  >&lt;p&gt;One option would be to compute the checksum of the MMP block before submission, and then again afterward. That would tell us if the block is actually being modified, and if it changed the before and after mmp block can be printed out to the console. &lt;/p&gt;</comment>
                            <comment id="232096" author="adilger" created="Fri, 17 Aug 2018 00:22:55 +0000"  >&lt;p&gt;I think there are two possible approaches to debugging this - either save a checksum of the MMP block before/after the write and use that to compare whether the block is modified, or just save a copy of the whole MMP structure in memory for later comparison once the write completes.  With newer kernels having support for &lt;tt&gt;EXT4_FEATURE_RO_COMPAT_METADATA_CSUM&lt;/tt&gt; it would be straight forward to use the MMP checksum (this was added in the 3.4 kernel), but not quite as useful for debugging since we wouldn&apos;t know more than just &quot;the MMP block was modified&quot;.&lt;/p&gt;

&lt;p&gt;I think a better approach would be to save the whole MMP structure before each write, and then do a &lt;tt&gt;memcmp()&lt;/tt&gt; after the timeout to see if the block has been modified.  Use &lt;tt&gt;dump_mmp_msg()&lt;/tt&gt; to print out the saved and current MMP block contents for comparison (e.g. is it random garbage, was it updated by another node or e2fsck, is it a stale copy of the data, etc).&lt;/p&gt;

&lt;p&gt;While looking at this code, I thought it might be possible that the &lt;tt&gt;mmp_check_interval&lt;/tt&gt; at the end of the loop was possibly modifying the buffer while it is being written, but &lt;tt&gt;write_mmp_block()&lt;/tt&gt; should not be returning before the write is complete (it is using &lt;tt&gt;REQ_SYNC&lt;/tt&gt; and &lt;tt&gt;b_end_io = end_buffer_write_sync()&lt;/tt&gt;).  Also, there is no mention of the &quot;&lt;tt&gt;Error writing to MMP block&lt;/tt&gt;&quot; message in the logs, so it doesn&apos;t seem like there is a problem with the IO submission itself or we would be seeing an error up at the filesystem level.&lt;/p&gt;</comment>
                            <comment id="232330" author="gerrit" created="Tue, 21 Aug 2018 00:24:56 +0000"  >&lt;p&gt;Li Dongyang (dongyangli@ddn.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/33038&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/33038&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11187&quot; title=&quot;MMP updated sometimes failes T10PI checks&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11187&quot;&gt;&lt;del&gt;LU-11187&lt;/del&gt;&lt;/a&gt; ldiskfs: add debug patches to show mmp block contents&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: daef03d32567d61fab0db16d254412a6d818c1f1&lt;/p&gt;</comment>
                            <comment id="232332" author="dongyang" created="Tue, 21 Aug 2018 00:34:17 +0000"  >&lt;p&gt;I&apos;ve added the debug patch as Andreas suggested, I also noticed that in the log we have&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;
[ 3520.982436] Buffer I/O error on dev dm-15, logical block 2518821, lost async page write
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The &quot;lost async page write&quot; message is from end_buffer_async_write(), but in write_mmp_block(),&lt;/p&gt;

&lt;p&gt;we use end_buffer_write_sync() as the completion handler, which would have a different message.&lt;/p&gt;

&lt;p&gt;Also there&apos;s no &quot;Error writing to MMP block&quot; in the log. I suspect the write to the mmp block is not from the mmp code path, I&apos;ve added a dump_stack() just above where the async message would appear hopefully we can find out who was writing to the mmp block.&lt;/p&gt;</comment>
                            <comment id="232595" author="mhanafi" created="Sat, 25 Aug 2018 02:01:18 +0000"  >&lt;p&gt;Here is console output for PI error&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;

[ 4105.807355] LDISKFS-fs warning (device dm-4): kmmpd:208: MMP block mismatch.
[ 4105.828551] LDISKFS-fs warning (device dm-4): kmmpd:208: MMP failure info: last update time: 1535161818, last update node: nbp16-srv1, last update device: dm-4
[ 4105.828551] magic: 4d4d50, seq: 215, check_interval: 10, checksum: 0
[ 4105.828551] 
[ 4105.894981] LDISKFS-fs warning (device dm-4): kmmpd:209: copy of MMP block.
[ 4105.915920] LDISKFS-fs warning (device dm-4): kmmpd:209: MMP failure info: last update time: 1535161818, last update node: nbp16-srv1, last update device: dm-4
[ 4105.915920] magic: 4d4d50, seq: 215, check_interval: 10, checksum: 0
[ 4105.915920] 
[ 4106.201033] mlx5_3:mlx5_poll_one:671:(pid 0): CQN: 0xc05 Got SIGERR on key: 0x800068a4 err_type 0 err_offset 207 expected 2480 actual 2a80
[ 4106.240867] PI error found type 0 at sector 1337928 expected 2480 vs actual 2a80
[ 4106.263174] blk_update_request: I/O error, dev sdl, sector 20150568
[ 4106.282557] blk_update_request: I/O error, dev dm-4, sector 20150568
[ 4106.301660] CPU: 19 PID: 141 Comm: ksoftirqd/19 Tainted: G           OE  ------------   3.10.0-693.21.1.el7.20180508.x86_64.lustre211 #1
[ 4106.338539] Hardware name: HPE ProLiant DL380 Gen10/ProLiant DL380 Gen10, BIOS U30 02/15/2018
[ 4106.348118] LDISKFS-fs warning (device dm-7): kmmpd:208: MMP block mismatch.
[ 4106.348120] LDISKFS-fs warning (device dm-7): kmmpd:208: MMP failure info: last update time: 1535161818, last update node: nbp16-srv1, last update device: dm-7
[ 4106.348120] magic: 4d4d50, seq: 21c, check_interval: 10, checksum: 0
[ 4106.348120] 
[ 4106.348121] LDISKFS-fs warning (device dm-7): kmmpd:209: copy of MMP block.
[ 4106.348122] LDISKFS-fs warning (device dm-7): kmmpd:209: MMP failure info: last update time: 1535161818, last update node: nbp16-srv1, last update device: dm-7
[ 4106.348122] magic: 4d4d50, seq: 21c, check_interval: 10, checksum: 0
[ 4106.348122] 
[ 4106.472717] Call Trace:
[ 4106.472723]  [&amp;lt;ffffffff8168f4b8&amp;gt;] dump_stack+0x19/0x1b
[ 4106.472727]  [&amp;lt;ffffffff81235550&amp;gt;] end_buffer_async_write+0xf0/0x120
[ 4106.472728]  [&amp;lt;ffffffff81233dcf&amp;gt;] end_bio_bh_io_sync+0x2f/0x60
[ 4106.472730]  [&amp;lt;ffffffff8123aec7&amp;gt;] bio_endio+0x67/0xb0
[ 4106.472731]  [&amp;lt;ffffffff8123913d&amp;gt;] ? bio_advance+0x1d/0xd0
[ 4106.472734]  [&amp;lt;ffffffff812f2ce0&amp;gt;] blk_update_request+0x90/0x370
[ 4106.472735]  [&amp;lt;ffffffff812f2fdc&amp;gt;] blk_update_bidi_request+0x1c/0x80
[ 4106.472736]  [&amp;lt;ffffffff812f32ef&amp;gt;] blk_end_bidi_request+0x1f/0x60
[ 4106.472737]  [&amp;lt;ffffffff812f340f&amp;gt;] blk_end_request_all+0x1f/0x30
[ 4106.472754]  [&amp;lt;ffffffffa03b5755&amp;gt;] dm_softirq_done+0x255/0x2d0 [dm_mod]
[ 4106.472756]  [&amp;lt;ffffffff812fa0d6&amp;gt;] blk_done_softirq+0x96/0xc0
[ 4106.472759]  [&amp;lt;ffffffff81091135&amp;gt;] __do_softirq+0xf5/0x280
[ 4106.472761]  [&amp;lt;ffffffff810912f8&amp;gt;] run_ksoftirqd+0x38/0x50
[ 4106.472763]  [&amp;lt;ffffffff810b9854&amp;gt;] smpboot_thread_fn+0x144/0x1a0
[ 4106.472764]  [&amp;lt;ffffffff810b9710&amp;gt;] ? lg_double_unlock+0x40/0x40
[ 4106.472766]  [&amp;lt;ffffffff810b1131&amp;gt;] kthread+0xd1/0xe0
[ 4106.472767]  [&amp;lt;ffffffff810b1060&amp;gt;] ? insert_kthread_work+0x40/0x40
[ 4106.472769]  [&amp;lt;ffffffff816a14dd&amp;gt;] ret_from_fork+0x5d/0xb0
[ 4106.472770]  [&amp;lt;ffffffff810b1060&amp;gt;] ? insert_kthread_work+0x40/0x40
[ 4106.472772] Buffer I/O error on dev dm-4, logical block 2518821, lost async page write
[ 4106.801045] LDISKFS-fs warning (device dm-11): kmmpd:208: MMP block mismatch.
[ 4106.801047] LDISKFS-fs warning (device dm-11): kmmpd:208: MMP failure info: last update time: 1535161819, last update node: nbp16-srv1, last update device: dm-11
[ 4106.801047] magic: 4d4d50, seq: 222, check_interval: 10, checksum: 0
[ 4106.801047] 
[ 4106.801047] LDISKFS-fs warning (device dm-11): kmmpd:209: copy of MMP block.
[ 4106.801049] LDISKFS-fs warning (device dm-11): kmmpd:209: MMP failure info: last update time: 1535161819, last update node: nbp16-srv1, last update device: dm-11
[ 4106.801049] magic: 4d4d50, seq: 222, check_interval: 10, checksum: 0
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="232602" author="adilger" created="Sat, 25 Aug 2018 19:22:11 +0000"  >&lt;p&gt;The debug information shows that it is not the MMP block data itself that is changing, but something else in the 1KB buffer that is not part of the MMP structure?  The MMP memcmp() that was added is detecting the difference in the buffer at least, so we do have confirmation that the buffer is actually being changed, and it isn&apos;t just a transient issue in the block layer. One option to debug further is to dump the rest of the buffer as hex values before and after to see which byte(s) are modified. &lt;/p&gt;</comment>
                            <comment id="232633" author="dongyang" created="Tue, 28 Aug 2018 00:55:50 +0000"  >&lt;p&gt;I&apos;ve updated the debug patch to print the hexdump, Mahmoud could you give that a try?&lt;/p&gt;

&lt;p&gt;Looks like you are using mq as the scheduler? It&apos;s just a stab in the dark but can you try it with mq disabled?&lt;/p&gt;</comment>
                            <comment id="232756" author="mhanafi" created="Wed, 29 Aug 2018 18:09:41 +0000"  >&lt;p&gt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;https://jira.whamcloud.com/secure/attachment/30960/30960_dm20.hexdump&quot; title=&quot;dm20.hexdump attached to LU-11187&quot;&gt;dm20.hexdump&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.whamcloud.com/images/icons/link_attachment_7.gif&quot; height=&quot;7&quot; width=&quot;7&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Attaching hexdump for one of the devices.&lt;/p&gt;

&lt;p&gt;&#160;I was running deadline I changed it to noop no difference in the MMP failures.&lt;/p&gt;</comment>
                            <comment id="232776" author="dongyang" created="Thu, 30 Aug 2018 00:03:22 +0000"  >&lt;p&gt;ok I&apos;ve made a stupid mistake in the debug patch, Mahmoud can you rerun it using the latest patchset 3? My&#160;apologies.&lt;/p&gt;</comment>
                            <comment id="232869" author="mhanafi" created="Fri, 31 Aug 2018 21:47:41 +0000"  >&lt;p&gt;I ran with the latest patch set 3.&#160; Reproduced the PI error but there was no output from the debug patch.&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;
[  988.391944] mlx5_3:mlx5_poll_one:671:(pid 0): CQN: 0xc05 Got SIGERR on key: 0x80009d6b err_type 0 err_offset 207 expected 24f1 actual 2af1
[  988.430812] PI error found type 0 at sector 1337928 expected 24f1 vs actual 2af1
[  988.453087] blk_update_request: I/O error, dev sdam, sector 20150568
[  988.472382] blk_update_request: I/O error, dev dm-18, sector 20150568
[  988.491746] Buffer I/O error on dev dm-18, logical block 2518821, lost async page write
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&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;
[  996.218102] mlx5_2:mlx5_poll_one:671:(pid 0): CQN: 0x405 Got SIGERR on key: 0x80003110 err_type 0 err_offset 207 expected 9377 actual 9977
[  996.260232] PI error found type 0 at sector 1337928 expected 9377 vs actual 9977
[  996.282509] blk_update_request: I/O error, dev sdu, sector 20150568
[  996.301422] blk_update_request: I/O error, dev dm-9, sector 20150568
[  996.320524] Buffer I/O error on dev dm-9, logical block 2518821, lost async page write
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="232872" author="adilger" created="Fri, 31 Aug 2018 22:27:55 +0000"  >&lt;p&gt;Mahmoud, that indicates that the T10-PI layer detected some kind of corruption, but the block was not modified in memory.  This would indicate corruption at some lower layer, though it is confusing why only the MMP block is affected.&lt;/p&gt;

&lt;p&gt;One option would be to add a similar hex dump at the point where the error is being reported after the checksum failure, to see if the data is different somehow?  It also makes sense to print out the buffer address, to see if there is a copy of the page being used or something, possibly being caused by the device mapper layer.&lt;/p&gt;

&lt;p&gt;Are you using software RAID or similar on this system, or is DM only in use for multipath?  Have you tried to disable multipath to see if the problems go away?  The only other thing I can think of is to remove the &lt;tt&gt;REQ_SYNC | REQ_META | REQ_PRIO&lt;/tt&gt; flags from &lt;tt&gt;submit_bh()&lt;/tt&gt; one at a time to see if this makes a difference, as it might indicate where the problem is located.  Removing the &lt;tt&gt;REQ_SYNC&lt;/tt&gt; flag may cause legitimate failures if the system is very busy, since the MMP thread would only be waiting on the 5s MMP update interval and not the actual write completion.&lt;/p&gt;

&lt;p&gt;At this point the problem looks to be outside of the scope of Lustre/ext4 so I&apos;m not sure what else we can do.&lt;/p&gt;</comment>
                            <comment id="232873" author="adilger" created="Fri, 31 Aug 2018 22:32:08 +0000"  >&lt;p&gt;One thing that is puzzling is the error message &quot;&lt;tt&gt;lost async page write&lt;/tt&gt;&quot;, since the &lt;tt&gt;REQ_SYNC&lt;/tt&gt; flag should be forcing the write to be synchronous?  I wonder if this is an artifact of the DM Multipath code submitting sync writes asynchronously, so that it isn&apos;t blocked waiting for completion if one of the paths fails?  That would lend more weight to trying to reproduce this problem without the DM Multipath driver involved.  If the problem goes away, you can contact Red Hat about this issue, since MMP and ext4 exist in the upstream kernel and we do not modify MMP in recent releases so it should be reproducible without Lustre (given a sufficiently similar IO workload).&lt;/p&gt;</comment>
                            <comment id="232874" author="mhanafi" created="Fri, 31 Aug 2018 23:27:48 +0000"  >&lt;p&gt;We are only using DM. I Will test with-out DM.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;If the write fails as it is logged. Why doesn&apos;t the MMP update log an error.&#160;&lt;/p&gt;</comment>
                            <comment id="232876" author="mhanafi" created="Sat, 1 Sep 2018 01:47:47 +0000"  >&lt;p&gt;I ran with OSTs mounted directly to slave device. Disabled multipath and flushed all the paths.. It still got an error.&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;
 [ 7087.139668] mlx5_2:mlx5_poll_one:671:(pid 0): CQN: 0x405 Got SIGERR on key: 0x8000c273 err_type 0 err_offset 207 expected 948f actual 9a8f
[ 7087.200807] PI error found type 0 at sector 1337928 expected 948f vs actual 9a8f
[ 7087.223066] blk_update_request: I/O error, dev sdac, sector 20150568
[ 7087.242167] Buffer I/O error on dev sdac, logical block 2518821, lost async page write

 &lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="232901" author="adilger" created="Sat, 1 Sep 2018 08:24:50 +0000"  >&lt;p&gt;It is also confusing to me why there is no &quot;&lt;tt&gt;Error writing to MMP block&lt;/tt&gt;&quot; message being printed in this case, since the write error should be propagated up to the caller with &lt;tt&gt;REQ_SYNC&lt;/tt&gt;.  It makes me start to wonder if this block write is being generated somewhere else in the code, and only the MMP code is overwriting the same block in place?&lt;/p&gt;

&lt;p&gt;As mentioned previously, it might help to hexdump the MMP block contents in the low-level code, and print out the address of the buffer being written, so that we can see if it is the same page as was submitted by &lt;tt&gt;write_mmp_block()&lt;/tt&gt; or some other copy.&lt;/p&gt;</comment>
                            <comment id="232961" author="dongyang" created="Tue, 4 Sep 2018 06:11:58 +0000"  >&lt;p&gt;Maybe we can figure out who submitted the write to the block, by using trace-cmd with something like this:&lt;/p&gt;

&lt;p&gt;trace-cmd record -e&#160;block_bio_queue -f sector==20150568 -T&lt;/p&gt;

&lt;p&gt;and then try to reproduce the I/O error, without multipath to avoid generating too much messages.&lt;/p&gt;

&lt;p&gt;then the result can be viewed by trace-cmd report&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="233006" author="mhanafi" created="Tue, 4 Sep 2018 21:56:10 +0000"  >&lt;p&gt;I was able to reproduce this issues on the lustre kernel with ext4 and using vanilla cento7 (3.10.0-862.11.6.el7.x86_64) using ext4.&lt;br/&gt;
 I also was able to capture the error using trace-cmd.&lt;/p&gt;

&lt;p&gt;This was on the 3.10.0-862.11.6.el7.x86_64 kernel.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Error reported at the console&lt;/b&gt;&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;
[ 5246.256578] mlx5_2:mlx5_poll_one:671:(pid 0): CQN: 0x405 Got SIGERR on key: 0x800015f5 err_type 0 err_offset 207 expected 12a8 actual 18a8
[ 5246.294172] PI error found type 0 at sector 12528 expected 12a8 vs actual 18a8
[ 5246.325235] blk_update_request: I/O error, dev sdq, sector 75048
[ 5246.359541] blk_update_request: I/O error, dev dm-14, sector 75048
[ 5246.378121] Buffer I/O error on dev dm-14, logical block 9381, lost async page write
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;b&gt;DM-14 is 253,14 and from the trace-cmd report we have&lt;/b&gt;&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;
=&amp;gt; ret_from_fork_nospec_begin (ffffffff8b7255dd)
  kworker/u72:10-11060 [001]  5246.065529: block_bio_queue:      253,14 W 75048 + 8 [kworker/u72:10]
  kworker/u72:10-11060 [001]  5246.065533: kernel_stack:         &amp;lt;stack trace&amp;gt;
=&amp;gt; _submit_bh (ffffffff8b2573d7)
=&amp;gt; __block_write_full_page (ffffffff8b257652)
=&amp;gt; block_write_full_page (ffffffff8b257a1e)
=&amp;gt; blkdev_writepage (ffffffff8b25d828)
=&amp;gt; __writepage (ffffffff8b1a1c49)
=&amp;gt; write_cache_pages (ffffffff8b1a2744)
=&amp;gt; generic_writepages (ffffffff8b1a2a1d)
=&amp;gt; blkdev_writepages (ffffffff8b25d7e5)
=&amp;gt; do_writepages (ffffffff8b1a3ac1)
=&amp;gt; __writeback_single_inode (ffffffff8b24cf00)
=&amp;gt; writeback_sb_inodes (ffffffff8b24d994)
=&amp;gt; __writeback_inodes_wb (ffffffff8b24dcff)
=&amp;gt; wb_writeback (ffffffff8b24e533)
=&amp;gt; bdi_writeback_workfn (ffffffff8b24eebb)
=&amp;gt; process_one_work (ffffffff8b0b613f)
=&amp;gt; worker_thread (ffffffff8b0b71d6)
=&amp;gt; kthread (ffffffff8b0bdf21)

=&amp;gt; ret_from_fork_nospec_begin (ffffffff8b7255dd)
     kmmpd-dm-24-6248  [007]  5246.324427: block_bio_queue:      253,24 WSM 75048 + 8 [kmmpd-dm-24]
     kmmpd-dm-24-6248  [007]  5246.324443: kernel_stack:         &amp;lt;stack trace&amp;gt;
=&amp;gt; _submit_bh (ffffffff8b2573d7)
=&amp;gt; submit_bh (ffffffff8b257420)
=&amp;gt; write_mmp_block (ffffffffc058fdb1)
=&amp;gt; kmmpd (ffffffffc0590028)
=&amp;gt; kthread (ffffffff8b0bdf21)

=&amp;gt; ret_from_fork_nospec_begin (ffffffff8b7255dd)
     kmmpd-dm-14-6186  [007]  5246.401415: block_bio_queue:      253,14 WSM 75048 + 8 [kmmpd-dm-14]
     kmmpd-dm-14-6186  [007]  5246.401419: kernel_stack:         &amp;lt;stack trace&amp;gt;
=&amp;gt; _submit_bh (ffffffff8b2573d7)
=&amp;gt; submit_bh (ffffffff8b257420)
=&amp;gt; write_mmp_block (ffffffffc058fdb1)
=&amp;gt; kmmpd (ffffffffc0590028)
=&amp;gt; kthread (ffffffff8b0bdf21)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;I am also attaching the trace.dat file.&lt;/p&gt;

&lt;p&gt; &lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;https://jira.whamcloud.com/secure/attachment/30990/30990_trace.dat&quot; title=&quot;trace.dat attached to LU-11187&quot;&gt;trace.dat&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.whamcloud.com/images/icons/link_attachment_7.gif&quot; height=&quot;7&quot; width=&quot;7&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt; &lt;/p&gt;</comment>
                            <comment id="233097" author="dongyang" created="Thu, 6 Sep 2018 05:45:37 +0000"  >&lt;p&gt;This actually shows the blkdev writeback kicked in and wrote the mmp block,&lt;/p&gt;

&lt;p&gt;which explains where did the &quot;lost async page write&quot; messages come from.&lt;/p&gt;

&lt;p&gt;I think the mmp thread should have total control of the mmp block, we don&apos;t want the writeback to kick in and mess with us, also I guess the checksum error is because when the block was submitted by writeback and under I/O, the mmp thread started to modify the contents of mmp block, stepping on the toes of the writeback.&lt;/p&gt;

&lt;p&gt;I&apos;ve updated &lt;a href=&quot;https://review.whamcloud.com/#/c/33038/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/#/c/33038/&lt;/a&gt;&#160; patchset 6, can you give it a try?&lt;/p&gt;

&lt;p&gt;The patch is simple you can also apply it to ext4 vanilla centos7 and test it from there.&lt;/p&gt;</comment>
                            <comment id="233152" author="mhanafi" created="Thu, 6 Sep 2018 21:57:09 +0000"  >&lt;p&gt;The patch work in vanilla centos7 and ext4. I will test ldiskfs next.&lt;/p&gt;</comment>
                            <comment id="233158" author="jaylan" created="Fri, 7 Sep 2018 01:56:21 +0000"  >&lt;p&gt;Mahmoud said that patch worked in our environment.&lt;br/&gt;
Before I cherry-pick the patch, are you sure you still want to name the patch &quot;ldiskfs: add mmp debug patch&quot;? The patchset 6 is no longer a debug patch. &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/wink.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="233160" author="dongyang" created="Fri, 7 Sep 2018 02:09:51 +0000"  >&lt;p&gt;so it worked for ldiskfs as well?&lt;/p&gt;

&lt;p&gt;Then I need to refresh the patch, we need to apply it to every supported distro, and I will push it to upstream.&lt;/p&gt;</comment>
                            <comment id="233192" author="mhanafi" created="Fri, 7 Sep 2018 23:49:10 +0000"  >&lt;p&gt;This does fix the issue in ldiskfs. We can move forward with the patch.&lt;/p&gt;</comment>
                            <comment id="234499" author="gerrit" created="Fri, 5 Oct 2018 22:28:21 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/33038/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/33038/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11187&quot; title=&quot;MMP updated sometimes failes T10PI checks&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11187&quot;&gt;&lt;del&gt;LU-11187&lt;/del&gt;&lt;/a&gt; ldiskfs: don&apos;t mark mmp buffer head dirty&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: dd02d32c978ad95c9e2a3703ad6be7511c257a4d&lt;/p&gt;</comment>
                            <comment id="234535" author="pjones" created="Sat, 6 Oct 2018 13:34:34 +0000"  >&lt;p&gt;Landed for 2.12&lt;/p&gt;</comment>
                            <comment id="234719" author="gerrit" created="Wed, 10 Oct 2018 14:56:31 +0000"  >&lt;p&gt;Minh Diep (mdiep@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/33336&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/33336&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11187&quot; title=&quot;MMP updated sometimes failes T10PI checks&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11187&quot;&gt;&lt;del&gt;LU-11187&lt;/del&gt;&lt;/a&gt; ldiskfs: don&apos;t mark mmp buffer head dirty&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: b2_10&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: d11dd446facea523803d4767b69c799286ef01f4&lt;/p&gt;</comment>
                            <comment id="240099" author="gerrit" created="Wed, 16 Jan 2019 07:30:38 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/33336/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/33336/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11187&quot; title=&quot;MMP updated sometimes failes T10PI checks&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11187&quot;&gt;&lt;del&gt;LU-11187&lt;/del&gt;&lt;/a&gt; ldiskfs: don&apos;t mark mmp buffer head dirty&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: b2_10&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: d63cd9f9795848c03c5882b76e971dfcd00433e6&lt;/p&gt;</comment>
                            <comment id="240345" author="gerrit" created="Fri, 18 Jan 2019 18:21:24 +0000"  >&lt;p&gt;Minh Diep (mdiep@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/34063&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/34063&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11187&quot; title=&quot;MMP updated sometimes failes T10PI checks&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11187&quot;&gt;&lt;del&gt;LU-11187&lt;/del&gt;&lt;/a&gt; ldiskfs: update rhel7.6 series&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: b2_10&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 740c8b5b3b0c7419a53d84fd4d19ecffbbfd28f3&lt;/p&gt;</comment>
                            <comment id="240556" author="gerrit" created="Tue, 22 Jan 2019 18:49:07 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/34063/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/34063/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11187&quot; title=&quot;MMP updated sometimes failes T10PI checks&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11187&quot;&gt;&lt;del&gt;LU-11187&lt;/del&gt;&lt;/a&gt; ldiskfs: update rhel7.6 series&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: b2_10&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: b5ad8a06a6b092e38800987debdba5b3e1ee8b29&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="25999">LU-5481</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                                        </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="30960" name="dm20.hexdump" size="1843901" author="mhanafi" created="Wed, 29 Aug 2018 18:09:18 +0000"/>
                            <attachment id="30990" name="trace.dat" size="4964352" author="mhanafi" created="Tue, 4 Sep 2018 21:55:33 +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|hzzzyf:</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>