<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:37:46 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-10740] replay-single test_2d: FAIL: checkstat -v  /mnt/lustre/d2d.replay-single check failed </title>
                <link>https://jira.whamcloud.com/browse/LU-10740</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;2.7 (IEEL) based server, 2.10.58 client&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;
== replay-single test 2d: setdirstripe replay ======================================================== 00:25:51 (1519604751)
UUID                   1K-blocks        Used   Available Use% Mounted on
lustre-MDT0000_UUID       344152        2752      317200   1% /mnt/lustre[MDT:0]
lustre-MDT0001_UUID       344152        2492      317460   1% /mnt/lustre[MDT:1]
lustre-OST0000_UUID       664400       17712      597688   3% /mnt/lustre[OST:0]
lustre-OST0001_UUID       664400       17712      597688   3% /mnt/lustre[OST:1]

filesystem_summary:      1328800       35424     1195376   3% /mnt/lustre

Failing mds1 on fre1209
Stopping /mnt/lustre-mds1 (opts:) on fre1209
pdsh@fre1211: fre1209: ssh exited with exit code 1
reboot facets: mds1
Failover mds1 to fre1209
00:26:02 (1519604762) waiting &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; fre1209 network 900 secs ...
00:26:02 (1519604762) network &lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt; is UP
mount facets: mds1
Starting mds1: -o rw,user_xattr  /dev/vdb /mnt/lustre-mds1
pdsh@fre1211: fre1209: ssh exited with exit code 1
pdsh@fre1211: fre1209: ssh exited with exit code 1
Started lustre-MDT0000
fre1212: fre1212: executing wait_import_state_mount FULL mdc.lustre-MDT0000-mdc-*.mds_server_uuid
fre1211: fre1211: executing wait_import_state_mount FULL mdc.lustre-MDT0000-mdc-*.mds_server_uuid
fre1212: mdc.lustre-MDT0000-mdc-*.mds_server_uuid in FULL state after 4 sec
fre1211: mdc.lustre-MDT0000-mdc-*.mds_server_uuid in FULL state after 4 sec
Can&apos;t lstat /mnt/lustre/d2d.replay-single: No such file or directory
 replay-single test_2d: @@@@@@ FAIL: checkstat -v  /mnt/lustre/d2d.replay-single check failed 
 
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;100% reproducible with review-dne-zfs-part-4&lt;/p&gt;</description>
                <environment></environment>
        <key id="51032">LU-10740</key>
            <summary>replay-single test_2d: FAIL: checkstat -v  /mnt/lustre/d2d.replay-single check failed </summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.whamcloud.com/images/icons/priorities/major.svg">Major</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="3">Duplicate</resolution>
                                        <assignee username="laisiyao">Lai Siyao</assignee>
                                    <reporter username="egryaznova">Elena Gryaznova</reporter>
                        <labels>
                            <label>dne</label>
                            <label>zfs</label>
                    </labels>
                <created>Wed, 28 Feb 2018 16:06:36 +0000</created>
                <updated>Tue, 26 Feb 2019 07:44:11 +0000</updated>
                            <resolved>Tue, 26 Feb 2019 07:44:11 +0000</resolved>
                                    <version>Lustre 2.11.0</version>
                    <version>Lustre 2.12.0</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>7</watches>
                                                                            <comments>
                            <comment id="223803" author="sarah" created="Thu, 15 Mar 2018 21:25:42 +0000"  >&lt;p&gt;also hit on master branch, zfs DNE&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://testing.hpdd.intel.com/test_sets/d05367b0-2799-11e8-9e0e-52540065bddc&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://testing.hpdd.intel.com/test_sets/d05367b0-2799-11e8-9e0e-52540065bddc&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;mds dmesg&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;
