<!-- 
RSS generated by JIRA (5.2.4#845-sha1:c9f4cc41abe72fb236945343a1f485c2c844dac9) at Wed May 22 03:19:35 CDT 2013

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 add field=key&field=summary to the URL of your request.
For example:
http://www.couchbase.com/issues/si/jira.issueviews:issue-xml/MB-3980/MB-3980.xml?field=key&field=summary
-->
<rss version="0.92" >
<channel>
    <title>Couchbase</title>
    <link>http://www.couchbase.com/issues</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>5.2.4</version>
        <build-number>845</build-number>
        <build-date>26-12-2012</build-date>
    </build-info>

<item>
            <title>[MB-3980] pager may purge an item before its expiration time if user sets a new expiration time for an already expired key</title>
                <link>http://www.couchbase.com/issues/browse/MB-3980</link>
                <project id="10010" key="MB">Couchbase Server</project>
                        <description>exp = 7 sec, exp_pager_stime=5 , vbucket = 0 . working set 4000 keys&lt;br/&gt;
&lt;br/&gt;
first few iterations are okay but get fails more often in later iterations.&lt;br/&gt;
&lt;br/&gt;
iteration 0 ok&lt;br/&gt;
iteration 1 ok&lt;br/&gt;
iteration 2 ok&lt;br/&gt;
iteration 3 ok&lt;br/&gt;
iteration 4 438 keys not_found&lt;br/&gt;
iteration 5 ok&lt;br/&gt;
iteration 6 ok&lt;br/&gt;
iteration 7 1232 keys not_found&lt;br/&gt;
iteration 8 ok&lt;br/&gt;
iteration 9 466 keys not_found&lt;br/&gt;
iteration 10 ok&lt;br/&gt;
iteration 11 ok&lt;br/&gt;
iteration 12 1320 keys not_found&lt;br/&gt;
iteration 13 ok&lt;br/&gt;
iteration 14 327 keys not_found&lt;br/&gt;
iteration 15 ok&lt;br/&gt;
iteration 16 ok&lt;br/&gt;
iteration 17 1503 keys not_found&lt;br/&gt;
iteration 18 ok&lt;br/&gt;
iteration 19 521 keys not_found&lt;br/&gt;
iteration 20 ok&lt;br/&gt;
iteration 21 ok&lt;br/&gt;
iteration 22 1660 keys not_found&lt;br/&gt;
iteration 23 ok&lt;br/&gt;
iteration 24 346 keys not_found&lt;br/&gt;
iteration 25 ok&lt;br/&gt;
iteration 26 ok&lt;br/&gt;
iteration 27 1682 keys not_found&lt;br/&gt;
iteration 28 ok&lt;br/&gt;
iteration 29 233 keys not_found&lt;br/&gt;
iteration 30 ok&lt;br/&gt;
iteration 31 ok&lt;br/&gt;
iteration 32 1565 keys not_found&lt;br/&gt;
iteration 33 ok&lt;br/&gt;
iteration 34 472 keys not_found&lt;br/&gt;
iteration 35 ok&lt;br/&gt;
iteration 36 ok&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;while iteration &amp;lt; 50:&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;start = time.time()&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for key in keys:&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mc.set(key, expiration, 0, payload, vbucket=0)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for key in keys:&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try:&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a, b, c = mc.get(key, vbucket=0)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;except Exception as ex:&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print &amp;quot;unable to get key {0} in {1}th iteration because {2}&amp;quot;.format(key, iteration, ex)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iteration += 1&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;delta = time.time() - start&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;time.sleep(abs(expiration - delta))&lt;br/&gt;
</description>
                <environment></environment>
            <key id="14351">MB-3980</key>
            <summary>pager may purge an item before its expiration time if user sets a new expiration time for an already expired key</summary>
                <type id="1" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="6" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/closed.png">Closed</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="chiyoung">Chiyoung Seo</assignee>
                                <reporter username="farshid">Farshid Ghods</reporter>
                        <labels>
                        <label>1.7.0-release-notes</label>
                        <label>zynga</label>
                    </labels>
                <created>Mon, 13 Jun 2011 20:12:13 -0500</created>
                <updated>Wed, 9 Jan 2013 22:59:20 -0600</updated>
                    <resolved>Mon, 25 Jul 2011 01:11:32 -0500</resolved>
                            <version>1.6.5.3</version>
                                <fixVersion>1.7.1</fixVersion>
                                <component>couchbase-bucket</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="21180" author="farshid" created="Thu, 16 Jun 2011 14:01:28 -0500"  >Integrated in github-ep-engine-1-7-1 #123 (See [&lt;a href=&quot;http://qa.hq.northscale.net/job/github-ep-engine-1-7-1/123/&quot;&gt;http://qa.hq.northscale.net/job/github-ep-engine-1-7-1/123/&lt;/a&gt;])&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://www.couchbase.com/issues/browse/MB-3980&quot; title=&quot;pager may purge an item before its expiration time if user sets a new expiration time for an already expired key&quot;&gt;&lt;strike&gt;MB-3980&lt;/strike&gt;&lt;/a&gt; Fix to the race condition in purging expired items.&lt;br/&gt;
&lt;br/&gt;
Chiyoung Seo : &lt;br/&gt;
Files : &lt;br/&gt;
* item_pager.cc&lt;br/&gt;
* ep.cc&lt;br/&gt;
* ep.hh&lt;br/&gt;
</comment>
                    <comment id="21308" author="farshid" created="Wed, 6 Jul 2011 12:00:44 -0500"  >Integrated in github-ep-engine-2-0 #13 (See [&lt;a href=&quot;http://qa.hq.northscale.net/job/github-ep-engine-2-0/13/&quot;&gt;http://qa.hq.northscale.net/job/github-ep-engine-2-0/13/&lt;/a&gt;])&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://www.couchbase.com/issues/browse/MB-3980&quot; title=&quot;pager may purge an item before its expiration time if user sets a new expiration time for an already expired key&quot;&gt;&lt;strike&gt;MB-3980&lt;/strike&gt;&lt;/a&gt; Fix to the race condition in purging expired items.&lt;br/&gt;
&lt;br/&gt;
Chiyoung Seo : &lt;br/&gt;
Files : &lt;br/&gt;
* item_pager.cc&lt;br/&gt;
* ep.hh&lt;br/&gt;
* ep.cc&lt;br/&gt;
</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                                                            <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>6427</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                                                                                                        <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>
</channel>
</rss>