<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:34:20 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-17305] LustreError: 4731:0:(osp_precreate.c:220:osp_statfs_update()) ASSERTION( imp ) failed:</title>
                <link>https://jira.whamcloud.com/browse/LU-17305</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;__class_new_export() puts all exports (but self ones) to obd&apos;s obd_exports_timed.&lt;/p&gt;

&lt;p&gt;That may lead to the following failure:&lt;/p&gt;

&lt;p&gt;An osp device (e.g. lustre-MDT0001-osp-MDT0000) gets into list of ll_evictor via:&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;
void ptlrpc_update_export_timer(struct obd_export *exp, time64_t extra_delay)
..
                &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (ktime_get_real_seconds() &amp;gt;
                    (exp-&amp;gt;exp_obd-&amp;gt;obd_eviction_timer + extra_delay)) {
                        /*
                         * The evictor won&lt;span class=&quot;code-quote&quot;&gt;&apos;t evict anyone who we&apos;&lt;/span&gt;ve heard from
                         * recently, so we don&apos;t have to check before we start
                         * it.
                         */
                        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (!ping_evictor_wake(exp))
                                exp-&amp;gt;exp_obd-&amp;gt;obd_eviction_timer = 0;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;A single export of the osp device may really get expired while ll_evictor processed previous obd. The below is a real example how long class_fail_export may take.&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;00000020:00080000:1.0:1697800331.318457:0:11259:0:(genops.c:1602:class_fail_export()) disconnecting export 00000000aebb178e/1f7b0f9c-d105-4dcb-b264-be1a9fe6c818
00000020:00080000:1.0:1697800415.211208:0:11259:0:(genops.c:1619:class_fail_export()) disconnected export 00000000aebb178e/1f7b0f9c-d105-4dcb-b264-be1a9fe6c818
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Now osp&apos;s exports looks like &quot;dead&quot; for ll_evictor:&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;00000100:00080000:1.0:1697800415.211212:0:11259:0:(pinger.c:498:ping_evictor_main()) evicting all exports of obd lustre-MDT0002-osp-MDT0001 older than 1697800385
00000100:02000400:1.0:1697800415.211217:0:11259:0:(pinger.c:525:ping_evictor_main()) lustre-MDT0002-osp-MDT0001: haven&apos;t heard from client lustre-MDT0001-mdtlov_UUID (at 0@lo) in 60 seconds. I think it&apos;s dead, and I am evicting it. exp 00000000917f6020, cur 1697800415 expire 1697800385 last 1697800355
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;class_fail_export() for that export does a lot including clearing of obd-&amp;gt;u.cli.cl_import via where obd_cleanup_client_import():&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;
ping_evictor_main
   class_fail_export
      obd_disconnect
         osp_obd_disconnect
            class_manual_cleanup
               class_process_config(LCFG_CLEANUP)
                  class_cleanup
                     obd_precleanup
                        osp_device_fini
                           client_obd_cleanup
                              obd_cleanup_client_import
                                 obd-&amp;gt;u.cli.cl_import = NULL;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;As osp-pre threads are not stopped by the evictor, that leads to&lt;br/&gt;
assertion on:&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;
osp_precreate_thread
   osp_statfs_update
      imp = d-&amp;gt;opd_obd-&amp;gt;u.cli.cl_import;
      LASSERT(imp);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;If such export (created by client_connect_import) did not get linked to obd_exports_timed list - the problem would not exist.&lt;/p&gt;</description>
                <environment></environment>
        <key id="79107">LU-17305</key>
            <summary>LustreError: 4731:0:(osp_precreate.c:220:osp_statfs_update()) ASSERTION( imp ) failed:</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="1" iconUrl="https://jira.whamcloud.com/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="wc-triage">WC Triage</assignee>
                                    <reporter username="vsaveliev">Vladimir Saveliev</reporter>
                        <labels>
                    </labels>
                <created>Tue, 21 Nov 2023 13:43:30 +0000</created>
                <updated>Tue, 21 Nov 2023 13:47:59 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                            <comments>
                            <comment id="393731" author="gerrit" created="Tue, 21 Nov 2023 13:47:59 +0000"  >&lt;p&gt;&quot;Vladimir Saveliev &amp;lt;vladimir.saveliev@hpe.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/53192&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/53192&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-17305&quot; title=&quot;LustreError: 4731:0:(osp_precreate.c:220:osp_statfs_update()) ASSERTION( imp ) failed:&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-17305&quot;&gt;LU-17305&lt;/a&gt; obdclass: do not link all exports to obd&apos;s timed list&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 9383339a726b46e33a758dda77a864f38b28795e&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </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|i042cv:</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>