<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:16:15 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-8288] handle error due to file with &quot;no stripe info&quot; rewritten before lfsck is run</title>
                <link>https://jira.whamcloud.com/browse/LU-8288</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>
&lt;p&gt;This is a followup on the filesystem recovery efforts from &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-8071&quot; title=&quot;lvcreate --snapshot of MDT hangs in ldiskfs_journal_start_sb&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-8071&quot;&gt;&lt;del&gt;LU-8071&lt;/del&gt;&lt;/a&gt;, in particular the comment:&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;If you think that the layout LFSCK made wrong decision when re-generated the
&quot;nagtest.toobig.stripes&quot; LOV EA, we need to make new patch to recover it. 
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;More than just making a wrong decision, lfsck can actually corrupt files when it is run.  The case is where the MDT loses stripe information, and then the file is rewritten (or appeneded to?), and then lfsck is run.&lt;/p&gt;

&lt;p&gt;In general, it would be good if lfsck can handle &quot;conflicts&quot; more gracefully.  I understand that it may not know which object is the right one, but it should not pick them arbitrarily since that can result in a mixed-data file.  Additionally, at the time when lfsck is run, it has information about what file an object is associated with, and that could be exposed to the user in the name of the file placed in lost+found.&lt;/p&gt;</description>
                <environment></environment>
        <key id="37617">LU-8288</key>
            <summary>handle error due to file with &quot;no stripe info&quot; rewritten before lfsck is run</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="yong.fan">nasf</assignee>
                                    <reporter username="ndauchy">Nathan Dauchy</reporter>
                        <labels>
                    </labels>
                <created>Wed, 15 Jun 2016 22:24:29 +0000</created>
                <updated>Mon, 29 Jan 2018 14:02:13 +0000</updated>
                            <resolved>Wed, 18 Jan 2017 20:39:52 +0000</resolved>
                                    <version>Lustre 2.7.0</version>
                                    <fixVersion>Lustre 2.10.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                            <comments>
                            <comment id="155862" author="ndauchy" created="Wed, 15 Jun 2016 22:28:36 +0000"  >&lt;p&gt;Here is a test case that shows one possible scenario where lfsck has a problem.  This is not exactly what happened in &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-8071&quot; title=&quot;lvcreate --snapshot of MDT hangs in ldiskfs_journal_start_sb&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-8071&quot;&gt;&lt;del&gt;LU-8071&lt;/del&gt;&lt;/a&gt;, but hopefully illustrates where things can go wrong in the &quot;conflict&quot; handling code.&lt;/p&gt;

&lt;p&gt;CLIENT step1:&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;# cd /mnt/lustre/client/lfscktest/
# ./make_lustre_test_file.sh stripedfile
setting stripe info for stripedfile
-rw-r--r-- 1 root root 3145728 Jun 15 12:37 stripedfile
# uniq -c stripedfile 
  49152 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.
# lfs getstripe stripedfile
stripedfile
lmm_stripe_count:   12
lmm_stripe_size:    262144
lmm_pattern:        1
lmm_layout_gen:     0
lmm_stripe_offset:  3
	obdidx		 objid		 objid		 group
	     3	        491076	      0x77e44	             0
	     4	        491044	      0x77e24	             0
	     5	        491076	      0x77e44	             0
	     0	        491012	      0x77e04	             0
	     1	        491044	      0x77e24	             0
	     8	        491076	      0x77e44	             0
	    11	        491076	      0x77e44	             0
	    10	        491076	      0x77e44	             0
	     7	        491012	      0x77e04	             0
	     2	        491044	      0x77e24	             0
	    13	        490948	      0x77dc4	             0
	    14	        491076	      0x77e44	             0
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;SERVER step2: (simulate lost attributes, from corrupt MDT and e2fsck recovery for example)&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;# umount /mnt/lustre/nbptest-mdt
# mount -t ldiskfs /dev/mapper/nbptest--vg-mdttest /mnt/lustre/nbptest-mdt
# cd /mnt/lustre/nbptest-mdt/ROOT/lfscktest/
# getfattr -d -m &quot;.*&quot; -e hex stripedfile
# setfattr -x &quot;trusted.link&quot; stripedfile
# setfattr -x &quot;trusted.lma&quot; stripedfile
# setfattr -x &quot;trusted.lov&quot; stripedfile
# cd /
# umount /mnt/lustre/nbptest-mdt
# mount -t lustre /dev/mapper/nbptest--vg-mdttest /mnt/lustre/nbptest-mdt
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;CLIENT step3:&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;# ls -l stripedfile 
-rw-r--r-- 1 root root 0 Jun 15 12:37 stripedfile
# lfs getstripe stripedfile
stripedfile has no stripe info
# ./make_lustre_test_file.sh stripedfile
file exists with stripe count of &apos;&apos;, overwriting
-rw-r--r-- 1 root root 3145728 Jun 15 12:40 stripedfile
# uniq -c stripedfile
  49152 .zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA9876543210
