<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:55:56 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-12821] Replace the posix copytool with robinhood&apos;s generic copytool</title>
                <link>https://jira.whamcloud.com/browse/LU-12821</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;As discussed on LAD (with Andreas/Nathan), replacing the posix copytool by robinhood&apos;s generic copytool might be interesting - the robinhood isn&apos;t a good place for it to start with, and it looks like the posix copytool hasn&apos;t had much love.&lt;/p&gt;

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

&lt;p&gt;Robinhood&apos;s generic copytool can be found here:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/cea-hpc/robinhood/blob/master/src/tools/lhsmtool_cmd.c&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/cea-hpc/robinhood/blob/master/src/tools/lhsmtool_cmd.c&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Unfortunately it makes extensive use of glib, I&apos;d rather not pull that for lustre tools, so we&apos;re talking about a full rewrite... I had forgotten that point last week &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/sad.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;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;the most problematic might be the &lt;tt&gt;g_shell_parse_argv&lt;/tt&gt; function, that could probably be replaced by&#160;&lt;tt&gt;wordexp(3)&lt;/tt&gt;  though; even if I&apos;m not too keen of how overpowerful it is.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;the regexp replaces for {fd} etc are simple replaces we could do manually with &lt;tt&gt;strstr&lt;/tt&gt; and friends, but if we go with &lt;tt&gt;wordexp&lt;/tt&gt; we we could just say the syntax changed and define some $FD $FID and $CTDATA variables for wordexp to expand by itself - as long as people quote variables properly it does a good job at expanding as one would expect.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;the ini config file parsing... Could switch to yaml or something else we already have some of, I guess.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;g_thread/async queue: I&apos;d say single thread depopping events and forking as required is going to be just as efficient, and allow much simpler code... Do hsm-related actions (getting fid, ctdata etc) before fork to be safe, and slower stuff in child process (open &amp;amp; execve basically), and ct_fini upon receiving a sigchld (some eventfd for this, and polling on the kuc-&amp;gt;lk_rfd and that, perhaps? would rather not do more in signal handler, even if the single thread model assumes ct_fini will be fast...)&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;All in all that seems to be a much bigger work than I thought it&apos;d be last week, but it&apos;s not that much code either (&amp;lt;1kloc) so we might be able to make it happen somehow... I&apos;d still say new code would be faster than trying to adapt the current posix copytool so I wouldn&apos;t go that way, but happy to take opinions here, and this LU can be used as reminder for myself&lt;/p&gt;</description>
                <environment></environment>
        <key id="57031">LU-12821</key>
            <summary>Replace the posix copytool with robinhood&apos;s generic copytool</summary>
                <type id="4" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11310&amp;avatarType=issuetype">Improvement</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="martinetd">Dominique Martinet</assignee>
                                    <reporter username="cealustre">CEA</reporter>
                        <labels>
                            <label>HSM</label>
                    </labels>
                <created>Mon, 30 Sep 2019 09:08:04 +0000</created>
                <updated>Wed, 5 Aug 2020 13:27:55 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>10</watches>
                                                                            <comments>
                            <comment id="255587" author="pjones" created="Mon, 30 Sep 2019 12:44:30 +0000"  >&lt;p&gt;Dominique&lt;/p&gt;

&lt;p&gt;Do I understand correctly that you intend to work on this?&lt;/p&gt;

&lt;p&gt;Peter&lt;/p&gt;</comment>
                            <comment id="255589" author="martinetd" created="Mon, 30 Sep 2019 12:52:56 +0000"  >&lt;p&gt;Hi Peter,&lt;/p&gt;

&lt;p&gt;I don&apos;t think anyone else will, so yes, unless you have a keen interest and resources for it then by all means please do!&lt;br/&gt;
I&apos;ve just assigned the LU to myself. Comments on design before I start would be welcome though.&lt;/p&gt;

&lt;p&gt;I&apos;m actually on PTO for the next few weeks and this won&apos;t be a priority ever but as I said it shouldn&apos;t be too bad to do so it will happen eventually &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;</comment>
                            <comment id="255591" author="pjones" created="Mon, 30 Sep 2019 13:12:47 +0000"  >&lt;p&gt;I think that you getting back to this after your PTO is definitely the fastest path to it getting attention &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;</comment>
                            <comment id="256643" author="bevans" created="Fri, 18 Oct 2019 13:50:40 +0000"  >&lt;p&gt;Would this be bringing the Robinhood copytool into the Lustre codebase?&lt;/p&gt;</comment>
                            <comment id="256721" author="adilger" created="Mon, 21 Oct 2019 04:49:19 +0000"  >&lt;p&gt;Ben, that is my thought, yes. That would allow us to get rid of the old lhsm_posix copytool, and instead use the generic interface that allows using a variety of tools to do the data copy to different backends, instead of having to write a dedicated backend for each target type. &lt;/p&gt;

&lt;p&gt;Note that I haven&apos;t looked into the code in detail, but this is my understanding at least. &lt;/p&gt;</comment>
                            <comment id="256815" author="adilger" created="Tue, 22 Oct 2019 13:00:01 +0000"  >&lt;p&gt;Dominique, is there a man page or other documentation for the &lt;tt&gt;lhsmtool_cmd&lt;/tt&gt; tool? Looking briefly at the source, it seems that the only options for the command-line tool are to use &quot;{fid}&quot; and &quot;{fd}&quot;.&lt;/p&gt;
</comment>
                            <comment id="257062" author="martinetd" created="Fri, 25 Oct 2019 08:13:41 +0000"  >&lt;p&gt;Andreas, there is a man page - you can find it in .rst format here &lt;a href=&quot;https://github.com/cea-hpc/robinhood/blob/master/man/lhsmtool_cmd.rst&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/cea-hpc/robinhood/blob/master/man/lhsmtool_cmd.rst&lt;/a&gt; (the man page is in the git tree as well)&lt;/p&gt;

&lt;p&gt;As far as I understand it would also replaces &lt;/p&gt;
{ctdata}
&lt;p&gt;, but I am not sure how it is used and the man page does not speak about it.&lt;br/&gt;
Either way since the internals will have to be reworked we can adjust the options a bit as well, if you have any comment now is a good time &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;</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|i00ni7:</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>
                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>