[64823.580533] Lustre: DEBUG MARKER: /usr/sbin/lctl mark == replay-single test 2d: setdirstripe replay ======================================================== 17:06:03 \(1520960763\)
[64823.808722] Lustre: DEBUG MARKER: == replay-single test 2d: setdirstripe replay ======================================================== 17:06:03 (1520960763)
[64824.017795] Lustre: DEBUG MARKER: sync; sync; sync
[64825.224138] Lustre: DEBUG MARKER: /usr/sbin/lctl --device lustre-MDT0000 notransno
[64825.565253] Lustre: DEBUG MARKER: /usr/sbin/lctl --device lustre-MDT0000 readonly
[64826.042689] Lustre: DEBUG MARKER: /usr/sbin/lctl mark mds1 REPLAY BARRIER on lustre-MDT0000
[64826.212687] Lustre: DEBUG MARKER: mds1 REPLAY BARRIER on lustre-MDT0000
[64826.695274] Lustre: DEBUG MARKER: grep -c /mnt/lustre-mds1&apos; &apos; /proc/mounts || true
[64827.035062] Lustre: DEBUG MARKER: umount -d /mnt/lustre-mds1
[64827.574756] Lustre: DEBUG MARKER: lsmod | grep lnet &amp;gt; /dev/null &amp;amp;&amp;amp;
lctl dl | grep &apos; ST &apos; || true
[64827.930760] Lustre: DEBUG MARKER: ! zpool list -H lustre-mdt1 &amp;gt;/dev/null 2&amp;gt;&amp;amp;1 ||
 grep -q ^lustre-mdt1/ /proc/mounts ||
 zpool export lustre-mdt1
[64838.339263] Lustre: DEBUG MARKER: hostname
[64838.749896] Lustre: DEBUG MARKER: lsmod | grep zfs &amp;gt;&amp;amp;/dev/null || modprobe zfs;
 zpool list -H lustre-mdt1 &amp;gt;/dev/null 2&amp;gt;&amp;amp;1 ||
 zpool import -f -o cachefile=none -o failmode=panic -d /dev/lvm-Role_MDS lustre-mdt1
