<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:40:31 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-4194] kfree fails kernel paging request under ldlm_lock_put()</title>
                <link>https://jira.whamcloud.com/browse/LU-4194</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;We have a lustre client dedicated to the task of running robinhood.  This node is running lustre &lt;a href=&quot;https://github.com/chaos/lustre/tree/2.4.0-18chaos&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;2.4.0-18chaos&lt;/a&gt; and talking to our 55PB zfs-osd filesystem running a similar tag of lustre.&lt;/p&gt;

&lt;p&gt;The lustre client node that runs robinhood is hitting a &quot;BUG: unable to handle kernel paging request at &amp;lt;pointer&amp;gt;&quot; as a result of attempting to kfree() a bad pointer in lustre&apos;s ldlm_lock_put() function.&lt;/p&gt;

&lt;p&gt;There are two stacks that we have seen lead up to this, both ending in the same failed kfree.&lt;/p&gt;

&lt;p&gt;The first is from ldlm_bl_* threads:&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;cfs_free
ldlm_lock_put
ldlm_cli_cancel_list
ldlm_bl_thread_main
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The second was under a robinhood process:&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;cfs_free
ldlm_lock_put
ldlm_cli_cancel_list
ldlm_prep_elc_req
ldlm_prep_enqueue_req
mdc_intent_getattr_pack
mdc_enqueue
mdc_intent_lock
lmv_intent_lookup
lmv_intent_lock
ll_lookup_it
ll_lookup_nd
do_lookup
__link_path_walk
path_walk
do_path_lookup
user_path_at
vfs_fstatat
vfs_lstat
sys_newlstat
system_call_fastpath
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Note that it was the second call to ldlm_cli_cancel_list() in ldlm_prep_elc_req() that we were under.&lt;/p&gt;