# lfs getstripe stripedfile
stripedfile
lmm_stripe_count:   1
lmm_stripe_size:    1048576
lmm_pattern:        1
lmm_layout_gen:     0
lmm_stripe_offset:  0
	obdidx		 objid		 objid		 group
	     0	        491044	      0x77e24	             0
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;SERVER step4:&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;# lctl lfsck_start -A -M nbptest-MDT0000 -c on -C on -o
Started LFSCK on the device nbptest-MDT0000: scrub layout namespace
# lctl get_param -n osd-ldiskfs.*.oi_scrub | grep status
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;CLIENT step5:&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;# ls -l stripedfile 
-rw-r--r-- 1 root root 3407872 Jun 15 12:40 stripedfile
# uniq -c stripedfile
uniq: error reading stripedfile
# lfs getstripe stripedfile 
stripedfile
lmm_stripe_count:   4
lmm_stripe_size:    1048576
lmm_pattern:        40000001
lmm_layout_gen:     2
lmm_stripe_offset:  0
	obdidx		 objid		 objid		 group
	     0	        491045	      0x77e25	             0
	     0	             0	            0	             0
	     0	             0	            0	             0
	     0	        491012	      0x77e04	             0

# md5sum stripedfile
md5sum: stripedfile: Input/output error

# cd /mnt/lustre/client/.lustre/lost+found/MDT0000/
# ls -la
total 132
drwx------+ 3 root root 126976 Jun 15 12:33 .
dr-x------+ 3 root root   4096 Jun 10 13:41 ..
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;SERVER step6:  (lfsck workaround in place of &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-8218&quot; title=&quot;lfsck not able to recover files lost from MDT&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-8218&quot;&gt;&lt;del&gt;LU-8218&lt;/del&gt;&lt;/a&gt;)&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;# umount /mnt/lustre/nbptest-mdt
# mount -t ldiskfs /dev/mapper/nbptest--vg-mdttest /mnt/lustre/nbptest-mdt
# rm -f /mnt/lustre/nbptest-mdt/oi.16.*
# umount /mnt/lustre/nbptest-mdt
# mount -t lustre /dev/mapper/nbptest--vg-mdttest /mnt/lustre/nbptest-mdt
# lctl lfsck_start -A -M nbptest-MDT0000 -c on -C on -o
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;CLIENT step7:&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;# cd /mnt/lustre/client/.lustre/lost+found/MDT0000/
# ls -l
total 5888
-r-------- 1 root root  3145728 Jun 15 12:49 [0x200002b10:0x4:0x0]-[0x2000032e0:0x4e:0x0]-0-C-0
-r-------- 1 root root 11796480 Jun 15 12:49 [0x2000032e0:0x4e:0x0]-R-0

# head -n 1 *
==&amp;gt; [0x200002b10:0x4:0x0]-[0x2000032e0:0x4e:0x0]-0-C-0 &amp;lt;==
.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA9876543210

==&amp;gt; [0x2000032e0:0x4e:0x0]-R-0 &amp;lt;==
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="155863" author="ndauchy" created="Wed, 15 Jun 2016 22:29:51 +0000"  >&lt;p&gt;The test file was created and rewritten with...&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;#!/bin/bash

size=262144
count=12

if [ -z &quot;$1&quot; ]; then
    echo &quot;usage: $0 &amp;lt;filename&amp;gt;&quot;
    exit
fi
file=$1

if [ -e &quot;$file&quot; ]; then
    c=$(lfs getstripe $file | grep stripe_count | awk &apos;{print $2}&apos;)
    echo &quot;file exists with stripe count of &apos;$c&apos;, overwriting&quot;
    string=&quot;.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA9876543210&quot;
else
    echo &quot;setting stripe info for $file&quot;
    lfs setstripe -S $size -c $count $file
    string=&quot;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.&quot;
