<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:55:27 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-5896] lfs: can&apos;t release a migrated file</title>
                <link>https://jira.whamcloud.com/browse/LU-5896</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;After a file has been archived and migrated, it&apos;s not possible to release it.&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;# dd if=/dev/urandom of=rand1 bs=4096 count=1024
...
# lfs hsm_archive rand1
# lfs migrate -o 0 -S 65536 rand1
# lfs hsm_release rand1
Cannot send HSM request (use of rand1): Device or resource busy
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The file content is still accessible, and its hsm state is correct.&lt;/p&gt;</description>
                <environment></environment>
        <key id="27532">LU-5896</key>
            <summary>lfs: can&apos;t release a migrated file</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="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="ablagodarenko">Artem Blagodarenko</assignee>
                                    <reporter username="fzago">Frank Zago</reporter>
                        <labels>
                            <label>CEA</label>
                    </labels>
                <created>Mon, 10 Nov 2014 21:11:38 +0000</created>
                <updated>Thu, 30 Nov 2023 16:44:45 +0000</updated>
                                            <version>Upstream</version>
                                                        <due></due>
                            <votes>2</votes>
                                    <watches>17</watches>
                                                                            <comments>
                            <comment id="206231" author="hdoreau" created="Thu, 24 Aug 2017 11:15:08 +0000"  >&lt;p&gt;What happens here is a data version mismatch. The error originally returned by the MDS is EPERM (in mdt_hsm_release) but is translated into EBUSY by ll_close_inode_openhandle.&lt;/p&gt;