&lt;p&gt;The problem is pretty reproducible on our system.  The client node usually crashes in less than an hour.  But I am not aware of how to reproduce this elsewhere.  We have other server clusters with robinhood instances on clients that are not crashing.&lt;/p&gt;</description>
                <environment>Lustre [2.4.0-18chaos|&lt;a href=&quot;https://github.com/chaos/lustre/tree/2.4.0-18chaos&quot;&gt;https://github.com/chaos/lustre/tree/2.4.0-18chaos&lt;/a&gt;] on the client.  Similar on the servers, using ZFS OSDs.</environment>
        <key id="21760">LU-4194</key>
            <summary>kfree fails kernel paging request under ldlm_lock_put()</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="bfaccini">Bruno Faccini</assignee>
                                    <reporter username="morrone">Christopher Morrone</reporter>
                        <labels>
                            <label>mn4</label>
                    </labels>
                <created>Thu, 31 Oct 2013 22:16:41 +0000</created>
                <updated>Fri, 7 Feb 2014 08:52:46 +0000</updated>
                            <resolved>Mon, 2 Dec 2013 17:07:57 +0000</resolved>
                                    <version>Lustre 2.4.1</version>
                                    <fixVersion>Lustre 2.6.0</fixVersion>
                    <fixVersion>Lustre 2.5.1</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>8</watches>
                                                                            <comments>
                            <comment id="70448" author="pjones" created="Thu, 31 Oct 2013 22:18:57 +0000"  >&lt;p&gt;Bruno&lt;/p&gt;

&lt;p&gt;Could you please help with this one?&lt;/p&gt;

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

&lt;p&gt;Peter&lt;/p&gt;</comment>
                            <comment id="70570" author="bfaccini" created="Sat, 2 Nov 2013 19:08:15 +0000"  >&lt;p&gt;Hello Chris,&lt;br/&gt;
Thanks to detail the context where this crash occurs. But more infos are required for sure.&lt;/p&gt;

&lt;p&gt;Since it is a crash you don&apos;t have the lustre_log available (BTW, do you know the debug_mask in place at the time of crash?), but do you know how to extract it from the crash-dump if any was taken ? Or can the dump be available ?&lt;/p&gt;

&lt;p&gt;By experience, I don&apos;t think problem comes from RobinHood itself but more due to its induced work-load. &lt;/p&gt;

&lt;p&gt;Also, do you use the &quot;Lustre-aware&quot; version of RH (ie, the one polling the Change-log) ?&lt;/p&gt;</comment>
                            <comment id="70646" author="morrone" created="Mon, 4 Nov 2013 19:17:31 +0000"  >&lt;p&gt;I can get the lustre log from the crash dump.  We have an extension to crash that enables that.  Unfortunately, I cannot share that log of the crash dump.  I will continue to investigate.&lt;/p&gt;

&lt;p&gt;Our installation of robinhood is, of course, employing Lustre changelogs.&lt;/p&gt;</comment>
                            <comment id="70707" author="bfaccini" created="Tue, 5 Nov 2013 13:32:22 +0000"  >&lt;p&gt;According to the different threads/stacks you reported to trigger the same BUG()/Oops seems that we may face a race during ELC (aka Early Lock Cancel) process. And again this is likely to be triggered due to RobinHood work-load.&lt;/p&gt;

&lt;p&gt;When I continue to investigate this way, you may try to run with ELC feature disabled (/proc/fs/lustre/ldlm/namespaces/*/early_lock_cancel = 0) for sometimes and see if this work-around ?&lt;/p&gt;

&lt;p&gt;Also, have you been able to find something of interest in lustre-log extracted from crash-dump ?&lt;/p&gt;</comment>
                            <comment id="71098" author="morrone" created="Fri, 8 Nov 2013 05:01:45 +0000"  >&lt;p&gt;From the lustre log I got the pointer to the lock in question (I think).  The l_lvb_* fields are interesting.  They are something like this:&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;l_lvb_type = LVB_T_NONE
l_lvb_len = 18464
l_lvb_data = 0xffffc90046218000
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Is it valid for there to be data there when the type is LVB_T_NONE?&lt;/p&gt;</comment>
                            <comment id="71296" author="morrone" created="Tue, 12 Nov 2013 01:44:13 +0000"  >&lt;p&gt;FYI, we still hit a kfree() failure with early_lock_cancel disabled.  Although it was a new call path that triggered it this time.  It failed under the ll_imp_inval thread something like this:&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;cfs_free
ldlm_lock_put
cleanup_resource
ldlm_resource_cleanup
cfs_hash_for_each_relax
cfs_hash_for_each_nolock
ldlm_namespace_cleanup
mdc_import_event
ptlrpc_invalidate_import
ptlrpc_invalidate_import_thread
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="71387" author="bfaccini" created="Wed, 13 Nov 2013 01:20:25 +0000"  >&lt;p&gt;So Chris, if I understand you correctly, the kfree() failure is not due to freeing the lock itself but more likely during invalid LVB freeing ?&lt;/p&gt;

&lt;p&gt;Have you been able to double-check it for the 2nd crash you indicated ?&lt;/p&gt;

&lt;p&gt;If it is, I agree, likely to be the case, the failing address (CR2 register in exception context of the Oops&apos;ing thread stack) should be around l_lvb_data pointer value.&lt;/p&gt;

&lt;p&gt;I will review the locations in the code where l_lvb_data is allocated/freed/initialized and see where this (l_lvb_data still referenced/non-null but freed ?) can happen.&lt;/p&gt;</comment>
                            <comment id="71420" author="bfaccini" created="Wed, 13 Nov 2013 15:07:29 +0000"  >&lt;p&gt;Chris, just to be sure I work on the right source code, to get it, I did :&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;git clone https://github.com/chaos/lustre.git
git checkout 2.4.0-18chaos
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;ist it ok ? I am asking because actually I don&apos;t find a path in source code that can lead to this situation.&lt;/p&gt;

&lt;p&gt;Also the size of 18464 bytes seems not usual for LVB &#8230; And LVB_T_NONE value is 0, so how were the others fields of the suspected ldlm_lock ? And did you find the same kind/range of values/pointers for the second crash-dump ?&lt;/p&gt;

&lt;p&gt;What is the answer of &quot;crash&quot; tool &quot;kmem&quot; sub-command when using the 0xffffc90046218000 pointer as the argument ?&lt;/p&gt;

&lt;p&gt;You indicate that BUG()/Oops occurs in kfree(), but is this what you learned from the error msgs in Console/crash-dump?&lt;/p&gt;

&lt;p&gt;Last, was there any msg of interest in the log/Console sometime before any crash ??&lt;/p&gt;

&lt;p&gt;I am sorry to ask you so many questions, but I try to consider all the possible scenarios.&lt;/p&gt;</comment>
                            <comment id="71440" author="bfaccini" created="Wed, 13 Nov 2013 17:50:28 +0000"  >&lt;p&gt;Humm, 18464 bytes could be something like a layout/LOV-EA for a stripe count of 768, does this seems reasonable with the config you use ?&lt;/p&gt;

&lt;p&gt;May be (got inputs from Johann and Jinshan about this possibility) the fact that there is LVB data with a type of LVB_T_NONE comes from layout_fetch(), but anyway this does not explain why the LVB reference can be wrong and this should come from some race &#8230;&lt;/p&gt;</comment>
                            <comment id="71449" author="morrone" created="Wed, 13 Nov 2013 18:53:31 +0000"  >&lt;blockquote&gt;&lt;p&gt;So Chris, if I understand you correctly, the kfree() failure is not due to freeing the lock itself but more likely during invalid LVB freeing ?&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Yes, I think it is failing here:&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;                        OBD_FREE(lock-&amp;gt;l_lvb_data, lock-&amp;gt;l_lvb_len);&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;blockquote&gt;&lt;p&gt;Chris, just to be sure I work on the right source code, to get it, I did &lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Yes, that tag from github is correct.  I&apos;m using -19chaos now, but that is just because I used the top of the tree in testing, not because I thought the minor differences between -18chaos and -19chaos would make a difference for this bug.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Humm, 18464 bytes could be something like a layout/LOV-EA for a stripe count of 768, does this seems reasonable with the config you use ?&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Yes, our OST (and OSS) count is exactly 768.&lt;/p&gt;</comment>
                            <comment id="71546" author="bfaccini" created="Thu, 14 Nov 2013 16:27:16 +0000"  >&lt;p&gt;Thanks for the answers/confirmations.&lt;/p&gt;

&lt;p&gt;My comment before about &quot;the fact that there is LVB data with a type of LVB_T_NONE comes from layout_fetch()&quot; is wrong and must be inverted, it can NOT come from layout_fetch() !!&#8230; but I think now can better come from un-expected/requested Layout embedding within LVB reply from Server, and this can happen at least in ldlm_handle_cp_callback().&lt;/p&gt;

&lt;p&gt;I am currently testing a fix for that.&lt;/p&gt;</comment>
                            <comment id="71606" author="morrone" created="Fri, 15 Nov 2013 04:15:01 +0000"  >&lt;p&gt;I&apos;m glad that you have a theory, because I&apos;m lost.&lt;/p&gt;

&lt;p&gt;In one of the recent tests, the kernel complains about a page fault 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;ffffeae380f57540&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The lustre log extracted from that crash dump tells me the the last message from the thread that hit the page fault Oops was doing the final ldlm_lock_put() on the ldlm_lock at this address:&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;ffff885e3d09ce00&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The lock-&amp;gt;l_lvb_data pointer is:&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;ffffc90046218000&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;When I use crash&apos;s &quot;rd&quot; command to dump the contents of the l_lvb_data buffer, it is indeed poisoned with OBD_FREE&apos;s repeated bytes of 0x5a.  The pointer to the buffer has not, on the other hand, been poisoned yet.&lt;/p&gt;

&lt;p&gt;Which all probably just confirms that we are in kfree() under cfs_free() under ldlm_lock_put() at the time of the Oops.&lt;/p&gt;

&lt;p&gt;But where does the page fault address of ffffeae380f57540 come from?  I find it in both the RAX and CR2 registers under cfs_free from crash&apos;s backtrace output.  RAX is a common register, and CR2 is the Page Fault Linear Address register, which makes sense because we Oops under the failed page fault.&lt;/p&gt;

&lt;p&gt;I just wish that I understood where kfree() was getting that particular address.&lt;/p&gt;
</comment>
                            <comment id="71608" author="morrone" created="Fri, 15 Nov 2013 05:22:22 +0000"  >&lt;p&gt;It looks like the backtrace below kfree() where we hit the page fault failure looks a little like this:&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;constant_test_bit
test_bit
virt_to_page
virt_to_head_page
virt_to_cache
kfree
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;At least crash claims that we are on the pointer dereference under constant_test_bit(), and looking forward and backwards a bit from kfree+0x173 seems to place us under virt_to_page().&lt;/p&gt;

&lt;p&gt;I started to try to calculate virt_to_page by hand, but that way lies madness.  I am just going to assume that:&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;virt_to_page(0xffffc90046218000) = 0xffffeae380f57540&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;All that doesn&apos;t really change anything.  But I feel somewhat enlightened. &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="71614" author="bfaccini" created="Fri, 15 Nov 2013 10:58:56 +0000"  >&lt;p&gt;Hello Chris, thanks again for this low-level VM debugging !&lt;/p&gt;

&lt;p&gt;I am not 100% sure but according to your last inputs, I think there is something contradictory here, how crash tool allows you to read poisoned memory meaning it was able to do virt2phys translation, when the corresponding page-table entry address resolution (to find corresponding/owning kmem-cache), itself using the same virt2phys translation to compute the page-frame number and find offset in page-table, fails ???&lt;/p&gt;

&lt;p&gt;Again, can you tell me what returns the &quot;kmem 0xffffc90046218000&quot; sub-command ? Does-it return a page-table entry address of 0xffffeae380f57540 ??&lt;/p&gt;</comment>
                            <comment id="71643" author="bfaccini" created="Fri, 15 Nov 2013 18:02:30 +0000"  >&lt;p&gt;And patch attempt to set l_lvb_type coherent is at &lt;a href=&quot;http://review.whamcloud.com/#/c/8270/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#/c/8270/&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="71653" author="morrone" created="Fri, 15 Nov 2013 18:42:48 +0000"  >&lt;blockquote&gt;&lt;p&gt;Again, can you tell me what returns the &quot;kmem 0xffffc90046218000&quot; sub-command ? Does-it return a page-table entry address of 0xffffeae380f57540 ??&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;No, it does not.  But I don&apos;t understand what I am seeing yet.  I&apos;ll transcribe it here and maybe you can help me:&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;crash&amp;gt; kmem 0xffffc90046218000
VM_STRUCT                  ADDRESS  RANGE                          SIZE
ffff885e3df9ed80      ffffc90046218000 - fffc9004621e000          24576

    PAGE              PHYSICAL       MAPPING          INDEX CNT  FLAGS
ffffea0149d59378    5e3d059000             0              0   1  c0000000000000
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="71696" author="morrone" created="Fri, 15 Nov 2013 23:34:15 +0000"  >&lt;p&gt;Brian Behlendorf provided me with a key insight:&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;#define VMALLOC_START    _AC(0xffffc90000000000, UL)
#define VMALLOC_END      _AC(0xffffe8ffffffffff, UL)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;So 0xffffc90046218000, the address that we are attempting to kfree, is in the vmalloc address range.&lt;/p&gt;

&lt;p&gt;And sure enough, it looks like ldlm_lock_put() is using OBD_FREE(), which is kfree-only.  However, there are a couple of functions, at least mdc_finish_enqueue() and ll_layout_fetch() that are allocating buffers using OBD_FREE_LARGE() and pointing to them from the ldlm_lock&apos;s l_lvb_data pointer.&lt;/p&gt;

&lt;p&gt;I am testing the following patch in which I attempt to use the alloc and free functions a bit more consistently.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://review.whamcloud.com/8298&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/8298&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am not entirely sure that we want to use OBD_ALLOC_LARGE all the time in ldlm_lock_create().  I don&apos;t know how often the buffers will be large enough to switch to vmalloc.  The fix could certainly be implemented other ways.  But this should suffice for testing.&lt;/p&gt;

&lt;p&gt;This code really needs some cleanup work.&lt;/p&gt;</comment>
                            <comment id="71714" author="morrone" created="Sat, 16 Nov 2013 01:52:29 +0000"  >&lt;p&gt;Robinhood has been running for two hours one the client with patch &lt;a href=&quot;http://review.whamcloud.com/8298&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/8298&lt;/a&gt; without a problem.  That looks like our problem.&lt;/p&gt;

&lt;p&gt;I will be away at SC&apos;13 all of next week.  If you could take over working on a finalized version of &lt;a href=&quot;http://review.whamcloud.com/8298&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/8298&lt;/a&gt; while I am gone, that would be great.&lt;/p&gt;</comment>
                            <comment id="71755" author="bfaccini" created="Mon, 18 Nov 2013 08:11:33 +0000"  >&lt;p&gt;Great job!! BTW, the fact it was an address from the VMALLOC range becomes obvious with the kmem sub-command translation.&lt;/p&gt;</comment>
                            <comment id="72617" author="pjones" created="Mon, 2 Dec 2013 17:07:57 +0000"  >&lt;p&gt;Landed for 2.6&lt;/p&gt;</comment>
                            <comment id="75115" author="simmonsja" created="Thu, 16 Jan 2014 18:45:14 +0000"  >&lt;p&gt;It looks like we just hit this bug with one of our 2.4 clients.&lt;/p&gt;</comment>
                            <comment id="76450" author="yujian" created="Fri, 7 Feb 2014 08:52:46 +0000"  >&lt;p&gt;Patches &lt;a href=&quot;http://review.whamcloud.com/8270&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/8270&lt;/a&gt; and &lt;a href=&quot;http://review.whamcloud.com/8298&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/8298&lt;/a&gt; were cherry-picked to Lustre b2_5 branch.&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|hzw7i7:</customfieldvalue>

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