<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:40: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>[LUDOC-158] 33.1 &quot;User/Group Cache Upcall&quot; and 33.2 &quot;l_getidentity Utility&quot; need to be updated (Ch 33)</title>
                <link>https://jira.whamcloud.com/browse/LUDOC-158</link>
                <project id="10070" key="LUDOC">Lustre Documentation</project>
                    <description>&lt;p&gt;Notes from Andreas:&lt;br/&gt;
&quot;33.1. User/Group Cache Upcall&quot; and &quot;33.2.&lt;br/&gt;
l_getgroups Utility&quot;, with the caveat that this text was only partially updated for Lustre 2.x.  The &quot;l_getgroups&quot; upcall was renamed &quot;l_getidentity&quot;, and the /proc file is changed also, some (fragmented) updates to the text (&lt;tt&gt;...&lt;/tt&gt; is typewriter font, [] are changes):&lt;/p&gt;

&lt;p&gt;33.1. User/Group Cache Upcall&lt;/p&gt;

&lt;p&gt;  [This section describes the supplementary user and group upcall, which allows the&lt;br/&gt;
  MDS to retrieve and verify the supplementary groups that a particular user is&lt;br/&gt;
  assigned.  This avoids the need to pass all of the supplementary groups from the&lt;br/&gt;
  client to the MDS on every RPC.]&lt;/p&gt;

&lt;p&gt;33.1.1 Name&lt;/p&gt;

&lt;p&gt;  The MDS will use the utility given by &lt;span class=&quot;error&quot;&gt;&amp;#91;{{lctl get_param mdt.$MDT.identity_upcall}}&amp;#93;&lt;/span&gt;&lt;br/&gt;
  to look up the supplied UID in order to retrieve the user&apos;s supplementary group&lt;br/&gt;
  membership.&lt;/p&gt;

&lt;p&gt;33.1.2 Description&lt;/p&gt;

&lt;p&gt;  The &lt;span class=&quot;error&quot;&gt;&amp;#91;identity&amp;#93;&lt;/span&gt; upcall file ...&lt;br/&gt;
  ... This utility should &lt;span class=&quot;error&quot;&gt;&amp;#91;fill in the {{identity_downcall_data}}&amp;#93;&lt;/span&gt; data structure ...&lt;/p&gt;

&lt;p&gt;  For a sample upcall program, see &lt;span class=&quot;error&quot;&gt;&amp;#91;{{lustre/utils/l_getidentity.c}}&amp;#93;&lt;/span&gt; in ...&lt;/p&gt;

&lt;p&gt;33.1.2.1&lt;/p&gt;

&lt;p&gt;  ... and it fails, &lt;span class=&quot;error&quot;&gt;&amp;#91;at most one&amp;#93;&lt;/span&gt; supplementary group will be added as supplied&lt;br/&gt;
  by the client.&lt;/p&gt;