&lt;p&gt;I am unsure how to fix it best. I can think of different approaches:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;A brutal workaround is to mark files as dirty after migration, which sucks since we know that data have not changed... Whoever hits this bug (and is willing to re-archive files) can already issue `lfs set_state --dirty &amp;lt;filename&amp;gt;&apos; to fix things up;&lt;/li&gt;
	&lt;li&gt;Remove the data version check in hsm release? The dirty flag and file lease should allow that but I am concerned there may exist crash/recov cases where doing so is unsafe. A mistake in this area could easily result in data corruption / loss;&lt;/li&gt;
	&lt;li&gt;Add an ioctl to force the hsm data version on archived files.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="241593" author="bougetq" created="Fri, 8 Feb 2019 15:21:33 +0000"  >&lt;p&gt;Henri no longer works on this.&lt;/p&gt;

&lt;p&gt;I will try to publish a fix, but I am not familiar with the affected code base.&lt;br/&gt;
If anyone is willing to help, I would really appreciate it.&lt;/p&gt;

&lt;p&gt;Currently the approach I am taking is to have &lt;tt&gt;lfs migrate&lt;/tt&gt; send both the initial and final dataversions of the migrated file when it commits the migration (with either &lt;tt&gt;llapi_fswap_layouts()&lt;/tt&gt; / &lt;tt&gt;llapi_fswap_layouts_grouplock()&lt;/tt&gt;).&lt;/p&gt;

&lt;p&gt;The MDS can then compare the initial dataversion with the one stored in the HSM attributes. If it is the same, it will update the old value with the new one; otherwise (HSM&apos;s dirty bit should already be set, but in case it is not) it will set HSM&apos;s dirty bit.&lt;/p&gt;</comment>
                            <comment id="244652" author="bougetq" created="Tue, 26 Mar 2019 09:15:29 +0000"  >&lt;p&gt;A little update,&lt;/p&gt;

&lt;p&gt;I have not gotten around to implement the fix suggested in my previous post. I think I need to add a field to the SWAP_LAYOUT RPC and I was warned this is not a trivial change.&lt;/p&gt;

&lt;p&gt;In the meantime, I have re-implemented lfs migrate to forge the HSM xattr on the volatile file right before it is swapped. This seems to work.&lt;/p&gt;

&lt;p&gt;There are several shortcomings to this approach:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;forging the HSM xattr is not normally possible upstream (we already have a patch in production to allow just that) ;&lt;/li&gt;
	&lt;li&gt;even with our patch, only root can forge the HSM xattr (as it is a &quot;trusted&quot; xattr) ;&lt;/li&gt;
	&lt;li&gt;I did not re-implement every feature of lfs migrate (only &lt;tt&gt;lfs_migrate()&lt;/tt&gt; and only the blocking mode) ;&lt;/li&gt;
	&lt;li&gt;any user still using lfs migrate (instead of my re-implemented version) will hit this LU.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;For now though, this is probably what we will use in production. At least until we can produce an upstream-able solution.&lt;/p&gt;</comment>
                            <comment id="248136" author="gerrit" created="Fri, 31 May 2019 18:22:00 +0000"  >&lt;p&gt;Ben Evans (bevans@cray.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/35022&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/35022&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5896&quot; title=&quot;lfs: can&amp;#39;t release a migrated file&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5896&quot;&gt;LU-5896&lt;/a&gt; hsm: can&apos;t remove a migrated file&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: d065772a16d1183cd41f013468ac88d73d4c4047&lt;/p&gt;</comment>
                            <comment id="248463" author="bougetq" created="Wed, 5 Jun 2019 16:45:12 +0000"  >&lt;p&gt;I can confirm that there are not enough fields to hold two &lt;tt&gt;data_versions&lt;/tt&gt; in the &lt;tt&gt;MDS_SWAP_LAYOUTS&lt;/tt&gt; RPC. So we have to add them somewher. I think &lt;tt&gt;struct mdc_swap_layouts&lt;/tt&gt; &#8211; being the payload of the RPC &#8211; is a good candidate:&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;
/** layout swap request structure
 * fid1 and fid2 are in mdt_body
 */
struct mdc_swap_layouts {
        __u64   msl_flags;
#&lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; TODO
        __u64   msl_dvs[2];
#endif
};
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;On the userspace side, the struct passed to the &lt;tt&gt;LL_IOC_LOV_SWAP_LAYOUTS&lt;/tt&gt; ioctl already has the required fields:&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;
struct lustre_swap_layouts {
        __u64   sl_flags;
        __u32   sl_fd;
        __u32   sl_fd;
        __u64   sl_dv1;
        __u64   sl_dv2;
};
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;There also needs to be a new flag, something like: &lt;tt&gt;SWAP_LAYOUTS_SAME_DATA&lt;/tt&gt; to indicate to the MDS that both layouts point at the same data and the HSM xattrs should be updated accordingly. When this flag is used, it should be passed down to the MDS, as well as both &lt;tt&gt;data_versions&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;If the flag is not used, the new default should be to swap the HSM xattrs. There currently is a flag for that (which only the MDT code uses), but even without it, there really is no reason not to swap them: the HSM xattr is part of a file&apos;s layout.&lt;/p&gt;

&lt;p&gt;After that, updating &lt;tt&gt;lfs_migrate()&lt;/tt&gt; should be straightforward.&lt;/p&gt;

&lt;p&gt;&#8212;&lt;/p&gt;

&lt;p&gt;This fix is not fully satisfying though. Swapping layouts should really just... &lt;em&gt;swap layouts&lt;/em&gt;. If there is information that is tied to the layout (eg. HSM xattr), it should also be swapped, shouldn&apos;t it? So why am I proposing something that goes the opposite way? (ie. keeping the HSM xattr in some circumstances and update it in-place)&lt;/p&gt;

&lt;p&gt;Well, it all comes down to how HSM&apos;s security works. The HSM xattr lives under the &lt;tt&gt;trusted&lt;/tt&gt; xattr prefix. That means that only root is able to modify it &lt;span class=&quot;error&quot;&gt;&amp;#91;*&amp;#93;&lt;/span&gt;. But any user can run a layout swap (on the condition that they have write access to both files), and by extension a file migration. This feels right, but it is simply incompatible with how HSM works. Ideally, to migrat{{e&#160;}}&lt;tt&gt;file.txt&lt;/tt&gt;&lt;tt&gt;}}, one woud create a volatile file; copy another {{file.txt&lt;/tt&gt;&apos;s data into the volatile; &lt;b&gt;set the HSM xattr of the volatile&lt;/b&gt;; and swap &lt;tt&gt;file.txt&lt;/tt&gt;&apos;s layout with the volatile&apos;s. Not possible.&lt;/p&gt;

&lt;p&gt;Personnally, I do not understand why users are not allowed to tell Lustre &quot;there is a copy of &amp;lt;this&amp;gt; file &amp;lt;here&amp;gt;&quot; (read &quot;&amp;lt;this&amp;gt; file&quot; as &quot;&amp;lt;this#1&amp;gt; version of &amp;lt;this#2&amp;gt; file&quot;). I mean, I get that it would open all sorts of scary doors, like &quot;What if &amp;lt;here&amp;gt; points at data the user is not supposed to have access to?&quot;. But that really should be solved by copytools, or some piece of software between Lustre and whatever &amp;lt;here&amp;gt; is. I feel like it was convenient not to have to care about this at first, but now it just comes back to bite us.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;*&amp;#93;&lt;/span&gt; actually, not even root can edit the HSM xattr, Lustre silently ignores setxattr operations on &lt;tt&gt;trusted.hsm&lt;/tt&gt;, but that could be changed, so it does not really matter.&lt;/p&gt;

&lt;p&gt;&#8212;&lt;/p&gt;

&lt;p&gt;As Ben pointed out on gerrit, sites that have already migrated archived files are still going to need to &quot;repair&quot; the&#160;&quot;broken&quot; HSM xattrs. I suggest forcibly setting the dirty bit (with&#160;&lt;tt&gt;lfs hsm_set --dirty &amp;lt;file&amp;gt;&lt;/tt&gt;) and schedule ARCHIVE requests on the concerned files (or let the policy engine schedule those if it can).&lt;/p&gt;

&lt;p&gt;There are probably more efficient ways to do this though. Ways that would not involve re-archiving&#160;&lt;em&gt;a lot of data&lt;/em&gt;.&lt;/p&gt;</comment>
                            <comment id="256828" author="gerrit" created="Tue, 22 Oct 2019 14:12:25 +0000"  >&lt;p&gt;Artem Blagodarenko (c17828@cray.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/36548&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/36548&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5896&quot; title=&quot;lfs: can&amp;#39;t release a migrated file&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5896&quot;&gt;LU-5896&lt;/a&gt; tests: archive-migrate-release hsm test&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: f93b23ec03335fb45d2adc6db684d56f9fbb92e3&lt;/p&gt;</comment>
                            <comment id="256829" author="gerrit" created="Tue, 22 Oct 2019 14:12:26 +0000"  >&lt;p&gt;Artem Blagodarenko (c17828@cray.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/36549&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/36549&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5896&quot; title=&quot;lfs: can&amp;#39;t release a migrated file&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5896&quot;&gt;LU-5896&lt;/a&gt; hsm: update data version if layout is changed&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 75135d80e76454724b08b0b38d989845f4065e8a&lt;/p&gt;</comment>
                            <comment id="259003" author="qian_wc" created="Sun, 1 Dec 2019 03:21:42 +0000"  >&lt;p&gt;When&lt;br/&gt;
swap_layouts o1 o2&#65292;&lt;br/&gt;
we must consider the following cases:&lt;br/&gt;
1. migrate&lt;br/&gt;
we know that the data content in o1 and o2 are same,&lt;br/&gt;
then it needs to indicate it via a flags SWAP_LAYOUTS_DATA_MIGRATE&#65292;&lt;br/&gt;
then when MDT know the swapping layouts is for data migration, it will do as following:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;if o1 has been archived, check whether whether the archive is dirty (HS_DIRTY).&lt;br/&gt;
  if so, do nothing to the HSM attrs for o1;&lt;br/&gt;
  otherwise, update the data version in HSM attrs of o1 with the data version of o2.&lt;/li&gt;
	&lt;li&gt;if o2 has been archived, check whether whether the archive is dirty (HS_DIRTY).&lt;br/&gt;
  if so, do nothing to the HSM attrs for o2;&lt;br/&gt;
  otherwise, update the data version in HSM attrs of o2 with the data version of o1.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;2. normal layout swap:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;lfs swap_layouts o1 o2&lt;br/&gt;
As we don&apos;t know whether the content of o1 and o2 are same, thus on MDT:&lt;/li&gt;
&lt;/ol&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;if o1 has been archived, check whether whether the archive is dirty (HS_DIRTY).&lt;br/&gt;
  if so, do nothing to the HSM attrs for o1;&lt;br/&gt;
  otherwise, update the state with HS_DIRTY for HSM attrs of o1.&lt;/li&gt;
	&lt;li&gt;if o2 has been archived, check whether whether the archive is dirty (HS_DIRTY).&lt;br/&gt;
  if so, do nothing to the HSM attrs for o2;&lt;br/&gt;
  otherwise, update the state with HS_DIRTY for HSM attrs of o1.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;3. data restore&lt;br/&gt;
MDT will swap the layouts after finished HSM data restore.&lt;br/&gt;
SWAP_LAYOUTS_MDS_HSM&lt;br/&gt;
do as it what does in Lustre currently.&lt;/p&gt;

&lt;p&gt;All these modification must be in MDD layout in a transaction. Otherwise, it may result in an inconsistence. &lt;/p&gt;


</comment>
                            <comment id="259004" author="qian_wc" created="Sun, 1 Dec 2019 03:40:48 +0000"  >&lt;p&gt;But I am worried that an extra flag SWAP_LAYOUTS_DATA_MIGRATE will be used maliciously by a user...&lt;/p&gt;

&lt;p&gt;if the content of o1 and o2 are not same, then after SWAP_LAYOUTS_DATA_MIGRATE, it would wrongly think the data in Lustre after swapped is same as in HSM archive...&lt;/p&gt;

&lt;p&gt;To avoid malicious using of SWAP_LAYOUTS_DATA_MIFRATE flag when migrate a file, it would better to move the dat copy phase migrate_copy_data() in migrate_block() to the kernel which can borrow the code pcc_data_copy() in PCC, thus we can ensure the content of two files are exactly same.&lt;/p&gt;</comment>
                            <comment id="259005" author="qian_wc" created="Sun, 1 Dec 2019 03:52:37 +0000"  >&lt;p&gt;&quot;&lt;br/&gt;
If the flag is not used, the new default should be to swap the HSM xattrs. There currently is a flag for that (which only the MDT code uses), but even without it, there really is no reason not to swap them: the HSM xattr is part of a file&apos;s layout.&lt;br/&gt;
&quot;&lt;br/&gt;
-------------------&lt;br/&gt;
We can not simply swap the HSM xattrs, as the HSM copy is naming and locating according to FID.&lt;br/&gt;
Only swapping the HSM attrs, will lead the file points to the wrong HSM copy...&lt;br/&gt;
Maybe we need to store the correct FID in HSM xattrs also which may not same as the FID of the file, but the one contain the consistent data in HSM archive with the data in Lustre.&lt;/p&gt;

&lt;p&gt;So if the extra SWAP_LAYOUTS_DATA_MIGRATE flag is Problematic, maybe storing the FID (via it we can locate the HSM copy in archive) into HSM attrs is a solution.&lt;br/&gt;
But this may need to make lots of change for the HSM code...&lt;/p&gt;</comment>
                            <comment id="259026" author="bevans" created="Mon, 2 Dec 2019 14:47:07 +0000"  >&lt;p&gt;HSM solves this by calling ll_data_version to get the current data_version of the fid (see ll_ioc_copy_start)&lt;/p&gt;

&lt;p&gt;There&apos;s no reason we couldn&apos;t do a similar thing in the kernel layer for migrate.&#160; Get the currrent dv, compare it to the version stored in the HSM xattr.&#160; If they&apos;re the same, perform the layout swap and update the xattr.&#160; If they&apos;re different, perform the layout swap, and make sure to mark the xattr with the DIRTY flag, if it&apos;s not already.&lt;/p&gt;</comment>
                            <comment id="259686" author="bougetq" created="Thu, 12 Dec 2019 13:01:36 +0000"  >&lt;blockquote&gt;&lt;p&gt;But I am worried that an extra flag SWAP_LAYOUTS_DATA_MIGRATE will be used maliciously by a user...&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;It cannot really be that malicious. To be able to do a &lt;tt&gt;swap_layout&lt;/tt&gt;, one has to have write-access to the file. At that point, you can just truncate the file to 0 or overwrite it.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;We can not simply swap the HSM xattrs, as the HSM copy is naming and locating according to FID. (...)&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;The archived copy does not need to be named using the file&apos;s FID in Lustre. That is just what the lustre copytool does.&lt;br/&gt;
 I also feel like you think migrating a file changes its FID. It does not.&lt;/p&gt;</comment>
                            <comment id="351513" author="eaujames" created="Wed, 2 Nov 2022 14:57:32 +0000"  >&lt;p&gt;Hi,&lt;/p&gt;

&lt;p&gt;Is there anyone maintaining the &lt;a href=&quot;https://review.whamcloud.com/36549&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/36549&lt;/a&gt; or actively developing something for this issue (or for the non-blocking case &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13048&quot; title=&quot;Non-blocking migrate: Unable to release file from disk (Cannot send HSM request)&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13048&quot;&gt;LU-13048&lt;/a&gt;) ?&lt;br/&gt;
If not, the CEA, would like to continue the development for the blocking and the non-blocking version.&lt;/p&gt;

&lt;p&gt;This become a blocking issue for the CEA. Without a workaround, this forces to re-archive every migrated files (not acceptable on filesystem mixing SSD and rotational pools with HSM).&lt;/p&gt;</comment>
                            <comment id="356032" author="gerrit" created="Mon, 12 Dec 2022 12:53:43 +0000"  >&lt;p&gt;&quot;Guillaume Courrier &amp;lt;guillaume.courrier@cea.fr&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49377&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49377&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5896&quot; title=&quot;lfs: can&amp;#39;t release a migrated file&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5896&quot;&gt;LU-5896&lt;/a&gt;: allow release after blocking migrations&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 041adca0986b27cb8ce905343f9bf95a068ddbd0&lt;/p&gt;</comment>
                            <comment id="394993" author="gerrit" created="Thu, 30 Nov 2023 16:44:45 +0000"  >&lt;p&gt;&quot;Etienne AUJAMES &amp;lt;eaujames@ddn.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/53296&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/53296&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5896&quot; title=&quot;lfs: can&amp;#39;t release a migrated file&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5896&quot;&gt;LU-5896&lt;/a&gt; mdt: allow release after blocking migrations&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: b2_15&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 2efedbd708390c745ef0a61dee8943a293fde429&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="57541">LU-13048</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|hzx0mn:</customfieldvalue>

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