fi
sizeof=$(echo &quot;$string&quot; | wc -c)
repeats=$(( size * count / sizeof ))

for i in $(seq 1 $repeats); do
    echo $string
done &amp;gt; $file
ls -l $file
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="155877" author="yong.fan" created="Thu, 16 Jun 2016 03:39:39 +0000"  >&lt;p&gt;The layout LFSCK logic is that:&lt;br/&gt;
1) If the MDT-object&apos;s LOV EA lost, then the layout will re-generate the LOV EA according to the found orphan OST-objects. Under such case, it will not create new OST-object to reference.&lt;br/&gt;
2) If the MDT-object&apos;s LOV EA corrupted as to contains some invalid LOV EA information, then before the layout LFSCK finding out the right OST-objects (in the 2nd phase scanning), it will check the corrupted LOV EA firstly (in the 1st phase scanning , and at that time, the layout LFSCK does not know the LOV EA is corrupted, instead, it will think that the OST-object (referenced by the corrupted LOV EA) is lost, and then, depends on the LFSCK start option (&quot;-c&quot;), the layout will create the &apos;lost&apos; OST-object or give out some warning message. Here we discuss the case of &quot;-c&quot; specified, means the layout LFSCK creates the &quot;lost&quot; OST-object.&lt;br/&gt;
2.1) If nobody modified such new created OST-object before the layout LFSCK finding out the real orphan OST-object, then the layout LFSCK will drop the new created OST-object and replace it with the real orphan OST-object. Otherwise,&lt;br/&gt;
2.2) Since the new created OST-object contains new data, we cannot drop it, to make the user to realise that there were some conflict, the layout LFSCK will generate new file under .lustre/lost+found with the name ${FID}-${infix}&amp;#45;${conflict_version}, that contains the old data.&lt;/p&gt;</comment>
                            <comment id="155951" author="pjones" created="Thu, 16 Jun 2016 17:20:16 +0000"  >&lt;p&gt;Fan Yong&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="156028" author="yong.fan" created="Fri, 17 Jun 2016 02:44:57 +0000"  >&lt;blockquote&gt;
&lt;p&gt;2.1) If nobody modified such new created OST-object before the layout LFSCK finding out the real orphan OST-object, then the layout LFSCK will drop the new created OST-object and replace it with the real orphan OST-object. Otherwise,&lt;br/&gt;
2.2) Since the new created OST-object contains new data, we cannot drop it, to make the user to realise that there were some conflict, the layout LFSCK will generate new file under .lustre/lost+found with the name $FID-$infix-$conflict_version, that contains the old data.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;In fact, the key issue is that during the layout LFSCK 1st phase scanning (orphan OST-object will be detected in the 2nd phase scanning), if it finds that some LOV EA references a non-existing OST-object, it does not know exactly whether it is the OST-object lost or the LOV EA corrupted. If it is the former case, creating the lost OST-object can make the system to be available as fast as possible; but if it is the latter case, correcting the LOV EA is better choice. So two possible solutions for that:&lt;/p&gt;

&lt;p&gt;1) Postpone the layout LFSCK preparing decision for dangling reference case until orphan OST-objects handled properly. That means the 3rd phase scanning introduced, that will much affect the whole LFSCK framework.&lt;/p&gt;

&lt;p&gt;2) Never re-create the lost OST-object.&lt;/p&gt;

&lt;p&gt;Andreas, how do you think for that ?&lt;/p&gt;</comment>
                            <comment id="156030" author="adilger" created="Fri, 17 Jun 2016 03:37:15 +0000"  >&lt;p&gt;The problem that was seen in &quot;CLIENT step5&quot; could be fixed with the fidea changes being implemented for PFL Phase 3a. In particular, the current fidea does not store the total number of stripes in the layout, so old stripes found on the OST (e.g. with &quot;stripe_idx = 4&quot; in this case) would currently be added to the file layout and the stripe count increased.  With the new PFL fidea the total stripe count is also saved with each OST object, which could be used in this case to determine whether the orphan OST objects are part of the same layout or not.&lt;/p&gt;

&lt;p&gt;It may be in the common case that the use of default stripe counts means the total stripe count is also the same between multiple sets of orphan OST objects.  However, I don&apos;t think that would be a problem.  It would avoid the case seen here where stale objects with a higher stripe index are added to the recreated file with fewer stripes.  If the file was recreated, then all objects should be present, so if old orphan objects have the same stripe count they will not be added to the layout and be put into lost+found instead.  If the old orphan objects have a different stripe count then they should not be added to the existing file.&lt;/p&gt;

