<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:35: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-10514] all metadata operations take 1+ minutes thanks to libtool&apos;s l_getidentity</title>
                <link>https://jira.whamcloud.com/browse/LU-10514</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&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;n:lustre-release# bash $LUSTRE/tests/llmount.sh
...
n:lustre-release# time touch /mnt/lustre/f0

real&#160;&#160; &#160;1m30.060s
user&#160;&#160; &#160;0m0.001s
sys&#160;&#160; &#160;0m0.004s
n:lustre-release# time touch /mnt/lustre/f1

real	2m0.058s
user	0m0.000s
sys	0m0.004s
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;libtoolizing &lt;tt&gt;lustre/utils&lt;/tt&gt; creates a wrapper script for &lt;tt&gt;l_getidentity&lt;/tt&gt; that doesn&apos;t work.&lt;/p&gt;

&lt;p&gt;When invoked the wrapped script prints the following to stderr&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;/root/lustre-release/lustre/utils/l_getidentity: line 151: ls: command not found
/root/lustre-release/lustre/utils/l_getidentity: line 198: rm: command not found
/root/lustre-release/lustre/utils/l_getidentity: line 212: rm: command not found
/root/lustre-release/lustre/utils/l_getidentity: line 213: mv: command not found
/root/lustre-release/lustre/utils/l_getidentity: line 214: rm: command not found
/root/lustre-release/lustre/utils/l_getidentity: error: `/root/lustre-release/lustre/utils/.libs/lt-l_getidentity&apos; does not exist
This script is just a wrapper for lt-l_getidentity.
See the libtool documentation for more information.
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;But this doesn&apos;t go anywhere because stderr is to connected to anything when l_getidentity is run.&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;l_getidentity&lt;/tt&gt; should not depend on liblustreapi. We should factor out whatever it needs in separate .c files and add them to l_getidentity dependencies.&lt;/p&gt;

&lt;p&gt;Also why do it take 2 minutes to for the operation to complete. It seems like we&apos;re not handling failure from the identity downcall very well. It sets stuck at:&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;n:~# stack1 mdt
8856 mdt00_003
[&amp;lt;ffffffffc0921e80&amp;gt;] upcall_cache_get_entry+0x1d0/0x8f0 [obdclass]
[&amp;lt;ffffffffc10120c7&amp;gt;] mdt_identity_get+0x17/0x50 [mdt]
[&amp;lt;ffffffffc0ff36eb&amp;gt;] old_init_ucred_common+0xdb/0x290 [mdt]
[&amp;lt;ffffffffc0ff39c7&amp;gt;] old_init_ucred+0x127/0x240 [mdt]
[&amp;lt;ffffffffc0ff5405&amp;gt;] mdt_init_ucred_intent_getattr+0x85/0xa0 [mdt]
[&amp;lt;ffffffffc0ff04f5&amp;gt;] mdt_intent_getattr+0xc5/0x470 [mdt]
[&amp;lt;ffffffffc0fe60b2&amp;gt;] mdt_intent_opc+0x442/0xad0 [mdt]
[&amp;lt;ffffffffc0fedc73&amp;gt;] mdt_intent_policy+0x1a3/0x360 [mdt]
[&amp;lt;ffffffffc0d042fa&amp;gt;] ldlm_lock_enqueue+0x38a/0x970 [ptlrpc]
[&amp;lt;ffffffffc0d2da33&amp;gt;] ldlm_handle_enqueue0+0x8f3/0x1400 [ptlrpc]
[&amp;lt;ffffffffc0db3752&amp;gt;] tgt_enqueue+0x62/0x210 [ptlrpc]
[&amp;lt;ffffffffc0dbb965&amp;gt;] tgt_request_handle+0x925/0x13b0 [ptlrpc]
[&amp;lt;ffffffffc0d5fc7e&amp;gt;] ptlrpc_server_handle_request+0x24e/0xab0 [ptlrpc]
[&amp;lt;ffffffffc0d63422&amp;gt;] ptlrpc_main+0xa92/0x1e40 [ptlrpc]
[&amp;lt;ffffffff810b252f&amp;gt;] kthread+0xcf/0xe0
[&amp;lt;ffffffff816b8798&amp;gt;] ret_from_fork+0x58/0x90
[&amp;lt;ffffffffffffffff&amp;gt;] 0xffffffffffffffff
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;It&apos;s sleeping at &lt;tt&gt;left = schedule_timeout(expiry)&lt;/tt&gt; in &lt;tt&gt;upcall_cache_get_entry()&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;BTW, libtool is terrible.&lt;/p&gt;</description>
                <environment></environment>
        <key id="50227">LU-10514</key>
            <summary>all metadata operations take 1+ minutes thanks to libtool&apos;s l_getidentity</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="1" iconUrl="https://jira.whamcloud.com/images/icons/priorities/blocker.svg">Blocker</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="jhammond">John Hammond</assignee>
                                    <reporter username="jhammond">John Hammond</reporter>
                        <labels>
                    </labels>
                <created>Mon, 15 Jan 2018 18:18:27 +0000</created>
                <updated>Sat, 28 Dec 2019 09:06:01 +0000</updated>
                            <resolved>Thu, 25 Jan 2018 04:52:42 +0000</resolved>
                                    <version>Lustre 2.11.0</version>
                                    <fixVersion>Lustre 2.11.0</fixVersion>
                                        <due></due>
                            <votes>1</votes>
                                    <watches>9</watches>
                                                                            <comments>
                            <comment id="218269" author="jhammond" created="Mon, 15 Jan 2018 19:12:48 +0000"  >&lt;p&gt;Sorry, forgot to mention that the libtoolizing of &lt;tt&gt;lustre/utils/&lt;/tt&gt; was done by &lt;a href=&quot;https://review.whamcloud.com/30562&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/30562&lt;/a&gt; &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5541&quot; title=&quot;improve liblustreapi build&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5541&quot;&gt;&lt;del&gt;LU-5541&lt;/del&gt;&lt;/a&gt; build: move libcfs and liblustreapi over to libtool.&lt;/p&gt;</comment>
                            <comment id="218276" author="simmonsja" created="Mon, 15 Jan 2018 22:43:12 +0000"  >&lt;p&gt;None of the tests are showing this regression. This looks like a corner case. What are the exact steps you did to reproduce this problem?&lt;/p&gt;

&lt;p&gt;/usr/src/lustre-2.10.56/lustre/utils$ ./l_getidentity&lt;/p&gt;

&lt;p&gt;usage: l_getidentity {-d|mdtname} {uid}&lt;br/&gt;
 Normally invoked as an upcall from Lustre, set via:&lt;br/&gt;
 lctl set_param mdt.${mdtname}.identity_upcall={path to upcall}&lt;br/&gt;
 -d: debug, print values to stdout instead of Lustre&lt;/p&gt;

&lt;p&gt;/usr/src/lustre-2.10.56/lustre/utils$ ldd ./l_getidentity&lt;br/&gt;
 not a dynamic executable&lt;/p&gt;

&lt;p&gt;Well the other option besides libtool is cmake &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/smile.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;

&lt;p&gt;I wouldn&apos;t consider this a blocker since under normal conditions things do work.&lt;/p&gt;</comment>
                            <comment id="218278" author="jhammond" created="Mon, 15 Jan 2018 23:07:09 +0000"  >&lt;p&gt;James,&lt;/p&gt;

&lt;p&gt;Anything that breaks when &lt;tt&gt;./lustre/tests/llmount.sh&lt;/tt&gt; is run from the lustre-release directory should be a blocker. Many developers depend on this working to reduce turn around time for testing locally.&lt;/p&gt;</comment>
                            <comment id="218284" author="gerrit" created="Tue, 16 Jan 2018 00:52:34 +0000"  >&lt;p&gt;John L. Hammond (john.hammond@intel.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/30872&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/30872&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10514&quot; title=&quot;all metadata operations take 1+ minutes thanks to libtool&amp;#39;s l_getidentity&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10514&quot;&gt;&lt;del&gt;LU-10514&lt;/del&gt;&lt;/a&gt; utils: statically link l_getidentity with libcfs.a&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: e53f0067d9f8b4ab2d7bf8df75b5fb02aae03727&lt;/p&gt;</comment>
                            <comment id="218286" author="simmonsja" created="Tue, 16 Jan 2018 01:31:58 +0000"  >&lt;p&gt;You could also do l_getidentity_LDFLAGS := -static. We should look at making l_getidentity independent of libcfs.a as well. Currently we have to have libcfs.a due to need for libcfs_nid2str() used by /etc/perm.conf support. Do we need /etc/perm.conf anymore since we have nodemap which is way better. Second libcfs.a use is cfs_get_param() but we could just test for /proc and /sys indentity_info file and write to it directly.&lt;/p&gt;</comment>
                            <comment id="218837" author="adilger" created="Mon, 22 Jan 2018 19:48:00 +0000"  >&lt;p&gt;James, getting rid of &lt;tt&gt;/etc/perm.conf&lt;/tt&gt; would be great.  As you write, we have nodemap already.  That was part of the goal of the &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7533&quot; title=&quot;remove obsolete idmap functionality&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7533&quot;&gt;&lt;del&gt;LU-7533&lt;/del&gt;&lt;/a&gt; cleanup.&lt;/p&gt;</comment>
                            <comment id="219069" author="gerrit" created="Thu, 25 Jan 2018 04:45:42 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/30872/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/30872/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10514&quot; title=&quot;all metadata operations take 1+ minutes thanks to libtool&amp;#39;s l_getidentity&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10514&quot;&gt;&lt;del&gt;LU-10514&lt;/del&gt;&lt;/a&gt; utils: statically link l_getidentity with libcfs.a&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 14e8e8e8a6b1bfe370e3e1f9fef6e37ccfc23290&lt;/p&gt;</comment>
                            <comment id="219098" author="pjones" created="Thu, 25 Jan 2018 04:52:42 +0000"  >&lt;p&gt;Landed for 2.11&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="50337">LU-10545</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="26142">LU-5541</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="50685">LU-10627</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <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|hzzr4v:</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>