<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:29:51 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-16769] localflock can perform really badly</title>
                <link>https://jira.whamcloud.com/browse/LU-16769</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Running 2.14.0_2_gb280f22 on ubuntu 18.04&lt;/p&gt;

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

&lt;p&gt;Mounting lustre with localflock can seriously hurt lustre and non lustre performance.&lt;/p&gt;

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

&lt;p&gt;We noticed our compute were sometimes hitting very bad performance even when lustre was not in the path.&lt;/p&gt;

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

&lt;p&gt;This is an strace of ls /&lt;/p&gt;

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

&lt;p&gt;08:30:54 execve(&quot;/bin/ls&quot;, &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;quot;ls&amp;quot;&amp;#93;&lt;/span&gt;, 0x7fff5a2ab698 / 88 vars /) = 0&lt;br/&gt;
08:30:54 brk(NULL) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;= 0x55fa6a4e9000&lt;br/&gt;
08:30:54 access(&quot;/etc/ld.so.nohwcap&quot;, F_OK) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fae19898000&lt;br/&gt;
08:30:54 access(&quot;/etc/ld.so.preload&quot;, R_OK) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 openat(AT_FDCWD, &quot;/usr/lib/oracle/12.1/client64/lib/tls/haswell/avx512_1/x86_64/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 stat(&quot;/usr/lib/oracle/12.1/client64/lib/tls/haswell/avx512_1/x86_64&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 openat(AT_FDCWD, &quot;/usr/lib/oracle/12.1/client64/lib/tls/haswell/avx512_1/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 stat(&quot;/usr/lib/oracle/12.1/client64/lib/tls/haswell/avx512_1&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 openat(AT_FDCWD, &quot;/usr/lib/oracle/12.1/client64/lib/tls/haswell/x86_64/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 stat(&quot;/usr/lib/oracle/12.1/client64/lib/tls/haswell/x86_64&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 openat(AT_FDCWD, &quot;/usr/lib/oracle/12.1/client64/lib/tls/haswell/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 stat(&quot;/usr/lib/oracle/12.1/client64/lib/tls/haswell&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 openat(AT_FDCWD, &quot;/usr/lib/oracle/12.1/client64/lib/tls/avx512_1/x86_64/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 stat(&quot;/usr/lib/oracle/12.1/client64/lib/tls/avx512_1/x86_64&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 openat(AT_FDCWD, &quot;/usr/lib/oracle/12.1/client64/lib/tls/avx512_1/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 stat(&quot;/usr/lib/oracle/12.1/client64/lib/tls/avx512_1&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 openat(AT_FDCWD, &quot;/usr/lib/oracle/12.1/client64/lib/tls/x86_64/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 stat(&quot;/usr/lib/oracle/12.1/client64/lib/tls/x86_64&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 openat(AT_FDCWD, &quot;/usr/lib/oracle/12.1/client64/lib/tls/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 stat(&quot;/usr/lib/oracle/12.1/client64/lib/tls&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 openat(AT_FDCWD, &quot;/usr/lib/oracle/12.1/client64/lib/haswell/avx512_1/x86_64/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 stat(&quot;/usr/lib/oracle/12.1/client64/lib/haswell/avx512_1/x86_64&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 openat(AT_FDCWD, &quot;/usr/lib/oracle/12.1/client64/lib/haswell/avx512_1/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 stat(&quot;/usr/lib/oracle/12.1/client64/lib/haswell/avx512_1&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 openat(AT_FDCWD, &quot;/usr/lib/oracle/12.1/client64/lib/haswell/x86_64/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 stat(&quot;/usr/lib/oracle/12.1/client64/lib/haswell/x86_64&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 openat(AT_FDCWD, &quot;/usr/lib/oracle/12.1/client64/lib/haswell/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 stat(&quot;/usr/lib/oracle/12.1/client64/lib/haswell&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 openat(AT_FDCWD, &quot;/usr/lib/oracle/12.1/client64/lib/avx512_1/x86_64/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 stat(&quot;/usr/lib/oracle/12.1/client64/lib/avx512_1/x86_64&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 openat(AT_FDCWD, &quot;/usr/lib/oracle/12.1/client64/lib/avx512_1/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 stat(&quot;/usr/lib/oracle/12.1/client64/lib/avx512_1&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 openat(AT_FDCWD, &quot;/usr/lib/oracle/12.1/client64/lib/x86_64/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 stat(&quot;/usr/lib/oracle/12.1/client64/lib/x86_64&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 openat(AT_FDCWD, &quot;/usr/lib/oracle/12.1/client64/lib/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 stat(&quot;/usr/lib/oracle/12.1/client64/lib&quot;, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0&lt;br/&gt;
08:30:54 openat(AT_FDCWD, &quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/tls/haswell/avx512_1/x86_64/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 stat(&quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/tls/haswell/avx512_1/x86_64&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 openat(AT_FDCWD, &quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/tls/haswell/avx512_1/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 stat(&quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/tls/haswell/avx512_1&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 openat(AT_FDCWD, &quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/tls/haswell/x86_64/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 stat(&quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/tls/haswell/x86_64&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:54 openat(AT_FDCWD, &quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/tls/haswell/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:55 stat(&quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/tls/haswell&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:55 openat(AT_FDCWD, &quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/tls/avx512_1/x86_64/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:55 stat(&quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/tls/avx512_1/x86_64&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:55 openat(AT_FDCWD, &quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/tls/avx512_1/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:55 stat(&quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/tls/avx512_1&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:55 openat(AT_FDCWD, &quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/tls/x86_64/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:55 stat(&quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/tls/x86_64&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:55 openat(AT_FDCWD, &quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/tls/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:56 stat(&quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/tls&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:56 openat(AT_FDCWD, &quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/haswell/avx512_1/x86_64/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:56 stat(&quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/haswell/avx512_1/x86_64&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:56 openat(AT_FDCWD, &quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/haswell/avx512_1/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:56 stat(&quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/haswell/avx512_1&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:56 openat(AT_FDCWD, &quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/haswell/x86_64/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:56 stat(&quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/haswell/x86_64&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:56 openat(AT_FDCWD, &quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/haswell/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:56 stat(&quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/haswell&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:57 openat(AT_FDCWD, &quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/avx512_1/x86_64/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:57 stat(&quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/avx512_1/x86_64&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:57 openat(AT_FDCWD, &quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/avx512_1/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:57 stat(&quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/avx512_1&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:57 openat(AT_FDCWD, &quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/x86_64/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:57 stat(&quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/x86_64&quot;, 0x7ffe359be700) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:57 openat(AT_FDCWD, &quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib/libselinux.so.1&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)&lt;br/&gt;
08:30:57 stat(&quot;/software/lsf-cgp3/10.1/linux3.10-glibc2.17-x86_64/lib&quot;, {st_mode=S_IFDIR|0755, st_size=2523, ...}) = 0&lt;br/&gt;
08:30:57 openat(AT_FDCWD, &quot;/etc/ld.so.cache&quot;, O_RDONLY|O_CLOEXEC) = 3&lt;br/&gt;
08:30:57 fstat(3, {st_mode=S_IFREG|0644, st_size=146843, ...}) = 0&lt;br/&gt;
08:30:57 mmap(NULL, 146843, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fae19874000&lt;br/&gt;
08:30:57 close(3) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; = 0&lt;/p&gt;

&lt;p&gt;What we discovered was that a system that was mounting lustre with localflock could mess up the &quot;inode cache&quot; such that stats anywhere were not cached.&lt;/p&gt;

&lt;p&gt;In the above strace we see that LD_LIBRARY_PATH was extended in to a relatively slow nfs server.&lt;/p&gt;

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

&lt;p&gt;We discovered that&lt;/p&gt;

&lt;p&gt;echo 2 &amp;gt; /proc/sys/vm/drop_caches&lt;/p&gt;

&lt;p&gt;temporarily fixed the issue and ended up with a script that run from cron.&lt;/p&gt;

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

&lt;p&gt;#!/bin/bash&lt;br/&gt;
export LD_LIBRARY_PATH=$(find /software/lsf-*/10.1/linux3.10-glibc2.17-x86_64/ &#160; -maxdepth 1 -type d &#160;-name lib )&lt;br/&gt;
timeout 2s ls / &amp;gt; /dev/null&lt;br/&gt;
if [ $? != 0 ] ; then&lt;br/&gt;
&#160; cat /proc/slabinfo | logger -t _lustre_before_slabinfo&lt;br/&gt;
&#160; cat /proc/meminfo &#160;| logger -t _lustre_before_meminfo&lt;br/&gt;
&#160; grep localflock /proc/mounts &#160;| wc -l | logger -t _lustre_before_localflock&lt;br/&gt;
&#160; lctl get_param &apos;ldlm.namespaces.lus*-OST*/lru_size&apos; | logger -t _lustre_before_lru_size&lt;br/&gt;
&#160; echo 2 &amp;gt; /proc/sys/vm/drop_caches &#160;&#160;&lt;br/&gt;
&#160; # The blankline above here is important as template&lt;br/&gt;
&#160; logger -t _lustre_after_did_we_do_it &#160;&quot;LUSTRE drop cache 2 &quot;&lt;br/&gt;
&#160; cat /proc/slabinfo | logger -t _lustre_after_slabinfo&lt;br/&gt;
&#160; cat /proc/meminfo &#160;| logger -t _lustre_after_meminfo&lt;br/&gt;
&#160; lctl get_param &apos;ldlm.namespaces.lus*-OST*/lru_size&apos; | logger -t _lustre_after_lru_size&lt;br/&gt;
fi&lt;/p&gt;

&lt;p&gt;We discovered that removing localflock means that this script does not fire.&lt;/p&gt;

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

&lt;p&gt;If this can be reproduced then, the option should either be fixed or a message emitted when localflock is used.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="75782">LU-16769</key>
            <summary>localflock can perform really badly</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="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="wc-triage">WC Triage</assignee>
                                    <reporter username="james beal">James Beal</reporter>
                        <labels>
                    </labels>
                <created>Tue, 25 Apr 2023 09:30:24 +0000</created>
                <updated>Tue, 25 Apr 2023 09:30:24 +0000</updated>
                                            <version>Lustre 2.14.0</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                    <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|i03jrj:</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>