<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:43:45 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-11423] osc_extent_find sometimes walks full extent list</title>
                <link>https://jira.whamcloud.com/browse/LU-11423</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;osc_extent_find has an interesting little bug.&lt;/p&gt;

&lt;p&gt;osc_extent_find uses osc_extent_search to find a good candidate for merging the new page in to, then starts checking.&#160; osc_extent_search either the extent containing the offset request or the greatest previous extent, or null if no such extent exists.&lt;/p&gt;

&lt;p&gt;If search returns null, then find uses the first extent of the object.&lt;/p&gt;

&lt;p&gt;Basically, there are three possibilities, assuming there are some extents in the object:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;The new offset lies inside and existing extent, ie, overlaps it.&#160; Search returns this extent and find handles this case.&lt;/li&gt;
	&lt;li&gt;There are no earlier extents in the object.&#160; If there are any extents, try to merge with the first extent (which must be the next extent).&#160; If we cannot merge with this extent, then we will not be able to merge with any further extents.&#160; (Because they are guaranteed to be discontiguous.)&lt;/li&gt;
	&lt;li&gt;There is an earlier extent.&#160; Try to merge with it.&#160; If that fails, try to merge with the &lt;b&gt;next&lt;/b&gt; extent in the file.&#160; If we cannot merge with it, then we can&apos;t merge with any further extents (because they are guaranteed to be discontiguous).&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;In cases 2 and 3, the current code will continue to walk the extent list until next_extent is NULL.&#160; This is fine for small numbers of extents, but is hugely problematic for large, sparse files with small written extents, where we can get thousands and thousands of extents and most new writes will not merge with existing extents.&lt;/p&gt;

&lt;p&gt;This is trivial to fix - just stop walking the extent list once we&apos;ve passed any extents we could match.&#160; Patch will be forthcoming shortly.&lt;/p&gt;</description>
                <environment></environment>
        <key id="53404">LU-11423</key>
            <summary>osc_extent_find sometimes walks full extent list</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="paf">Patrick Farrell</assignee>
                                    <reporter username="paf">Patrick Farrell</reporter>
                        <labels>
                    </labels>
                <created>Mon, 24 Sep 2018 20:15:26 +0000</created>
                <updated>Tue, 6 Nov 2018 13:43:07 +0000</updated>
                            <resolved>Tue, 6 Nov 2018 13:43:07 +0000</resolved>
                                                    <fixVersion>Lustre 2.12.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                            <comments>
                            <comment id="233929" author="gerrit" created="Mon, 24 Sep 2018 20:42:50 +0000"  >&lt;p&gt;Patrick Farrell (paf@cray.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/33227&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/33227&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11423&quot; title=&quot;osc_extent_find sometimes walks full extent list&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11423&quot;&gt;&lt;del&gt;LU-11423&lt;/del&gt;&lt;/a&gt; osc: Do not walk full extent list&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: e5ed4bb98bd4e17fb6bb5bd7d4fe22b660e33341&lt;/p&gt;</comment>
                            <comment id="236390" author="gerrit" created="Tue, 6 Nov 2018 06:41:12 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/33227/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/33227/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11423&quot; title=&quot;osc_extent_find sometimes walks full extent list&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11423&quot;&gt;&lt;del&gt;LU-11423&lt;/del&gt;&lt;/a&gt; osc: Do not walk full extent list&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 7f8143cf85b7e658976aa6526689628a81ed6a32&lt;/p&gt;</comment>
                            <comment id="236424" author="pjones" created="Tue, 6 Nov 2018 13:43:07 +0000"  >&lt;p&gt;Landed for 2.12&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|i002zr:</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>