&lt;p&gt;  Use &lt;tt&gt;tunefs.lustre --param=[mdt.identity_upcall=&amp;lt;upcall_program&amp;gt;&lt;/tt&gt; to set the&lt;br/&gt;
  upcall at format time.&lt;/p&gt;

&lt;p&gt;  &lt;span class=&quot;error&quot;&gt;&amp;#91;please just remove rmtacl and normtacl entirely from the description and text&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;  ... &lt;span class=&quot;error&quot;&gt;&amp;#91;The {{/usr/sbin/l_getidentity}}&amp;#93;&lt;/span&gt; utility ...&lt;/p&gt;


&lt;p&gt;  Use &lt;span class=&quot;error&quot;&gt;&amp;#91;lctl set_param mdt.*.identity_expire=&amp;lt;seconds&amp;gt;&amp;#93;&lt;/span&gt; to set the cache time ...&lt;br/&gt;
  Set the wait time via [lctl set_param&lt;br/&gt;
mdt.*.identity_acquire_expire=&amp;lt;seconds&amp;gt;]&lt;br/&gt;
  to change the length of time that the kernel will wait for the upcall to finish.&lt;br/&gt;
  Note that the client process will be blocked during this time.  Cached entries&lt;br/&gt;
  are flushed via &lt;span class=&quot;error&quot;&gt;&amp;#91;lctl set_param mdt.$MDT.identity_flush=0&amp;#93;&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;33.1.4 Data Structures&lt;/p&gt;

&lt;p&gt;  struct perm_downcall_data &lt;/p&gt;
{
          __u64 pdd_nid;
          __u32 pdd_perm;
          __u32 pdd_padding;
  }
&lt;p&gt;;&lt;/p&gt;

&lt;p&gt;  struct identity_downcall_data {&lt;br/&gt;
          __u32           idd_magic;&lt;br/&gt;
          :&lt;br/&gt;
          :&lt;/p&gt;



&lt;p&gt;33.2 &lt;span class=&quot;error&quot;&gt;&amp;#91;l_getidenity&amp;#93;&lt;/span&gt; Utility&lt;/p&gt;

&lt;p&gt;  The &lt;span class=&quot;error&quot;&gt;&amp;#91;l_getidentity&amp;#93;&lt;/span&gt; utility handles the Lustre supplementary group upcall by default,&lt;br/&gt;
  as described in the preceding section.&lt;/p&gt;

&lt;p&gt;33.2.1 Synopsis&lt;/p&gt;

&lt;p&gt;  l_getidentity &lt;/p&gt;
{mdtname}
&lt;p&gt; &lt;/p&gt;
{uid}

&lt;p&gt;33.2.2 Description&lt;/p&gt;

&lt;p&gt;   The identity upcall file ...  should complete the &lt;span class=&quot;error&quot;&gt;&amp;#91;{{identity_downcall_data}}&amp;#93;&lt;/span&gt; ...&lt;br/&gt;
   ... write it to the &lt;span class=&quot;error&quot;&gt;&amp;#91;{{/proc/fs/lustre/mdt/$MDT/identity_info}}&amp;#93;&lt;/span&gt; pseudo file.&lt;/p&gt;

&lt;p&gt;   &lt;span class=&quot;error&quot;&gt;&amp;#91;l_getidentity&amp;#93;&lt;/span&gt; is the reference ...&lt;/p&gt;



&lt;p&gt;33.2.3 Files&lt;/p&gt;

&lt;p&gt;   /proc/fs/lustre/mdt/$MDT/identity_upcall&lt;br/&gt;
   /proc/fs/lustre/mdt/$MDT/identity_info&lt;/p&gt;
</description>
                <environment></environment>
        <key id="19285">LUDOC-158</key>
            <summary>33.1 &quot;User/Group Cache Upcall&quot; and 33.2 &quot;l_getidentity Utility&quot; need to be updated (Ch 33)</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</priority>
                        <status id="5" iconUrl="https://jira.whamcloud.com/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="linda">Linda Bebernes</assignee>
                                    <reporter username="linda">Linda Bebernes</reporter>
                        <labels>
                            <label>QContent</label>
                    </labels>
                <created>Tue, 4 Jun 2013 19:22:56 +0000</created>
                <updated>Wed, 11 Sep 2013 19:22:48 +0000</updated>
                            <resolved>Wed, 11 Sep 2013 19:22:48 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                            <comments>
                            <comment id="60882" author="linda" created="Wed, 19 Jun 2013 19:12:49 +0000"  >&lt;p&gt;33.1. User/Group Cache Upcall&lt;br/&gt;
This section describes the supplementary user and group upcall,...&lt;br/&gt;
&lt;b&gt;Should the heading for this sectionbe changed to &quot;User/Group Upcall&quot; or is it better to say &quot;supplementary user and group cache upcall...&quot; for consistency?&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;33.1.1 Name  &lt;b&gt;Is the heading for this section still appropriate?&lt;/b&gt;&lt;br/&gt;
The MDS will use the utility given by &lt;span class=&quot;error&quot;&gt;&amp;#91;{{lctl get_param mdt.$MDT.identity_upcall}}&amp;#93;&lt;/span&gt;&lt;br/&gt;
to look up the supplied UID in order to retrieve the user&apos;s supplementary group&lt;br/&gt;
membership. &lt;/p&gt;

&lt;p&gt;33.1.2.1&lt;br/&gt;
Use tunefs.lustre --param=[mdt.identity_upcall=&amp;lt;upcall_program&amp;gt; to set the&lt;br/&gt;
upcall at format time.&lt;br/&gt;
&lt;b&gt;Where does this go?&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Can you provide a replacement for this code example?&lt;/b&gt;&lt;br/&gt;
  /*&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;permission file format is like this:&lt;/li&gt;
	&lt;li&gt;{nid} {uid} {perms}&lt;/li&gt;
	&lt;li&gt;&lt;/li&gt;
	&lt;li&gt;&apos;*&apos; nid means any nid&lt;/li&gt;
	&lt;li&gt;&apos;*&apos; uid means any uid&lt;/li&gt;
	&lt;li&gt;the valid values for perms are:&lt;/li&gt;
	&lt;li&gt;setuid/setgid/setgrp/rmtacl &amp;#8211; enable corresponding perm&lt;/li&gt;
	&lt;li&gt;nosetuid/nosetgid/nosetgrp/normtacl &amp;#8211; disable corresponding perm&lt;/li&gt;
	&lt;li&gt;they can be listed together, separated by &apos;,&apos;,&lt;/li&gt;
	&lt;li&gt;when perm and noperm are in the same line (item), noperm is preferential,&lt;/li&gt;
	&lt;li&gt;when they are in different lines (items), the latter is preferential,&lt;/li&gt;
	&lt;li&gt;&apos;*&apos; nid is as default perm, and is not preferential. */&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;33.1.3 Parameters&lt;br/&gt;
Parameters for ... &lt;b&gt;What are these parameter for?&lt;/b&gt; ... are:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Name of the MDS service&lt;/li&gt;
	&lt;li&gt;Numeric UID&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;33.1.4 Data Structures&lt;br/&gt;
&lt;b&gt;Did you intend for this to replace what&apos;s currently in the manual, or be added to it?&lt;/b&gt;&lt;br/&gt;
 struct perm_downcall_data&lt;/p&gt;
{ __u64 pdd_nid; __u32 pdd_perm; __u32 pdd_padding; }

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

&lt;p&gt;struct identity_downcall_data {&lt;br/&gt;
__u32 idd_magic;&lt;br/&gt;
:&lt;br/&gt;
:&lt;br/&gt;
&lt;b&gt;Are the colons above supposed to be included?&lt;/b&gt;&lt;/p&gt;


&lt;p&gt;&lt;b&gt;Are the following edits to content OK? Should the last sentence be deleted? (don&apos;t worry about formatting - I&apos;ll take care of that)&lt;/b&gt;&lt;br/&gt;
33.2.2 Description&lt;br/&gt;
The identity upcall file contains the path to an executable that is invoked to resolve a numeric UID to a group membership list. This utility opens /proc/fs/lustre/mdt/&lt;/p&gt;
{mdtname}/identity_info, completes the identity_downcall_data data structure (see &quot;Data Structures&quot;) and writes the data to the  /proc/fs/lustre/mdt/$MDT/identity_info pseudo file. The data is persisted with lctl set_param mdt.{mdtname}
&lt;p&gt;.identity_info.&lt;/p&gt;</comment>
                            <comment id="61703" author="linda" created="Tue, 2 Jul 2013 21:52:06 +0000"  >&lt;p&gt;Changes are ready for review at &lt;a href=&quot;http://review.whamcloud.com/#/c/6608/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#/c/6608/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="66394" author="linda" created="Wed, 11 Sep 2013 19:22:48 +0000"  >&lt;p&gt;Changes approved and merged.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                    <customfield id="customfield_10003" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Business Value</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <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|hzvsr3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8563</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>