[64839.417169] Lustre: DEBUG MARKER: zfs get -H -o value lustre:svname lustre-mdt1/mdt1
[64839.751101] Lustre: DEBUG MARKER: mkdir -p /mnt/lustre-mds1; mount -t lustre lustre-mdt1/mdt1 /mnt/lustre-mds1
[64841.981159] Lustre: DEBUG MARKER: /usr/sbin/lctl get_param -n health_check
[64842.324523] Lustre: DEBUG MARKER: PATH=/usr/lib64/lustre/tests:/usr/lib/lustre/tests:/usr/lib64/lustre/tests:/opt/iozone/bin:/opt/iozone/bin:/usr/lib64/lustre/tests/mpi:/usr/lib64/lustre/tests/racer:/usr/lib64/lustre/../lustre-iokit/sgpdd-survey:/usr/lib64/lustre/tests:/usr/lib64/lustre/u
[64842.971945] Lustre: DEBUG MARKER: /usr/sbin/lctl mark onyx-43vm8.onyx.hpdd.intel.com: executing set_default_debug vfstrace rpctrace dlmtrace neterror ha config ioctl super lfsck all 4
[64842.974147] Lustre: DEBUG MARKER: /usr/sbin/lctl mark onyx-43vm8.onyx.hpdd.intel.com: executing set_default_debug vfstrace rpctrace dlmtrace neterror ha config ioctl super lfsck all 4
[64843.192600] Lustre: DEBUG MARKER: onyx-43vm8.onyx.hpdd.intel.com: executing set_default_debug vfstrace rpctrace dlmtrace neterror ha config ioctl super lfsck all 4
[64843.192672] Lustre: DEBUG MARKER: onyx-43vm8.onyx.hpdd.intel.com: executing set_default_debug vfstrace rpctrace dlmtrace neterror ha config ioctl super lfsck all 4
[64843.395032] Lustre: DEBUG MARKER: lctl set_param -n mdt.lustre*.enable_remote_dir=1
[64843.733809] Lustre: DEBUG MARKER: zfs get -H -o value lustre:svname lustre-mdt1/mdt1 2&amp;gt;/dev/null | grep -E &apos;:[a-zA-Z]\{3}[0-9]\{4}&apos;
[64844.079675] Lustre: DEBUG MARKER: zfs get -H -o value lustre:svname lustre-mdt1/mdt1 2&amp;gt;/dev/null | grep -E &apos;:[a-zA-Z]\{3}[0-9]\{4}&apos;
[64844.425889] Lustre: DEBUG MARKER: zfs get -H -o value lustre:svname lustre-mdt1/mdt1 2&amp;gt;/dev/null
[64845.202422] Lustre: lustre-MDT0000: Will be in recovery for at least 1:00, or until 5 clients reconnect
[64845.389052] Lustre: DEBUG MARKER: /usr/sbin/lctl mark onyx-43vm5.onyx.hpdd.intel.com: executing wait_import_state_mount FULL mdc.lustre-MDT0000-mdc-*.mds_server_uuid
[64845.389056] Lustre: DEBUG MARKER: /usr/sbin/lctl mark onyx-43vm6.onyx.hpdd.intel.com: executing wait_import_state_mount FULL mdc.lustre-MDT0000-mdc-*.mds_server_uuid
[64845.655584] Lustre: DEBUG MARKER: onyx-43vm5.onyx.hpdd.intel.com: executing wait_import_state_mount FULL mdc.lustre-MDT0000-mdc-*.mds_server_uuid
[64845.687723] Lustre: DEBUG MARKER: onyx-43vm6.onyx.hpdd.intel.com: executing wait_import_state_mount FULL mdc.lustre-MDT0000-mdc-*.mds_server_uuid
[64846.599842] LustreError: 29449:0:(llog.c:1012:llog_write_rec()) lustre-MDT0000-osd: loghandle ffff88004c471e00 with no header
[64846.601307] LustreError: 29449:0:(llog_cat.c:500:llog_cat_add_rec()) llog_write_rec -71: lh=ffff88004c471e00
[64846.602541] LustreError: 29449:0:(update_trans.c:994:top_trans_stop()) lustre-MDT0000-mdtlov: write updates failed: rc = -71
[64846.603937] LustreError: 29449:0:(tgt_lastrcvd.c:1226:tgt_last_rcvd_update()) lustre-MDT0000: replay transno 38654705669 failed: rc = -71
[64846.613367] Lustre: lustre-MDT0000: disconnecting 1 stale clients
[64846.614170] LustreError: 29449:0:(tgt_grant.c:248:tgt_grant_sanity_check()) mdt_obd_disconnect: tot_granted 2097152 != fo_tot_granted 4194304
[64847.016802] Lustre: DEBUG MARKER: /usr/sbin/lctl mark mdc.lustre-MDT0000-mdc-*.mds_server_uuid in FULL state after 1 sec
[64847.244576] Lustre: DEBUG MARKER: mdc.lustre-MDT0000-mdc-*.mds_server_uuid in FULL state after 1 sec
[64854.015289] Lustre: DEBUG MARKER: /usr/sbin/lctl mark mdc.lustre-MDT0000-mdc-*.mds_server_uuid in FULL state after 8 sec
[64854.220999] Lustre: DEBUG MARKER: mdc.lustre-MDT0000-mdc-*.mds_server_uuid in FULL state after 8 sec
[64855.647689] Lustre: DEBUG MARKER: /usr/sbin/lctl mark replay-single test_2d: @@@@@@ FAIL: checkstat -v \/mnt\/lustre\/d2d.replay-single check failed 
[64855.876070] Lustre: DEBUG MARKER: replay-single test_2d: @@@@@@ FAIL: checkstat -v /mnt/lustre/d2d.replay-single check failed

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="231649" author="adilger" created="Wed, 8 Aug 2018 17:10:54 +0000"  >&lt;p&gt;The error being returned is &lt;tt&gt;-71 = -EREMOTE&lt;/tt&gt;, which suggests that there is some problem sending the RPC to the wrong MDT.  However, that may also be some kind of fallout from &quot;&lt;tt&gt;loghandle XXX with no header&lt;/tt&gt;&quot;, which implies that the llogfile is zero length and wasn&apos;t written correctly?  It&apos;s hard to see why the &lt;tt&gt;-EREMOTE&lt;/tt&gt; problem could relate to only DNE+ZFS, while the second one seems more plausible.&lt;/p&gt;</comment>
                            <comment id="231650" author="adilger" created="Wed, 8 Aug 2018 17:12:32 +0000"  >&lt;p&gt;Lai, could you please take a look?  James reports that this is failing 100% of the time with review-dne-zfs-part-4, which is currently an optional test run, but we want to make it a required test.&lt;/p&gt;</comment>
                            <comment id="231776" author="gerrit" created="Fri, 10 Aug 2018 02:22:22 +0000"  >&lt;p&gt;Lai Siyao (lai.siyao@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/32976&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/32976&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10740&quot; title=&quot;replay-single test_2d: FAIL: checkstat -v  /mnt/lustre/d2d.replay-single check failed &quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10740&quot;&gt;&lt;del&gt;LU-10740&lt;/del&gt;&lt;/a&gt; test: test replay-single 2d with full debug&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 958da17e9abf0504a802963ba8a7fa0a9afc075b&lt;/p&gt;</comment>
                            <comment id="232433" author="laisiyao" created="Wed, 22 Aug 2018 15:27:59 +0000"  >&lt;p&gt;The failed call trace is:&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; llog_add()
-&amp;gt; llog_cat_add_rec()
 -&amp;gt; llog_cat_new_log()
  -&amp;gt; llog_osd_create()
   -&amp;gt; osd_create()
    -&amp;gt; osd_zap_add()
      return -EEXIST
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;but &lt;tt&gt;loghandle-&amp;gt;lgh_hdr&lt;/tt&gt; is NULL, which caused &lt;tt&gt;llog_write_rec() return -EPROTO&lt;/tt&gt; (-71). But I don&apos;t understand why it fails on ZFS only.&lt;/p&gt;</comment>
                            <comment id="232555" author="laisiyao" created="Fri, 24 Aug 2018 04:37:00 +0000"  >&lt;p&gt;I found something strange in the log:&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;40000000:00000040:1.0:1535051095.957588:0:12953:0:(fid_handler.c:348:__seq_server_alloc_meta()) srv-lustre-MDT0000: Allocated meta-sequence [0x0000000200001b70-0x0000000200001b71]:0:mdt
40000000:00000040:1.0:1535051095.957598:0:12953:0:(fid_request.c:400:seq_client_alloc_fid()) cli-lustre-MDT0000: Allocated FID [0x200001b70:0x1:0x0]
00000004:00000040:1.0:1535051095.957601:0:12953:0:(lod_object.c:1984:lod_prep_md_striped_create()) Get idx 0, for stripe 0 [0x200001b70:0x1:0x0]
00000004:00000040:1.0:1535051095.957607:0:12953:0:(mdt_handler.c:5324:mdt_object_init()) object init, fid = [0x200001b70:0x1:0x0]
00000001:00000002:1.0:1535051095.958937:0:12953:0:(linkea.c:173:linkea_add_buf()) New link_ea name &apos;[0x2000013a0:0xb:0x0]:[0x200001b70:0x1:0x0]:0&apos; is added
00000020:00000040:1.0:1535051095.960470:0:12953:0:(update_records.c:240:update_records_update_pack()) 4th [0x200001b70:0x1:0x0] create param_count = 7
00000040:00000001:0.0:1535051123.894990:0:16387:0:(llog_osd.c:1225:llog_osd_open()) Process entered
00000040:00000001:0.0:1535051123.894991:0:16387:0:(obd_class.h:911:obd_fid_alloc()) Process entered
40000000:00000040:0.0:1535051123.941029:0:16387:0:(fid_request.c:400:seq_client_alloc_fid()) cli-lustre-MDT0000: Allocated FID [0x200001b70:0x1:0x0]
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The scenario is as below:&lt;br/&gt;
1. setdirstripe allocated &lt;span class=&quot;error&quot;&gt;&amp;#91;0x200001b70:0x1:0x0&amp;#93;&lt;/span&gt; for its first stripe on MDT0, and it also allocated a new meta sequence.&lt;br/&gt;
2. replay barrier&lt;br/&gt;
3. replay setdirstripe, MDT0 got update logs from MDT1, and it needed to create an update log, now it allocated fid for this update log, but it allocated the same meta sequence as step 1, and allocated the same fid as the first stripe.&lt;br/&gt;
4. llog_osd_create() &lt;del&gt;&amp;gt; osd_create() -&amp;gt; osd_zap_add() found the fid in OI, so it skipped llog_init_handle(), which cause loghandle&lt;/del&gt;&amp;gt;lgh_hdr not set, and finally llog_write_rec() return -EPROTO.&lt;/p&gt;

&lt;p&gt;I&apos;m not sure whether it&apos;s related with ZFS, because seq_store_update() has updated FLDB with th_sync set.&lt;/p&gt;</comment>
                            <comment id="232562" author="adilger" created="Fri, 24 Aug 2018 07:29:00 +0000"  >&lt;p&gt;Is it possible the MDT is running with &lt;tt&gt;osd_object_sync_delay_us=0&lt;/tt&gt;?  This was being proposed in a recent patch, but I didn&apos;t think it was landed yet, and was initially limited to a single test. &lt;/p&gt;</comment>
                            <comment id="232608" author="laisiyao" created="Sun, 26 Aug 2018 15:02:50 +0000"  >&lt;p&gt;It doesn&apos;t look to be related with osd_object_sync_delay_us. I added some debug log, the result shows th_sync doesn&apos;t work on ZFS, the debug log shows seq file was sync written (osd_trans_commit_cb() was called before osd_trans_stop()), but after replay barrier, server read stale seq file on start up. I also tweaked the code to do create in sync mode, the result also shows file not exist after restart.&lt;/p&gt;

&lt;p&gt;Is there a simple way to verify this?&lt;/p&gt;</comment>
                            <comment id="232609" author="adilger" created="Sun, 26 Aug 2018 15:42:23 +0000"  >&lt;p&gt;One problem we have with ZFS TXG sync is that this doesn&apos;t force a commit, only block the thread until the TXG commit happens. That should be equivalent from the point of view of the client, but it is possible the test doesn&apos;t expect this?&lt;/p&gt;

&lt;p&gt;Until we have ZIL support, it would be nice to have a way to force TXG commit, especially with flash devices that have no seek latency. &lt;/p&gt;</comment>
                            <comment id="232612" author="laisiyao" created="Mon, 27 Aug 2018 00:27:40 +0000"  >&lt;p&gt;FID seq file is updated in sync mode, so upon MDS fail, it won&apos;t allocate duplicate FID.&lt;/p&gt;

&lt;p&gt;replay-single.sh 2d failed because it happens to allocate a new super sequence before fail, If it&apos;s run separately it can pass.&lt;/p&gt;</comment>
                            <comment id="232692" author="bzzz" created="Tue, 28 Aug 2018 19:25:01 +0000"  >&lt;p&gt;Andreas, I added a simple debugging data - print time it takes to commit TXG upon enforced commit and initiated that many times during sanity.sh:&lt;/p&gt;

&lt;p&gt;sync took 8276 usec&lt;br/&gt;
 sync took 26489 usec&lt;br/&gt;
 sync took 15471 usec&lt;br/&gt;
 sync took 8526 usec&lt;br/&gt;
 sync took 36187 usec&lt;br/&gt;
 sync took 16634 usec&lt;br/&gt;
 sync took 283 usec&lt;br/&gt;
 sync took 8142 usec&lt;br/&gt;
 sync took 7335 usec&lt;br/&gt;
 sync took 609 usec&lt;br/&gt;
 sync took 641 usec&lt;br/&gt;
 sync took 660 usec&lt;br/&gt;
 sync took 9278 usec&lt;br/&gt;
 sync took 396 usec&lt;br/&gt;
 sync took 17179 usec&lt;br/&gt;
 sync took 401 usec&lt;br/&gt;
 sync took 455 usec&lt;br/&gt;
 sync took 403 usec&lt;br/&gt;
 sync took 532 usec&lt;br/&gt;
 sync took 424 usec&lt;br/&gt;
 sync took 9057 usec&lt;br/&gt;
 sync took 444 usec&lt;br/&gt;
 sync took 11116 usec&lt;br/&gt;
 sync took 16007 usec&lt;br/&gt;
 sync took 16611 usec&lt;br/&gt;
 sync took 680 usec&lt;br/&gt;
 sync took 240 usec&lt;br/&gt;
 sync took 289 usec&lt;br/&gt;
 sync took 256 usec&lt;br/&gt;
 sync took 289 usec&lt;br/&gt;
 sync took 311 usec&lt;br/&gt;
 sync took 7353 usec&lt;br/&gt;
 sync took 285 usec&lt;br/&gt;
 sync took 9369 usec&lt;br/&gt;
 sync took 13867 usec&lt;br/&gt;
 sync took 275 usec&lt;br/&gt;
 sync took 6440 usec&lt;br/&gt;
 sync took 327 usec&lt;br/&gt;
 sync took 14827 usec&lt;br/&gt;
 sync took 15640 usec&lt;br/&gt;
 sync took 17490 usec&lt;br/&gt;
 sync took 113 usec&lt;br/&gt;
 sync took 524 usec&lt;br/&gt;
 sync took 268 usec&lt;br/&gt;
 sync took 375 usec&lt;br/&gt;
 sync took 15034 usec&lt;br/&gt;
 sync took 297 usec&lt;br/&gt;
 sync took 247 usec&lt;br/&gt;
 sync took 401 usec&lt;br/&gt;
 sync took 9492 usec&lt;/p&gt;</comment>
                            <comment id="232696" author="adilger" created="Tue, 28 Aug 2018 20:00:47 +0000"  >&lt;p&gt;Alex, what are you using to force a TXG commit in your tests, and are you sure that the commit is actually making it to disk?  It seems very fast in some cases, 0.1ms for a commit...&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;
&lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; osd_trans_stop(&lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt; struct lu_env *env, struct dt_device *dt,
                          struct thandle *th)
{
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (sync) {
                &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (osd_txg_sync_delay_us &amp;lt; 0)
                        txg_wait_synced(dmu_objset_pool(osd-&amp;gt;od_os), txg);
                &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt;
                        udelay(osd_txg_sync_delay_us);
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;My understanding is that &lt;tt&gt;txg_wait_synced()&lt;/tt&gt; will just wait for the TXG commit to happen, it can&apos;t necessarily force a TXG commit like &lt;tt&gt;jbd2_journal_stop()&lt;/tt&gt; can.  While we don&apos;t want every thread to be forcing a TXT commit, IMHO the jbd2 code has it right - wait a short time for more threads to join the TXG and commit, then force the commit.  The length of time to wait should be based on the current storage commit time, as &lt;tt&gt;jbd2_journal_stop()&lt;/tt&gt; does, so that it is fast on flash and slower on disks to be most efficient.&lt;/p&gt;</comment>
                            <comment id="232715" author="bzzz" created="Wed, 29 Aug 2018 03:31:48 +0000"  >&lt;p&gt;the patch I used:&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;
@@ -276,6 +276,17 @@ &lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; zfs_osd_mntdev_seq_show(struct seq_file *m, void *data)
 }
 LPROC_SEQ_FOPS_RO(zfs_osd_mntdev);
 
+struct osd_sync_cb_data {
+	ktime_t time;
+};
+
+&lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; void osd_sync_cb(void *cb_data, &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; error)
+{
+	struct osd_sync_cb_data *cb = cb_data;
+	printk(&lt;span class=&quot;code-quote&quot;&gt;&quot;sync took %llu usec\n&quot;&lt;/span&gt;, ktime_us_delta(ktime_get(), cb-&amp;gt;time));
+	OBD_FREE_PTR(cb);
+}
+
 &lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; ssize_t
 lprocfs_osd_force_sync_seq_write(struct file *file, &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;char&lt;/span&gt; __user *buffer,
 				size_t count, loff_t *off)
@@ -288,6 +299,19 @@ lprocfs_osd_force_sync_seq_write(struct file *file, &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;char&lt;/span&gt; __user *buffer,
 	rc = lu_env_init(&amp;amp;env, LCT_LOCAL);
 	&lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (rc)
 		&lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; rc;
+	{
+		struct osd_device  *osd = osd_dt_dev(dt);
+		struct osd_sync_cb_data *cb;
+		dmu_tx_t *tx;
+
+		OBD_ALLOC_PTR(cb);
+		cb-&amp;gt;time = ktime_get();
+		tx = dmu_tx_create(osd-&amp;gt;od_os);
+		dmu_tx_assign(tx, TXG_WAIT);
+		dmu_tx_callback_register(tx, osd_sync_cb, cb);
+		dmu_tx_commit(tx);
+	}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;i.e. I registered a commit callback and just calc/printk when it&apos;s called.&lt;/p&gt;

&lt;p&gt;txg_wait_synced() asks sync thread to initiate txg commit:&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;
	&lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (tx-&amp;gt;tx_sync_txg_waiting &amp;lt; txg)
		tx-&amp;gt;tx_sync_txg_waiting = txg;
...
		cv_broadcast(&amp;amp;tx-&amp;gt;tx_sync_more_cv);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="232932" author="adilger" created="Mon, 3 Sep 2018 22:27:45 +0000"  >&lt;p&gt;Alex, is your testing running with an HDD or SSD or ramdisk?  On an HDD I can&apos;t see how a TXG commit could ever complete in less than 4x seek time (just for the &#252;berblock writes, 2x each at the start and end of the device), which is about 32-40 ms.&lt;/p&gt;</comment>
                            <comment id="232934" author="gerrit" created="Mon, 3 Sep 2018 23:21:37 +0000"  >&lt;p&gt;Andreas Dilger (adilger@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/33106&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/33106&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10740&quot; title=&quot;replay-single test_2d: FAIL: checkstat -v  /mnt/lustre/d2d.replay-single check failed &quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10740&quot;&gt;&lt;del&gt;LU-10740&lt;/del&gt;&lt;/a&gt; tests: disable tests for replay-dne-zfs-part-4&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: a7675ca33ec579525b4d39ad114b54ca3b462a62&lt;/p&gt;</comment>
                            <comment id="233196" author="gerrit" created="Sat, 8 Sep 2018 05:33:36 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/33106/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/33106/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10740&quot; title=&quot;replay-single test_2d: FAIL: checkstat -v  /mnt/lustre/d2d.replay-single check failed &quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10740&quot;&gt;&lt;del&gt;LU-10740&lt;/del&gt;&lt;/a&gt; tests: disable tests for replay-dne-zfs-part-4&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 16e92e2d01a71c2a97cae89c70c58abf409c12c0&lt;/p&gt;</comment>
                            <comment id="234729" author="bzzz" created="Wed, 10 Oct 2018 16:19:07 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.whamcloud.com/secure/ViewProfile.jspa?name=adilger&quot; class=&quot;user-hover&quot; rel=&quot;adilger&quot;&gt;adilger&lt;/a&gt;, sorry, missed your question.. I&apos;m using ramdisk.&lt;/p&gt;</comment>
                            <comment id="240655" author="bzzz" created="Thu, 24 Jan 2019 06:43:24 +0000"  >&lt;p&gt;I think this is a dup of &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10143&quot; title=&quot;LBUG dt_object.h:2166:dt_declare_record_write&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10143&quot;&gt;&lt;del&gt;LU-10143&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                            <outwardlinks description="duplicates">
                                        <issuelink>
            <issuekey id="48828">LU-10143</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="44105">LU-9157</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="53217">LU-11336</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="53280">LU-11366</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="29644" name="5a935964f72e62d872670430.zip" size="434678" author="egryaznova" created="Wed, 28 Feb 2018 16:06:34 +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|hzzthz:</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="10022"><![CDATA[3]]></customfieldvalue>

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