&lt;p&gt;I&apos;m also a bit confused why the &quot;CLIENT step5&quot; layout was not reconstructed with all 12 of the original stripes?  Was lfsck still running on the other OSTs?  Why were there two objects allocated on OST index 0, and why was a &lt;em&gt;new&lt;/em&gt; object allocated on OST index 0 (objid 491045) in place of the manually recreated object (objid 491044)?&lt;/p&gt;
</comment>
                            <comment id="156043" author="yong.fan" created="Fri, 17 Jun 2016 14:23:03 +0000"  >&lt;blockquote&gt;
&lt;p&gt;I&apos;m also a bit confused why the &quot;CLIENT step5&quot; layout was not reconstructed with all 12 of the original stripes? Was lfsck still running on the other OSTs?&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Only the OST-object that has ever been modified (write/setattr) after creation has PFID EA, then the LFSCK will handle it as orphan if no MDT-object reference it. In this case, I am not sure whether the original 12 tripes all have been modified before MDT-object LOV EA removed.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Why were there two objects allocated on OST index 0, and why was a new object allocated on OST index 0 (objid 491045) in place of the manually recreated &lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;That is also my concern. Currently, for a given striped file, it has at most one OST-object on the specified OST. In this case, I am afraid that the wrong OST-object is written?&lt;/p&gt;</comment>
                            <comment id="160170" author="gerrit" created="Thu, 28 Jul 2016 12:10:35 +0000"  >&lt;p&gt;Fan Yong (fan.yong@intel.com) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/21562&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/21562&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-8288&quot; title=&quot;handle error due to file with &amp;quot;no stripe info&amp;quot; rewritten before lfsck is run&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-8288&quot;&gt;&lt;del&gt;LU-8288&lt;/del&gt;&lt;/a&gt; lfsck: handle dangling LOV EA reference&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 61dc2ac65258fceb30bf0549e76b8ff7eace2d29&lt;/p&gt;</comment>
                            <comment id="165395" author="ndauchy" created="Thu, 8 Sep 2016 19:34:57 +0000"  >&lt;p&gt;It looks like there were many iterations on this patch, but it is ready for final review and then landing.  Please confirm.&lt;/p&gt;

&lt;p&gt;Also, once the patch is finalized, we will need a backport to the 2.7 FE branch as well as master.  Thanks!&lt;/p&gt;</comment>
                            <comment id="165404" author="pjones" created="Thu, 8 Sep 2016 20:51:05 +0000"  >&lt;p&gt;That matches my understanding Nathan&lt;/p&gt;</comment>
                            <comment id="167442" author="adilger" created="Tue, 27 Sep 2016 10:27:02 +0000"  >&lt;p&gt;Per earlier discussion in this ticket, it would be worthwhile to backport the PFL patches to increase the MDT and OST inode size, as well as the patch to improve the &lt;tt&gt;fid&lt;/tt&gt; xattr to store the total stripe count and stripe size on each OST object.  That would allow LFSCK to reconstruct the layout properly, even in the case where some OST objects are totally missing.  Having clients send this information with each write will ensure that this information is stored on each OST object for later use if needed.&lt;/p&gt;</comment>
                            <comment id="181204" author="gerrit" created="Wed, 18 Jan 2017 18:59:36 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/21562/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/21562/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-8288&quot; title=&quot;handle error due to file with &amp;quot;no stripe info&amp;quot; rewritten before lfsck is run&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-8288&quot;&gt;&lt;del&gt;LU-8288&lt;/del&gt;&lt;/a&gt; lfsck: handle dangling LOV EA reference&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 17cc912fd5b40965d14a89a268cbf2d63b2fe21b&lt;/p&gt;</comment>
                            <comment id="181224" author="jaylan" created="Wed, 18 Jan 2017 19:49:38 +0000"  >&lt;p&gt;Could you port this patch to b2_7_fe and land to b2_9_fe? Thanks!&lt;/p&gt;</comment>
                            <comment id="181237" author="mdiep" created="Wed, 18 Jan 2017 20:39:52 +0000"  >&lt;p&gt;Landed for 2.10&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="23109">LU-4615</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </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|hzyetj:</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>