<!--
RSS generated by JIRA (5.2.4#845-sha1:c9f4cc41abe72fb236945343a1f485c2c844dac9) at Tue May 21 15:35:09 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/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?jqlQuery=project+%3D+CCBC+AND+resolution+%3D+Unresolved+ORDER+BY+priority+DESC&tempMax=1000&field=key&field=summary
-->
<!-- If you wish to do custom client-side styling of RSS, uncomment this:
<?xml-stylesheet href="http://www.couchbase.com/issues/styles/jiraxml2html.xsl" type="text/xsl"?>
-->
<rss version="0.92">
    <channel>
        <title>Couchbase</title>
        <link>http://www.couchbase.com/issues/secure/IssueNavigator.jspa?reset=true&amp;jqlQuery=project+%3D+CCBC+AND+resolution+%3D+Unresolved+ORDER+BY+priority+DESC</link>
        <description>An XML representation of a search request</description>
                <language>en-us</language>
                        <issue start="0" end="53" total="53"/>
                <build-info>
            <version>5.2.4</version>
            <build-number>845</build-number>
            <build-date>26-12-2012</build-date>
        </build-info>
<item>
            <title>[CCBC-193] libcouchbase build is not checking install properly</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-193</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>I was trying to package the PHP client, which depends on libcouchase, and it is was refusing to build on some systems.&lt;br/&gt;
&lt;br/&gt;
After looking into it a bit, there may be a couple of problems, but the big one is in the summary.&lt;br/&gt;
&lt;br/&gt;
One problem is that it seems the dpkg -i doesn&amp;#39;t actually get run.  I added an echo of the label in there, and see that in the console output in Jenkins, but I don&amp;#39;t see the lines under the label run.  I&amp;#39;m stumped there.</description>
                <environment></environment>
            <key id="23365">CCBC-193</key>
            <summary>libcouchbase build is not checking install properly</summary>
                <type id="1" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="1" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/blocker.png">Blocker</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="ingenthr">Matt Ingenthron</reporter>
                        <labels>
                    </labels>
                <created>Fri, 22 Mar 2013 19:56:36 -0500</created>
                <updated>Fri, 22 Mar 2013 19:56:36 -0500</updated>
                                                                                    <votes>0</votes>
                        <watches>1</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                            <customfield id="customfield_10284" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                <customfieldname>Planned End</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>Fri, 22 Mar 2013 12:00:00 -0500</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10283" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                <customfieldname>Planned Start</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>Fri, 22 Mar 2013 12:00:00 -0500</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>10202</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-208] libvbucket CRC32 hashing function returns wrong hashes</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-208</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>It seems that the CRC32 hashing function in libvbucket (hash_crc32()) returns an invalid hash.&lt;br/&gt;
&lt;br/&gt;
For instance, hashing the key &amp;#39;1234567890&amp;#39; returns 9757 (0x261D), while it should return 639479525 (0x261DAEE5).&lt;br/&gt;
&lt;br/&gt;
Every key I tried (on both win and linux) returns a 16bit hash.&lt;br/&gt;
&lt;br/&gt;
The problem seems to be on line 85 in crc32.c.&lt;br/&gt;
&lt;br/&gt;
Changing the return expression to &amp;#39;return crc ^ ~0;&amp;#39; fixes the problem and computes the correct hash.</description>
                <environment>Windows &amp;amp; Linux (debian)</environment>
            <key id="24160">CCBC-208</key>
            <summary>libvbucket CRC32 hashing function returns wrong hashes</summary>
                <type id="1" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="1" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/blocker.png">Blocker</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="ingenthr">Matt Ingenthron</assignee>
                                <reporter username="Orfeas Zafeiris">Orfeas Zafeiris</reporter>
                        <labels>
                    </labels>
                <created>Thu, 9 May 2013 12:40:13 -0500</created>
                <updated>Thu, 9 May 2013 14:02:28 -0500</updated>
                                    <version>2.0.0</version>
                <version>2.0.1</version>
                <version>2.0.2</version>
                <version>2.0.3</version>
                <version>2.0.4</version>
                <version>2.0.5</version>
                <version>2.0.6</version>
                                                <component>library</component>
                                <votes>0</votes>
                        <watches>3</watches>
                                                    <comments>
                    <comment id="57715" author="avsej" created="Thu, 9 May 2013 13:57:30 -0500"  >The algorithm based on CRC32, but it isn&amp;#39;t CRC32, for example java client does the same: &lt;a href=&quot;https://github.com/dustin/java-memcached-client/blob/master/src/main/java/net/spy/memcached/DefaultHashAlgorithm.java#L103-108&quot;&gt;https://github.com/dustin/java-memcached-client/blob/master/src/main/java/net/spy/memcached/DefaultHashAlgorithm.java#L103-108&lt;/a&gt;</comment>
                    <comment id="57716" author="avsej" created="Thu, 9 May 2013 13:59:09 -0500"  >Do we have official documentation about &amp;quot;crc32-based hash&amp;quot; used in vbucket algorithm? </comment>
                    <comment id="57718" author="Orfeas Zafeiris" created="Thu, 9 May 2013 14:02:28 -0500"  >I see, however the function name and the comments in vbucket.c make it really confusing for people developing their own clients for interacting with couchbase.</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>11128</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-184] There are a lot of connections are established after restarting Couchbase server</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-184</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>1) Start Couchbase Server&lt;br/&gt;
2) Start to recieve some key from Couchbase server using a client based on libcouchbase library. We use about 250 threads for receiving key&lt;br/&gt;
3) Restart Couchbase server&lt;br/&gt;
4) After that a lot of connections are created (all of then in ESTABLISHED state). And soon quota for handlers is over. </description>
                <environment>Linux, HP-UX&lt;br/&gt;
libcouchbase-2.0.3&lt;br/&gt;
Couchbase Server 1.8.1</environment>
            <key id="22740">CCBC-184</key>
            <summary>There are a lot of connections are established after restarting Couchbase server</summary>
                <type id="1" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="2" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/critical.png">Critical</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="Haster">Haster</reporter>
                        <labels>
                    </labels>
                <created>Mon, 18 Feb 2013 00:16:00 -0600</created>
                <updated>Mon, 25 Feb 2013 01:08:00 -0600</updated>
                                    <version>2.0.3</version>
                                                <component>library</component>
                                <votes>0</votes>
                        <watches>2</watches>
                                                    <comments>
                    <comment id="51079" author="trond" created="Thu, 21 Feb 2013 04:53:40 -0600"  >I&amp;#39;m not sure I understand the problem here. Are you seeing all of the connections on the server node or on the client node (or is this the same machine)?&lt;br/&gt;
&lt;br/&gt;
If this is on the client nodes, are the &amp;quot;old&amp;quot; connections not properly shut down? or does it seem like it is creating multiple new connections per libcouchbase instance?</comment>
                    <comment id="51291" author="Haster" created="Mon, 25 Feb 2013 01:08:00 -0600"  >The sockets are created on client side.&lt;br/&gt;
We investigate this problem and found that this truble happend than we try to get many values from Couchbase.&lt;br/&gt;
lcb_get();&lt;br/&gt;
lcb_get();&lt;br/&gt;
...&lt;br/&gt;
lcb_get();&lt;br/&gt;
lcb_wait();&lt;br/&gt;
And if we have temporary errors libcouchbase make reconnect many times.&lt;br/&gt;
I don&amp;#39;t know is this bug or not. But we avoid this problem by receiving one get a time and waiting if temporary error is happend</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                            <customfield id="customfield_10284" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                <customfieldname>Planned End</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>Mon, 18 Feb 2013 12:00:00 -0600</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10283" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                <customfieldname>Planned Start</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>Mon, 18 Feb 2013 12:00:00 -0600</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>8861</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-181] enhance observe man page with a more complete example</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-181</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>The current observe man page doesn&amp;#39;t really go into how to interpret results from the request.  I needs to have that.&lt;br/&gt;
&lt;br/&gt;
Ideally it should also show how one would do a regular poll to show checking for replication or persistence.</description>
                <environment></environment>
            <key id="22722">CCBC-181</key>
            <summary>enhance observe man page with a more complete example</summary>
                <type id="4" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="2" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/critical.png">Critical</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="ingenthr">Matt Ingenthron</assignee>
                                <reporter username="ingenthr">Matt Ingenthron</reporter>
                        <labels>
                    </labels>
                <created>Fri, 15 Feb 2013 10:16:36 -0600</created>
                <updated>Tue, 2 Apr 2013 01:36:45 -0500</updated>
                                    <version>2.0.3</version>
                                <fixVersion>2.1.0</fixVersion>
                                <component>docs</component>
                                <votes>0</votes>
                        <watches>2</watches>
                                                    <comments>
                    <comment id="53986" author="trond" created="Tue, 2 Apr 2013 01:36:45 -0500"  >should probably be written by our native english speaking committer ;)</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                            <customfield id="customfield_10284" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                <customfieldname>Planned End</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>Fri, 15 Feb 2013 12:00:00 -0600</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10283" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                <customfieldname>Planned Start</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>Fri, 15 Feb 2013 12:00:00 -0600</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>8842</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-162] API reference uses old names, not current lcb_* names</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-162</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>The API reference for all functions uses libcouchbase_* names (libcouchbase_create, etc.) instead of the correct lcb_* names (lcb_create, etc.).</description>
                <environment>&lt;a href=&quot;http://www.couchbase.com/docs/couchbase-sdk-c-2.0/api-reference-summary.html&quot;&gt;http://www.couchbase.com/docs/couchbase-sdk-c-2.0/api-reference-summary.html&lt;/a&gt;</environment>
            <key id="21602">CCBC-162</key>
            <summary>API reference uses old names, not current lcb_* names</summary>
                <type id="1" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="2" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/critical.png">Critical</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="mccouch">MC Brown</assignee>
                                <reporter username="TimSmith">Tim Smith</reporter>
                        <labels>
                    </labels>
                <created>Thu, 3 Jan 2013 14:00:50 -0600</created>
                <updated>Thu, 31 Jan 2013 03:11:36 -0600</updated>
                                    <version>2.0.1</version>
                                                <component>docs</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="48955" author="trond" created="Tue, 29 Jan 2013 17:40:58 -0600"  >The manual pages for libcouchbase use the correct names :)</comment>
                    <comment id="48959" author="kzeller" created="Tue, 29 Jan 2013 17:52:57 -0600"  >There is something wrong. At this page, I get: Sorry. We can&#8217;t seem to find that page. Can you let me know where this actually appears (name guide, section, page, etc)</comment>
                    <comment id="49001" author="TimSmith" created="Wed, 30 Jan 2013 09:31:51 -0600"  >There&amp;#39;s something even bigger wrong, because the page is missing. There&amp;#39;s no reference material at all now in the C client library docs, the TOC has:&lt;br/&gt;
&lt;br/&gt;
1. Getting Started&lt;br/&gt;
1.1. Downloading the Couchbase Client Library&lt;br/&gt;
1.2. Installing from Source: Linux and Mac OS X&lt;br/&gt;
1.3. Installing from Source: Microsoft Windows&lt;br/&gt;
1.4. Installing on CentOS/ReHat&lt;br/&gt;
1.5. Installing on Ubuntu&lt;br/&gt;
1.6. Hello C Couchbase&lt;br/&gt;
2. Tutorial&lt;br/&gt;
2.1. Simple Example&lt;br/&gt;
2.2. Additional Resources&lt;br/&gt;
A. Release Notes&lt;br/&gt;
&lt;br/&gt;
The reference page that lists all of the functions, etc., has been removed entirely. Is it supposed to be auto-generated, and perhaps that process is failing? I don&amp;#39;t know.&lt;br/&gt;
</comment>
                    <comment id="49031" author="kzeller" created="Wed, 30 Jan 2013 13:25:27 -0600"  >I&amp;#39;m going to ask MC to look at this as it appears to be the production system. I noticed a couple pages that had correctly linked as cross references in the past are also 404 missing...</comment>
                    <comment id="49129" author="mccouch" created="Thu, 31 Jan 2013 03:11:36 -0600"  >Matt and I agreed to temporarily remove the API reference from the documentation because we know it needs significant updating. The source material for the API is based on the document that Trond produced last year, and which I have no ability to change or fix at the moment, but I&amp;#39;ll work to get that updated. </comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>10822</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-209] Make Windows builds work with jom</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-209</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>Jom supports parallel-make for windows&amp;#39; nmake (the equivalent to normal make&amp;#39;s &amp;#39;-j&amp;#39; option). Right now compiling on windows is painfully slow.&lt;br/&gt;
&lt;br/&gt;
Another alternative would be to make a solution file.&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;a href=&quot;http://qt-project.org/wiki/jom&quot;&gt;http://qt-project.org/wiki/jom&lt;/a&gt;</description>
                <environment></environment>
            <key id="24179">CCBC-209</key>
            <summary>Make Windows builds work with jom</summary>
                <type id="4" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="2" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/critical.png">Critical</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="trond">Trond Norbye</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Thu, 9 May 2013 23:25:14 -0500</created>
                <updated>Fri, 10 May 2013 01:29:45 -0500</updated>
                                                                    <component>library</component>
                                <votes>0</votes>
                        <watches>2</watches>
                                                    <comments>
                    <comment id="57785" author="trond" created="Fri, 10 May 2013 01:29:45 -0500"  >what is stopping the current makefile for being executed by a parallel make? </comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>11155</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-200] lcb_make_http_request doesn&apos;t respect timeouts</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-200</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>Run the attached testcase on Windows (after fixing the host and such). The lcb_wait after calling lcb_make_http_request will hang for a very long time (perhaps forever) if the server is no longer accessible.&lt;br/&gt;
&lt;br/&gt;
I tested this by starting the client. When it prints &amp;quot;sleeping&amp;quot; I pull the ethernet cable on my machine. If the lcb_make_http_request is replaced by lcb_get then you&amp;#39;ll get a timeout which is expected.</description>
                <environment>Windows 7, VS2010</environment>
            <key id="23544">CCBC-200</key>
            <summary>lcb_make_http_request doesn&apos;t respect timeouts</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="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="nosqlfoo">matthew newhook</reporter>
                        <labels>
                    </labels>
                <created>Fri, 5 Apr 2013 06:17:51 -0500</created>
                <updated>Fri, 5 Apr 2013 06:17:51 -0500</updated>
                                    <version>2.0.4</version>
                                                                <votes>0</votes>
                        <watches>1</watches>
                                                            <attachments>
                    <attachment id="17082" name="testcase.cpp" size="3653" author="nosqlfoo" created="Fri, 5 Apr 2013 06:17:51 -0500" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>10380</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-199] Problem with a newly created memcached bucket</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-199</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>See: &lt;a href=&quot;http://www.couchbase.com/forums/thread/libcouchbase-problem-newly-created-memcached-bucket&quot;&gt;http://www.couchbase.com/forums/thread/libcouchbase-problem-newly-created-memcached-bucket&lt;/a&gt;&lt;br/&gt;
</description>
                <environment></environment>
            <key id="23492">CCBC-199</key>
            <summary>Problem with a newly created memcached bucket</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="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="trond">Trond Norbye</reporter>
                        <labels>
                    </labels>
                <created>Tue, 2 Apr 2013 06:28:35 -0500</created>
                <updated>Tue, 2 Apr 2013 06:28:35 -0500</updated>
                                                                                    <votes>0</votes>
                        <watches>1</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>10331</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-195] config cache will crash client due to relocating buffers</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-195</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>See &lt;a href=&quot;http://www.couchbase.com/issues/browse/CCBC-190&quot; title=&quot;Conncache configuration not passing integration tests&quot;&gt;CCBC-190&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
During a cluster configuration change, the buffers are relocated while they are being processed. This causes crashes.&lt;br/&gt;
&lt;br/&gt;
A solution would be to &amp;quot;request&amp;quot; a configuration refresh and have that take place once it is safe to move buffers around (i.e. once we are out of the buffer processing call chain).</description>
                <environment></environment>
            <key id="23472">CCBC-195</key>
            <summary>config cache will crash client due to relocating buffers</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="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="mnunberg">Mark Nunberg</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Mon, 1 Apr 2013 12:42:36 -0500</created>
                <updated>Tue, 2 Apr 2013 03:30:20 -0500</updated>
                                    <version>2.0.5</version>
                                                <component>library</component>
                                <votes>0</votes>
                        <watches>2</watches>
                                                    <comments>
                    <comment id="53991" author="dongzaixx" created="Tue, 2 Apr 2013 03:30:20 -0500"  >Same Issue: &lt;a href=&quot;http://www.couchbase.com/issues/browse/CCBC-188&quot;&gt;http://www.couchbase.com/issues/browse/CCBC-188&lt;/a&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>10315</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-194] Please add support for setsockopt()  SO_KEEPALIVE &amp; TCP_KEEPIDLE</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-194</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>Please add support for setsockopt() options SO_KEEPALIVE &amp;amp; TCP_KEEPIDLE through (suggestion)&lt;br/&gt;
lcb_connect() or some other such api so that I can control the connection&amp;#39;s ability to not timeout&lt;br/&gt;
and have a firewall cause a disconnection from lack of inactivity...without such control, receive&lt;br/&gt;
NETWORK_ERROR from couchbase apis.&lt;br/&gt;
&lt;br/&gt;
I cannot adjust the firewall, so I need to keep the connection alive.</description>
                <environment>CentOS 6.x, Linux</environment>
            <key id="23367">CCBC-194</key>
            <summary>Please add support for setsockopt()  SO_KEEPALIVE &amp; TCP_KEEPIDLE</summary>
                <type id="3" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/task.png">Task</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="mleib">Michael Leib</reporter>
                        <labels>
                    </labels>
                <created>Mon, 25 Mar 2013 09:54:38 -0500</created>
                <updated>Mon, 25 Mar 2013 12:25:05 -0500</updated>
                                    <version>2.0.4</version>
                                                <component>library</component>
                                <votes>0</votes>
                        <watches>2</watches>
                                                    <comments>
                    <comment id="53405" author="mnunberg" created="Mon, 25 Mar 2013 12:25:05 -0500"  >As a workaround, you can wrap your own IOPS structure, and override the socket creation bits so as to set your own socket options.</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                            <customfield id="customfield_10284" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                <customfieldname>Planned End</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>Mon, 25 Mar 2013 12:00:00 -0500</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10283" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                <customfieldname>Planned Start</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>Mon, 25 Mar 2013 12:00:00 -0500</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>10205</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-192] Failure to handle host that has been removed from a cluster</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-192</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>We&amp;#39;re encountering an issue where both the Ruby and Perl clients get() method will consistently, repeatedly just return an error. On the Perl client it is &amp;quot;Temporary error. try again later&amp;quot;, and on Ruby it is &amp;quot;Bucket not found&amp;quot;.&lt;br/&gt;
&lt;br/&gt;
This occurs when we have several couchbase servers, and have connected using the node list option to supply all of them to the library.&lt;br/&gt;
&lt;br/&gt;
We remove the first server in the node list via the Couchbase GUI, trigger a rebalance, and wait for it to complete.&lt;br/&gt;
Once the rebalance has completed, we start a script that simply attempts to connect and retrieve some keys we previously inserted. Instead of success, we find that it repeatedly gives the errors mentioned above.&lt;br/&gt;
&lt;br/&gt;
note that if we remain connected to the cluster, then everything seems fine. The errors only start occurring when a client connects.&lt;br/&gt;
&lt;br/&gt;
note also that the issue only occurs if the first server (or servers) in the list are down; if the first server listed is currently actively in the cluster, then we&amp;#39;re OK.&lt;br/&gt;
&lt;br/&gt;
It seems like the problem is that the now-removed server is still accepting connections on port 8091, and thus the client library thinks that this means it is a valid server. However because it&amp;#39;s removed from the pool, it causes confusion and errors to the client.&lt;br/&gt;
&lt;br/&gt;
Obviously, the correct/desired behaviour would be for the client library to behave as if the removed-server was not accepting connections, and to move onto the next server in the node list.</description>
                <environment>Linux, Ubuntu 12.04 Precise</environment>
            <key id="23327">CCBC-192</key>
            <summary>Failure to handle host that has been removed from a cluster</summary>
                <type id="4" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="wintrmute">Toby Corkindale</reporter>
                        <labels>
                    </labels>
                <created>Wed, 20 Mar 2013 20:25:36 -0500</created>
                <updated>Wed, 20 Mar 2013 21:38:41 -0500</updated>
                                    <version>2.0.4</version>
                                                <component>library</component>
                                <votes>1</votes>
                        <watches>2</watches>
                                                    <comments>
                    <comment id="53224" author="ingenthr" created="Wed, 20 Mar 2013 21:25:40 -0500"  >Others should comment as well, but our current expectation is that if you&amp;#39;re removing a server from the cluster, you&amp;#39;re also removing it from the bootstrap list.  Thus, the best practice would be to remove it from the list first, then remove the server from the cluster.&lt;br/&gt;
&lt;br/&gt;
We can probably make this better though.</comment>
                    <comment id="53225" author="wintrmute" created="Wed, 20 Mar 2013 21:31:37 -0500"  >That is our current work-around. However it is rather annoying, and makes rolling updates/reboots an extremely time consuming process.&lt;br/&gt;
ie. Update puppet with new node list, wait an hour for that to get deployed over every server, then rebalance and remove server1; apply system updates and reboot, then add back to cluster and rebalance. Then update puppet&amp;#39;s node list to include that server, but not the next one, wait an hour for it to apply everywhere, etc etc etc.&lt;br/&gt;
&lt;br/&gt;
There&amp;#39;s also the danger that someone will forget to update the managed node list one day and remove a server from the cluster, expecting it to Just Work.&lt;br/&gt;
&lt;br/&gt;
I also have to point out that the current behaviour is unexpected, and I don&amp;#39;t recall seeing any warnings about it in the documentation or tutorials; thus it&amp;#39;s likely other users may hit this in the future and have some accidental production downtime, as we did.</comment>
                    <comment id="53226" author="ingenthr" created="Wed, 20 Mar 2013 21:38:41 -0500"  >Yes, all good points-- we&amp;#39;ll definitely look to make it better.</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                            <customfield id="customfield_10284" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                <customfieldname>Planned End</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>Wed, 20 Mar 2013 12:00:00 -0500</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10283" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                <customfieldname>Planned Start</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>Wed, 20 Mar 2013 12:00:00 -0500</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>10173</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-190] Conncache configuration not passing integration tests</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-190</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>There are two primary issues which occur during server configuration changes (i.e. failover, rebalance):&lt;br/&gt;
&lt;br/&gt;
1)&lt;br/&gt;
[SDKD(WARNING) 56.55 cbsdk.sdkd.remote remote.py:266] sdkd_lcb: src/event.c:211: parse_single: Assertion `(lcb_size_t)idx &amp;lt; c-&amp;gt;instance-&amp;gt;nservers&amp;#39; failed. &lt;br/&gt;
&lt;br/&gt;
2)&lt;br/&gt;
The client may just hang.</description>
                <environment></environment>
            <key id="23239">CCBC-190</key>
            <summary>Conncache configuration not passing integration tests</summary>
                <type id="3" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/task.png">Task</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="trond">Trond Norbye</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Fri, 15 Mar 2013 16:59:44 -0500</created>
                <updated>Mon, 1 Apr 2013 12:39:36 -0500</updated>
                                                                    <component>library</component>
                                <votes>0</votes>
                        <watches>3</watches>
                                                    <comments>
                    <comment id="53136" author="ingenthr" created="Tue, 19 Mar 2013 20:01:18 -0500"  >Trond, can you update this when you have a moment?</comment>
                    <comment id="53558" author="ingenthr" created="Tue, 26 Mar 2013 19:36:41 -0500"  >Trond, I know you gave me status via IM, but please update this when you have a moment.</comment>
                    <comment id="53575" author="trond" created="Wed, 27 Mar 2013 03:24:33 -0500"  >I had problems reproducing any of these problems when I tested it at home (tested both adding nodes, removing nodes, failover nodes etc). I need more time to try to reproduce this, and more information on how to reproduce it. &lt;br/&gt;
&lt;br/&gt;
I really don&amp;#39;t like using jira as a &amp;quot;task list&amp;quot;. JIRA should be used to file bugs, and one bug report PER issue, not multiple issues like this. It would be nice if we could use cbbugg or something with less overhead than the JIRA taskflow (and something that don&amp;#39;t require me to log in on a daily basis, but allow me to let the tool be running over night.. after all this is bugs we&amp;#39;re talking about, not my credit card information of a flight control system.)</comment>
                    <comment id="53626" author="mnunberg" created="Wed, 27 Mar 2013 13:46:17 -0500"  >sdkd_lcb: src/event.c:211: parse_single: Assertion `(lcb_size_t)idx &amp;lt; c-&amp;gt;instance-&amp;gt;nservers&amp;#39; failed.&lt;br/&gt;
&lt;br/&gt;
Program received signal SIGABRT, Aborted.&lt;br/&gt;
[Switching to Thread 0x54a20940 (LWP 13592)]&lt;br/&gt;
0x000000315d230285 in raise (sig=&amp;lt;value optimized out&amp;gt;) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64&lt;br/&gt;
64        return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);&lt;br/&gt;
(gdb) bt&lt;br/&gt;
#0  0x000000315d230285 in raise (sig=&amp;lt;value optimized out&amp;gt;) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64&lt;br/&gt;
#1  0x000000315d231d30 in abort () at abort.c:88&lt;br/&gt;
#2  0x000000315d229706 in __assert_fail (assertion=0x2aaaaaf6e438 &amp;quot;(lcb_size_t)idx &amp;lt; c-&amp;gt;instance-&amp;gt;nservers&amp;quot;, &lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;file=0x2aaaaaf6e385 &amp;quot;src/event.c&amp;quot;, line=211, function=0x2aaaaaf6e3bf &amp;quot;parse_single&amp;quot;) at assert.c:78&lt;br/&gt;
#3  0x00002aaaaaf5448e in parse_single (c=0x2aaac0011000, stop=1364387212495254000) at src/event.c:211&lt;br/&gt;
#4  0x00002aaaaaf546e0 in do_read_data (c=0x2aaac0011000, allow_read=0) at src/event.c:275&lt;br/&gt;
#5  0x00002aaaaaf5490a in lcb_server_event_handler (sock=312, which=4, arg=0x2aaac0011000) at src/event.c:352&lt;br/&gt;
#6  0x00002aaaab39459a in event_base_loop () from /usr/lib64/libevent-1.4.so.2&lt;br/&gt;
#7  0x00002aaaab17c321 in lcb_io_run_event_loop (iops=0x6cc7a0) at plugins/io/libevent/plugin-libevent.c:320&lt;br/&gt;
#8  0x00002aaaaaf647d8 in lcb_wait (instance=0x6ce720) at src/wait.c:67&lt;br/&gt;
#9  0x00002aaaaaae2870 in CBSdkd::Handle::postsubmit (this=0x6cb5a0, rs=..., nsubmit=1) at Handle.cpp:209&lt;br/&gt;
#10 0x00002aaaaaae2e22 in CBSdkd::Handle::dsMutate (this=0x6cb5a0, cmd=..., ds=..., out=..., options=...)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at Handle.cpp:301&lt;br/&gt;
#11 0x00002aaaaaaee6f8 in CBSdkd::WorkerDispatch::_process_request (this=0x2aaab00372c0, req=..., &lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rs=0x2aaab002dec0) at IODispatch.cpp:606&lt;br/&gt;
#12 0x00002aaaaaaefc5d in CBSdkd::WorkerDispatch::run (this=0x2aaab00372c0) at IODispatch.cpp:711&lt;br/&gt;
#13 0x00002aaaaaaec2d4 in CBSdkd::new_worker_thread (worker=0x2aaab00372c0) at IODispatch.cpp:278&lt;br/&gt;
#14 0x000000315de0677d in start_thread (arg=&amp;lt;value optimized out&amp;gt;) at pthread_create.c:301&lt;br/&gt;
#15 0x000000315d2d3c1d in clone () from /lib64/libc.so.6&lt;br/&gt;
(gdb) frame 3&lt;br/&gt;
#3  0x00002aaaaaf5448e in parse_single (c=0x2aaac0011000, stop=1364387212495254000) at src/event.c:211&lt;br/&gt;
211                 assert((lcb_size_t)idx &amp;lt; c-&amp;gt;instance-&amp;gt;nservers);&lt;br/&gt;
(gdb) print idx&lt;br/&gt;
$1 = -1&lt;br/&gt;
(gdb) print c-&amp;gt;instance-&amp;gt;nservers &lt;br/&gt;
$2 = 2&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
It seems that vbucket_found_incorrect_master is returning -1. I&amp;#39;m not sure why this would happen or what the appropriate solution is. In general this piece of &amp;quot;retry&amp;quot; code is subject to the thundering herd problem anyway.&lt;br/&gt;
&lt;br/&gt;
A temporary fix would be to just retry the old index until we get a valid config. I&amp;#39;ll modify the code and test with that hack, will report results again.</comment>
                    <comment id="53636" author="mnunberg" created="Wed, 27 Mar 2013 15:20:42 -0500"  >Additionally:&lt;br/&gt;
&lt;br/&gt;
==16609== Thread 19:&lt;br/&gt;
==16609== Conditional jump or move depends on uninitialised value(s)&lt;br/&gt;
==16609==    at 0x315D2791B4: strstr (strstr.c:110)&lt;br/&gt;
==16609==    by 0x50B1C90: lcb_load_config_cache (config_cache.c:71)&lt;br/&gt;
==16609==    by 0x50B1D40: lcb_refresh_config_cache (config_cache.c:99)&lt;br/&gt;
==16609==    by 0x50B2499: parse_single (event.c:218)&lt;br/&gt;
==16609==    by 0x50B280E: do_read_data (event.c:308)&lt;br/&gt;
==16609==    by 0x50B2A38: lcb_server_event_handler (event.c:385)&lt;br/&gt;
==16609==    by 0x62E2599: event_base_loop (in /usr/lib64/libevent-1.4.so.2.1.3)&lt;br/&gt;
==16609==    by 0x60DB320: lcb_io_run_event_loop (plugin-libevent.c:320)&lt;br/&gt;
==16609==    by 0x50C2907: lcb_wait (wait.c:67)&lt;br/&gt;
==16609==    by 0x4C4086F: CBSdkd::Handle::postsubmit(CBSdkd::ResultSet&amp;amp;, unsigned int) (Handle.cpp:209)&lt;br/&gt;
==16609==    by 0x4C40E21: CBSdkd::Handle::dsMutate(CBSdkd::Command, CBSdkd::Dataset const&amp;amp;, CBSdkd::ResultSet&amp;amp;, CBSdkd::ResultOptions const&amp;amp;) (Handle.cpp:301)&lt;br/&gt;
==16609==    by 0x4C4C6F7: CBSdkd::WorkerDispatch::_process_request(CBSdkd::Request const&amp;amp;, CBSdkd::ResultSet*) (IODispatch.cpp:606)&lt;br/&gt;
</comment>
                    <comment id="53644" author="trond" created="Wed, 27 Mar 2013 15:36:41 -0500"  >what is the content of buffer?&lt;br/&gt;
</comment>
                    <comment id="53647" author="mnunberg" created="Wed, 27 Mar 2013 15:40:27 -0500"  >Fixed the issue, see &lt;a href=&quot;http://review.couchbase.org/#/c/25372/&quot;&gt;http://review.couchbase.org/#/c/25372/&lt;/a&gt;</comment>
                    <comment id="53649" author="mnunberg" created="Wed, 27 Mar 2013 15:45:37 -0500"  >There are other issues. A rudimentary patch has fixed the assertion failure (by doing what I suggested). The subsequent effect however is that the newer configuration is never re-read (resulting in about half the ops getting a NETWORK_ERROR).</comment>
                    <comment id="53650" author="mnunberg" created="Wed, 27 Mar 2013 15:46:32 -0500"  >Can you explain the consensus process in how a single client decides it will be the &amp;quot;master&amp;quot; for storing the config information? I am tempted to try using flock(2) and see how that works. Keep in mind I am testing with many concurrent clients.</comment>
                    <comment id="53651" author="trond" created="Wed, 27 Mar 2013 15:47:34 -0500"  >There is no masters.. and in theory all of them may update the configuration at the same time. </comment>
                    <comment id="53653" author="trond" created="Wed, 27 Mar 2013 15:48:36 -0500"  >is there a reproducible test case one may run for this?? I had a php script looping in a while (true) mode creating a new cached config while I added, removed, failed over etc nodes and I was not able to reproduce the problem..</comment>
                    <comment id="53772" author="mnunberg" created="Thu, 28 Mar 2013 13:41:50 -0500"  >So I&amp;#39;ve found the underlying cause of the issue. The buffers are being relocated from underneath us while lcb_refresh_config_cache is called. This causes subsequent assertions to fail. Investigating this further now.</comment>
                    <comment id="53876" author="mnunberg" created="Mon, 1 Apr 2013 12:39:36 -0500"  >I&amp;#39;ll split these into several issues (as they are really several issues)</comment>
                </comments>
                <issuelinks>
                        <issuelinktype id="10000">
                <name>Dependency</name>
                                                <inwardlinks description="blocks">
                                    </inwardlinks>
                            </issuelinktype>
                    </issuelinks>
                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                            <customfield id="customfield_10284" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                <customfieldname>Planned End</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>Fri, 15 Mar 2013 12:00:00 -0500</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10283" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                <customfieldname>Planned Start</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>Fri, 15 Mar 2013 12:00:00 -0500</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9474</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-189] Create a compat mode that cache the configuration objects</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-189</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description></description>
                <environment></environment>
            <key id="22898">CCBC-189</key>
            <summary>Create a compat mode that cache the configuration objects</summary>
                <type id="4" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="trond">Trond Norbye</assignee>
                                <reporter username="trond">Trond Norbye</reporter>
                        <labels>
                    </labels>
                <created>Tue, 26 Feb 2013 13:23:21 -0600</created>
                <updated>Tue, 26 Feb 2013 13:23:21 -0600</updated>
                                                                    <component>library</component>
                                <votes>0</votes>
                        <watches>1</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                            <customfield id="customfield_10284" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                <customfieldname>Planned End</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>Tue, 26 Feb 2013 12:00:00 -0600</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10283" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                <customfieldname>Planned Start</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>Tue, 26 Feb 2013 12:00:00 -0600</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9115</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-187] Set TCP_NODELAY flag</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-187</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>We think it is good idea to set TCP_NODELAY flag to switch off the Nagle mode&lt;br/&gt;
(don&amp;#39;t wait for sending a short packets)&lt;br/&gt;
Couchbase server, as we think, use this flag</description>
                <environment></environment>
            <key id="22864">CCBC-187</key>
            <summary>Set TCP_NODELAY flag</summary>
                <type id="4" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="Haster">Haster</reporter>
                        <labels>
                    </labels>
                <created>Mon, 25 Feb 2013 01:14:48 -0600</created>
                <updated>Mon, 25 Feb 2013 01:14:48 -0600</updated>
                                                                                    <votes>0</votes>
                        <watches>1</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                            <customfield id="customfield_10284" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                <customfieldname>Planned End</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>Mon, 25 Feb 2013 12:00:00 -0600</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10283" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                <customfieldname>Planned Start</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>Mon, 25 Feb 2013 12:00:00 -0600</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9085</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-186] Request to provide concrete examples in the documentation for OBSERVE functionality</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-186</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>&lt;a href=&quot;http://support.couchbase.com/tickets/2608&quot;&gt;http://support.couchbase.com/tickets/2608&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
Customer are interested in using OBSERVE functionality to allow them to check whether items have been replicated successfully, as they are worried about unreplicated items. &lt;br/&gt;
&lt;br/&gt;
&lt;a href=&quot;https://github.com/couchbase/libcouchbase/blob/master/man/man3couchbase/lcb_observe.3couchbase.txt&quot;&gt;https://github.com/couchbase/libcouchbase/blob/master/man/man3couchbase/lcb_observe.3couchbase.txt&lt;/a&gt; &lt;br/&gt;
has basic info on the OBSERE functionality in libcouchbase, but we need to provide concrete examples on how to check multiple keys having been replicated successfully (they do a bulk write, so should be more efficient to wait for all of them, rather than wait for them individually)&lt;br/&gt;
&lt;br/&gt;
Examples provided to the customer :&lt;br/&gt;
&lt;br/&gt;
You will find the below example very useful for simple operations :&lt;br/&gt;
&lt;br/&gt;
&lt;a href=&quot;https://github.com/couchbase/php-ext-couchbase/blob/master/simple_observe.c&quot;&gt;https://github.com/couchbase/php-ext-couchbase/blob/master/simple_observe.c&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
The below example would provide more insights when you have any performance or reliability issues :&lt;br/&gt;
&lt;br/&gt;
&lt;a href=&quot;https://github.com/couchbase/php-ext-couchbase/blob/master/observe.c&quot;&gt;https://github.com/couchbase/php-ext-couchbase/blob/master/observe.c&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
The basic idea here is to constantly &amp;quot;poll&amp;quot; the keys (sleeping within a given interval) until all of them are declared as &amp;quot;OK&amp;quot;. The structures involved are the &amp;quot;observe_expectation&amp;quot; (persistence/replication requirements), the &amp;quot;pollprefs&amp;quot; (i.e. timeout, interval, etc.) and the &amp;quot;keystate&amp;quot; - this keeps tabs on how the actual status of each key matches up with the specified criteria. The lcb_observe callback is called for each &amp;quot;status report&amp;quot; for each key from each server; so it is necessary to check and see if the requirements have been met during each individual update.</description>
                <environment></environment>
            <key id="22833">CCBC-186</key>
            <summary>Request to provide concrete examples in the documentation for OBSERVE functionality</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="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="skumar">Saran Kumar</reporter>
                        <labels>
                    </labels>
                <created>Thu, 21 Feb 2013 15:17:58 -0600</created>
                <updated>Thu, 21 Feb 2013 15:17:58 -0600</updated>
                                                                    <component>docs</component>
                                <votes>0</votes>
                        <watches>1</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                            <customfield id="customfield_10284" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                <customfieldname>Planned End</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>Thu, 21 Feb 2013 12:00:00 -0600</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10283" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                <customfieldname>Planned Start</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>Thu, 21 Feb 2013 12:00:00 -0600</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9045</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-183] Implement approach to specify behaviour for lcb_get_replica()</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-183</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>The users might want to ask only first or single replica</description>
                <environment></environment>
            <key id="22724">CCBC-183</key>
            <summary>Implement approach to specify behaviour for lcb_get_replica()</summary>
                <type id="3" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/task.png">Task</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="avsej">Sergey Avseyev</reporter>
                        <labels>
                    </labels>
                <created>Fri, 15 Feb 2013 12:10:15 -0600</created>
                <updated>Fri, 15 Feb 2013 12:10:15 -0600</updated>
                                                                                    <votes>0</votes>
                        <watches>3</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                            <customfield id="customfield_10284" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                <customfieldname>Planned End</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>Fri, 15 Feb 2013 12:00:00 -0600</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10283" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                <customfieldname>Planned Start</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>Fri, 15 Feb 2013 12:00:00 -0600</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>8845</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-177] Docs: Reference installation</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-177</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>Customers have lots of choices at their fingertips, and many of those choices will result in a non-functioning installation, or at least a lot of time spent figuring out what the right pieces are.&lt;br/&gt;
&lt;br/&gt;
Can we please provide as much details as possible about a reference installation that we can be sure will work for a customer who is just getting started?  This is outside of our support for any one operatin system, but more about telling the customer &amp;quot;if you install with these versions and packages, this code will work&amp;quot;&lt;br/&gt;
&lt;br/&gt;
-OS&lt;br/&gt;
-other packages/modules required and/or tested with</description>
                <environment></environment>
            <key id="22605">CCBC-177</key>
            <summary>Docs: Reference installation</summary>
                <type id="4" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="perry">Perry Krug</reporter>
                        <labels>
                    </labels>
                <created>Mon, 11 Feb 2013 05:36:17 -0600</created>
                <updated>Mon, 11 Feb 2013 05:36:17 -0600</updated>
                                    <version>2.0.3</version>
                                                <component>docs</component>
                                <votes>0</votes>
                        <watches>1</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>8731</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-174] Error handling documentation</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-174</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>Please create some documentation specifying possible error/failures to operations, what they &amp;quot;look&amp;quot; like in the logs/exceptions/stack traces and what our recommendation is on how to handle them.&lt;br/&gt;
&lt;br/&gt;
i.e. tmp_oom, timeouts (connection/operation/java-internal/etc), &amp;quot;get miss&amp;quot; (it&amp;#39;s technically a failure, let&amp;#39;s make it overly obvious what it means), CAS failure, add() failure, replace() failure, &lt;br/&gt;
&lt;br/&gt;
Some of this should be covered in the API reference, but this bug is specifically for a single page where this information is aggregated that a customer/user could read about how to handle errors.</description>
                <environment></environment>
            <key id="22511">CCBC-174</key>
            <summary>Error handling documentation</summary>
                <type id="4" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="perry">Perry Krug</reporter>
                        <labels>
                    </labels>
                <created>Tue, 5 Feb 2013 02:39:18 -0600</created>
                <updated>Tue, 5 Feb 2013 02:39:18 -0600</updated>
                                    <version>2.0.2</version>
                                                <component>docs</component>
                                <votes>0</votes>
                        <watches>1</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>8509</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-170] After upgrading to  2.0.2 with CBC163, I now get timesouts again!!!</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-170</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>I was using 2.0.0 beta3 with the patch for TIMEOUTS manually applied....this was working fine but I had high CPU. This ran for weeks (if not a month) without any&lt;br/&gt;
timeouts at all...I was the happiest with lcb as I had been in a long time. However, after getting some complaints from my server admins and NOC, I upgraded to &lt;br/&gt;
2.0.2 with the fix for high CPU...&lt;br/&gt;
&lt;br/&gt;
I rebuilt all modules and rolled to production. It&amp;#39;s now been about 4 hours and I have received 2 timeouts as to where I had NONE for weeks without this change.&lt;br/&gt;
&lt;br/&gt;
The load is now normal though but somehow something has broken because of this fix.&lt;br/&gt;
&lt;br/&gt;
I looked at the change with CBC-163, but I don&amp;#39;t see how this could have broken the code...but, it has - I promise. Can someone please take a look?&lt;br/&gt;
&lt;br/&gt;
HELP!</description>
                <environment>CentsOS 5.X, 64 Bit, libev version</environment>
            <key id="21905">CCBC-170</key>
            <summary>After upgrading to  2.0.2 with CBC163, I now get timesouts again!!!</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="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="mleib">Michael Leib</reporter>
                        <labels>
                    </labels>
                <created>Tue, 22 Jan 2013 16:02:42 -0600</created>
                <updated>Wed, 6 Feb 2013 15:43:10 -0600</updated>
                                    <version>2.0.2</version>
                                                <component>library</component>
                                <votes>0</votes>
                        <watches>1</watches>
                                                    <comments>
                    <comment id="49900" author="mleib" created="Wed, 6 Feb 2013 15:41:14 -0600"  >I have changed my code around so that I have an ev_timer throttle the millions of lcb_get() requests that I need to make over multiple request chunks from a queue rather than doing it all in a single loop and then letting libev handle it all and that appears to be working. There is still be a problem with the latest code if you do millions of requests within a function call before control is returned to the libev event loop. This doesn&amp;#39;t happen everytime, but it does happen frequently enough. &lt;br/&gt;
&lt;br/&gt;
Keeping the number of lcb_get() calls sitting on the event stack low makes a BIG difference.&lt;br/&gt;
&lt;br/&gt;
Once again, with the version that didn&amp;#39;t have the high-load fix implemented worked great (except for the load)...when the fix was applied, large amounts of pending events cause TIMEOUT returns from lcb_get(),</comment>
                    <comment id="49901" author="mleib" created="Wed, 6 Feb 2013 15:43:10 -0600"  >And, of course, event with an ev_timer throttle of .01 secs, performance is about 1/4 of what it was when I just threw everything on the queue -&lt;br/&gt;
basically about 5k/sec throughput vs 20k/sec just focusing on lcb_get() returns. My CB Cluster (2 servers) is reporting 50K ops/sec consistently&lt;br/&gt;
without issue.</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>8651</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-169] Handle 30x HTTP response code when chosen node doesn&apos;t have active vbuckets</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-169</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description></description>
                <environment></environment>
            <key id="21762">CCBC-169</key>
            <summary>Handle 30x HTTP response code when chosen node doesn&apos;t have active vbuckets</summary>
                <type id="2" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/newfeature.png">New Feature</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="avsej">Sergey Avseyev</reporter>
                        <labels>
                    </labels>
                <created>Tue, 15 Jan 2013 02:27:42 -0600</created>
                <updated>Tue, 5 Mar 2013 16:08:38 -0600</updated>
                                    <version>2.0.2</version>
                <version>2.0.3</version>
                                <fixVersion>2.1.0</fixVersion>
                                <component>library</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="47760" author="ingenthr" created="Tue, 15 Jan 2013 02:38:07 -0600"  >Changed the description to be clear that we should be handling more 30x codes.  </comment>
                </comments>
                <issuelinks>
                        <issuelinktype id="10000">
                <name>Dependency</name>
                                <outwardlinks description="depends on">
                            <issuelink>
            <issuekey id="20257">MB-6922</issuekey>
        </issuelink>
                    </outwardlinks>
                                            </issuelinktype>
                    </issuelinks>
                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                <customfield id="customfield_10010" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                <customfieldname>Flagged</customfieldname>
                <customfieldvalues>
                        <customfieldvalue key="10010"><![CDATA[Release Note]]></customfieldvalue>
    
                </customfieldvalues>
            </customfield>
                                                                                                                            <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>8517</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-152] Provide lcb_check to (weakly) check for the existence of a key</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-152</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>This API will be a variant of OBSERVE and shall do a simple probe against the master node to see if the key exists in cache.&lt;br/&gt;
&lt;br/&gt;
We need to have this in libcouchbase as normal observe is implemented by &amp;#39;broadcasting&amp;#39; to all the nodes</description>
                <environment></environment>
            <key id="21487">CCBC-152</key>
            <summary>Provide lcb_check to (weakly) check for the existence of a key</summary>
                <type id="2" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/newfeature.png">New Feature</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="mnunberg">Mark Nunberg</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Fri, 21 Dec 2012 13:26:43 -0600</created>
                <updated>Fri, 21 Dec 2012 13:27:18 -0600</updated>
                                    <version>2.0.1</version>
                                                <component>library</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>11115</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-145] Provide API for durability operations</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-145</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>This feature will provide a callback-oriented API for durability (aka observe-poll) operations. Considering that the logic of implementing these operations has proved somewhat more complex than intended, it would be better to centralize this in libcouchbase.&lt;br/&gt;
&lt;br/&gt;
The API will provide a &amp;quot;durability set&amp;quot; which is a group of keys to be monitored, a &amp;quot;per-key&amp;quot; callback for when each key reaches its persistence/durability requirements, a &amp;quot;set callback&amp;quot; for when all keys have been endured (or have encountered a condition in which no further retries can be made)</description>
                <environment></environment>
            <key id="21311">CCBC-145</key>
            <summary>Provide API for durability operations</summary>
                <type id="2" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/newfeature.png">New Feature</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="3" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/inprogress.png">In Progress</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="mnunberg">Mark Nunberg</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Thu, 13 Dec 2012 12:37:36 -0600</created>
                <updated>Fri, 21 Dec 2012 18:59:38 -0600</updated>
                                                    <fixVersion>2.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>0</watches>
                                                        <issuelinks>
                        <issuelinktype id="10000">
                <name>Dependency</name>
                                <outwardlinks description="depends on">
                            <issuelink>
            <issuekey id="21476">CCBC-150</issuekey>
        </issuelink>
                    </outwardlinks>
                                            </issuelinktype>
                    </issuelinks>
                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>11179</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-144] Standardize view option handling</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-144</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>Centralize view option conversion, validation, and construction so dependent code does not have to repeat the same boilerplate all the time. This makes it easier for client libraries to adapt to new view options, as well as provide common expected behavior with current options.</description>
                <environment></environment>
            <key id="21289">CCBC-144</key>
            <summary>Standardize view option handling</summary>
                <type id="2" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/newfeature.png">New Feature</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="3" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/inprogress.png">In Progress</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="mnunberg">Mark Nunberg</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Wed, 12 Dec 2012 16:22:25 -0600</created>
                <updated>Thu, 10 Jan 2013 15:47:26 -0600</updated>
                                                    <fixVersion>2.1.0</fixVersion>
                                <component>library</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="45976" author="mnunberg" created="Thu, 13 Dec 2012 11:58:32 -0600"  >&lt;a href=&quot;http://review.couchbase.org/#/c/23249/&quot;&gt;http://review.couchbase.org/#/c/23249/&lt;/a&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>11178</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-135] lcb_server_purge_implicit_responses: Assertion `nr == sizeof(req)&apos; failed</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-135</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>Cannot reproduce, this is all the info I have&lt;br/&gt;
&lt;br/&gt;
FAIL GetMulti - MgetOrdered [tests/phpt/GetMulti/MgetOrdered.phpt] &lt;br/&gt;
&lt;br/&gt;
&lt;a href=&apos;mailto:mnunberg@csure&apos;&gt;mnunberg@csure&lt;/a&gt;:/sources/lcb2.0-repo/php$ cat tests/phpt/GetMulti/*.out&lt;br/&gt;
PHP_COUCHBASE_OK&lt;br/&gt;
php: src/server.c:799: lcb_server_purge_implicit_responses: Assertion `nr == sizeof(req)&amp;#39; failed.&lt;br/&gt;
&lt;br/&gt;
*Might* be related to &lt;a href=&quot;http://www.couchbase.com/issues/browse/CCBC-120&quot; title=&quot;Unhandled opcode=92&quot;&gt;&lt;strike&gt;CCBC-120&lt;/strike&gt;&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
To reiterate again, I cannot reproduce this - I just happened to notice it</description>
                <environment></environment>
            <key id="21127">CCBC-135</key>
            <summary>lcb_server_purge_implicit_responses: Assertion `nr == sizeof(req)&apos; failed</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="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Tue, 4 Dec 2012 14:22:41 -0600</created>
                <updated>Fri, 14 Dec 2012 13:04:43 -0600</updated>
                                    <version>2.0.0</version>
                                                <component>library</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="45433" author="mnunberg" created="Wed, 5 Dec 2012 01:11:02 -0600"  >#0  0x00007f4d29d00475 in *__GI_raise (sig=&amp;lt;optimized out&amp;gt;) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64&lt;br/&gt;
#1  0x00007f4d29d036f0 in *__GI_abort () at abort.c:92&lt;br/&gt;
#2  0x00007f4d29cf9621 in *__GI___assert_fail (assertion=0x7f4d28a88fd3 &amp;quot;nr == sizeof(req)&amp;quot;, &lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;file=&amp;lt;optimized out&amp;gt;, line=799, function=0x7f4d28a893c0 &amp;quot;lcb_server_purge_implicit_responses&amp;quot;)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at assert.c:81&lt;br/&gt;
#3  0x00007f4d28a7ab53 in lcb_server_purge_implicit_responses (c=0x2c35ff0, seqno=34, &lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end=1354691478793889000) at src/server.c:799&lt;br/&gt;
#4  0x00007f4d28a79a56 in lcb_server_destroy (server=0x2c35ff0) at src/server.c:394&lt;br/&gt;
#5  0x00007f4d28a74ba5 in lcb_destroy (instance=0x2c83ed0) at src/instance.c:347&lt;br/&gt;
#6  0x00007f4d28c9b836 in php_couchbase_res_dtor (rsrc=&amp;lt;optimized out&amp;gt;)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /sources/lcb2.0-repo/php/couchbase.c:43&lt;br/&gt;
#7  0x00000000006ae89e in list_entry_destructor (ptr=0x7f4d27d177d8)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /tmp/buildd/php5-5.4.4/Zend/zend_list.c:183&lt;br/&gt;
#8  0x00000000006ac6bd in zend_hash_del_key_or_index (ht=0xdb8750, arKey=0x0, nKeyLength=0, h=56, &lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;flag=753497888) at /tmp/buildd/php5-5.4.4/Zend/zend_hash.c:531&lt;br/&gt;
#9  0x00000000006ae9b1 in _zend_list_delete (id=14243) at /tmp/buildd/php5-5.4.4/Zend/zend_list.c:57&lt;br/&gt;
#10 0x000000000068fa5a in _zval_ptr_dtor (zval_ptr=0x7f4d27d175d8)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /tmp/buildd/php5-5.4.4/Zend/zend_variables.h:35&lt;br/&gt;
#11 0x00000000006bf947 in zend_object_std_dtor (object=0x7f4d27c9c978)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /tmp/buildd/php5-5.4.4/Zend/zend_objects.c:54&lt;br/&gt;
#12 0x00000000006bf979 in zend_objects_free_object_storage (object=0x7f4d27c9c978)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /tmp/buildd/php5-5.4.4/Zend/zend_objects.c:137&lt;br/&gt;
#13 0x00000000006c5693 in zend_objects_store_del_ref_by_handle_ex (handle=753383344, handlers=0x37a3)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /tmp/buildd/php5-5.4.4/Zend/zend_objects_API.c:220&lt;br/&gt;
#14 0x00000000006c56b3 in zend_objects_store_del_ref (zobject=0x7f4d27ca0b60)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /tmp/buildd/php5-5.4.4/Zend/zend_objects_API.c:172&lt;br/&gt;
#15 0x000000000068fa5a in _zval_ptr_dtor (zval_ptr=0x7f4d27cfc130)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /tmp/buildd/php5-5.4.4/Zend/zend_variables.h:35&lt;br/&gt;
#16 0x00000000006ac7b8 in zend_hash_destroy (ht=0x7f4d27cfd508)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /tmp/buildd/php5-5.4.4/Zend/zend_hash.c:560&lt;br/&gt;
#17 0x00000000006bf8ec in zend_object_std_dtor (object=0x7f4d27cb9900)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /tmp/buildd/php5-5.4.4/Zend/zend_objects.c:44&lt;br/&gt;
#18 0x00000000006bf979 in zend_objects_free_object_storage (object=0x7f4d27cb9900)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /tmp/buildd/php5-5.4.4/Zend/zend_objects.c:137&lt;br/&gt;
#19 0x00000000006c5693 in zend_objects_store_del_ref_by_handle_ex (handle=753383728, handlers=0x37a3)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /tmp/buildd/php5-5.4.4/Zend/zend_objects_API.c:220&lt;br/&gt;
#20 0x00000000006c56b3 in zend_objects_store_del_ref (zobject=0x7f4d27cb9100)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /tmp/buildd/php5-5.4.4/Zend/zend_objects_API.c:172&lt;br/&gt;
#21 0x000000000068fa5a in _zval_ptr_dtor (zval_ptr=0x7f4d27cb9a78)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /tmp/buildd/php5-5.4.4/Zend/zend_variables.h:35&lt;br/&gt;
#22 0x00000000006ac7b8 in zend_hash_destroy (ht=0x7f4d27cb9c58)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /tmp/buildd/php5-5.4.4/Zend/zend_hash.c:560&lt;br/&gt;
---Type &amp;lt;return&amp;gt; to continue, or q &amp;lt;return&amp;gt; to quit---&lt;br/&gt;
#23 0x000000000069d9f7 in _zval_dtor_func (zvalue=0x7f4d27cb9d38)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /tmp/buildd/php5-5.4.4/Zend/zend_variables.c:43&lt;br/&gt;
#24 0x000000000068fa5a in _zval_ptr_dtor (zval_ptr=0x7f4d27e325b0)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /tmp/buildd/php5-5.4.4/Zend/zend_variables.h:35&lt;br/&gt;
#25 0x00000000006bf947 in zend_object_std_dtor (object=0x7f4d27cf8fa8)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /tmp/buildd/php5-5.4.4/Zend/zend_objects.c:54&lt;br/&gt;
#26 0x00000000006bf979 in zend_objects_free_object_storage (object=0x7f4d27cf8fa8)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /tmp/buildd/php5-5.4.4/Zend/zend_objects.c:137&lt;br/&gt;
#27 0x00000000006c51c7 in zend_objects_store_free_object_storage (objects=0xdb8880)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /tmp/buildd/php5-5.4.4/Zend/zend_objects_API.c:92&lt;br/&gt;
#28 0x000000000068ffbc in shutdown_executor () at /tmp/buildd/php5-5.4.4/Zend/zend_execute_API.c:297&lt;br/&gt;
#29 0x000000000069e9e5 in zend_deactivate () at /tmp/buildd/php5-5.4.4/Zend/zend.c:941&lt;br/&gt;
#30 0x000000000063e36a in php_request_shutdown (dummy=0x37a3) at /tmp/buildd/php5-5.4.4/main/main.c:1781&lt;br/&gt;
#31 0x0000000000748374 in do_cli (argc=0, argv=0x7fff0f1f03e5)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /tmp/buildd/php5-5.4.4/sapi/cli/php_cli.c:1174&lt;br/&gt;
#32 0x00000000004310ca in main (argc=32767, argv=0x2a5e210)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /tmp/buildd/php5-5.4.4/sapi/cli/php_cli.c:1361&lt;br/&gt;
(gdb) &lt;br/&gt;
</comment>
                    <comment id="45437" author="mnunberg" created="Wed, 5 Dec 2012 01:28:12 -0600"  >Core Dump -- self-compiled versions of lcb and php-ext</comment>
                    <comment id="46035" author="ingenthr" created="Fri, 14 Dec 2012 13:04:43 -0600"  >Talking with Mark, he can&amp;#39;t regularly repro this, but does still see it randomly&lt;br/&gt;
</comment>
                </comments>
                    <attachments>
                    <attachment id="15962" name="core" size="10932224" author="mnunberg" created="Wed, 5 Dec 2012 01:28:12 -0600" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>11113</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-128] Allow semi-static bootstrapping</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-128</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>I&amp;#39;m marking this as critical because many folks seem to frown upon the high delays (read http connection latency) when establishing a new couchbase client.&lt;br/&gt;
&lt;br/&gt;
In this case, this would be a constructor option available for lcb_create which will accept an opaque &amp;#39;map file&amp;#39;. This &amp;#39;map file&amp;#39; will really just be a dump of a vbucket configuration. What makes this different from compat mode is that the clients will bootstrap when a network error or timeout occurs.&lt;br/&gt;
&lt;br/&gt;
However in the normal model of spawn -&amp;gt; mc operation, where the cluster config is fairly static, there is no need for the latency induced by an extra http connection.&lt;br/&gt;
&lt;br/&gt;
We&amp;#39;d need to implement file-locking semantics to write to this file (we&amp;#39;d maybe just ask for a path to read/write the config to/from, perhaps checking the timestamp, too).. as we&amp;#39;d have multiple clients trying to read/write to this. This is simple enough in Unix&lt;br/&gt;
&lt;br/&gt;
This is in conjunction with a different discussion regarding how to best handle re-bootstrapping, where it was suggested that we really don&amp;#39;t need the bootstrap connection in the first place.&lt;br/&gt;
&lt;br/&gt;
There are inherent risks involved with this approach, for example, if one specifies the wrong nodes, then we only know about this during the re-bootstrap.</description>
                <environment></environment>
            <key id="20850">CCBC-128</key>
            <summary>Allow semi-static bootstrapping</summary>
                <type id="2" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/newfeature.png">New Feature</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Mon, 19 Nov 2012 22:38:26 -0600</created>
                <updated>Tue, 5 Mar 2013 16:08:38 -0600</updated>
                                    <version>2.0.0beta2</version>
                                <fixVersion>2.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>1</watches>
                                                    <comments>
                    <comment id="44401" author="ingenthr" created="Mon, 19 Nov 2012 23:30:55 -0600"  >I&amp;#39;m certainly not opposed to this idea, but I&amp;#39;m not sure about it being at the critical level.  I do think it&amp;#39;d have to be portable though.  &lt;br/&gt;
&lt;br/&gt;
Sergey, what do you think?  Is this a hotly needed feature?</comment>
                    <comment id="44474" author="avsej" created="Tue, 20 Nov 2012 15:04:56 -0600"  >Frankly speaking I don&amp;#39;t understand the benefit from dumping some configuration to the disk. It might be better to implement lcb_reconnect() and in this case the user just won&amp;#39;t destroy lcb_t internal structs and reuse previous in-memory config.</comment>
                    <comment id="44477" author="mnunberg" created="Tue, 20 Nov 2012 15:38:45 -0600"  >This is for performance enhancements, it&amp;#39;s not directly related to failures, but can increase speed for some use cases dramatically, as it cuts out a lot of latency.&lt;br/&gt;
&lt;br/&gt;
The idea is that the node map is static, so we don&amp;#39;t need to have the initial HTTP connection.&lt;br/&gt;
&lt;br/&gt;
If you really want to be inventive, this can also use POSIX IPC instead of actual &amp;#39;disk&amp;#39; (i.e. define a common shm path). The idea here in any event is to not depend so heavily on the REST connection in normal non-failure situations.</comment>
                    <comment id="44480" author="ingenthr" created="Tue, 20 Nov 2012 16:22:06 -0600"  >While I think this makes sense, I do believe it can be deferred.</comment>
                    <comment id="50322" author="ingenthr" created="Wed, 13 Feb 2013 14:48:39 -0600"  >Let&amp;#39;s see about this in the near future Sergey.  We can discuss in our next sync up.&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>8811</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-111] Make iops functions &apos;private&apos;, and discourage calls to run_event_loop/stop_event_loop</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-111</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>There&amp;#39;s quite a bit of user code which calls io-&amp;gt;run_event_loop and io-&amp;gt;stop_event_loop.&lt;br/&gt;
&lt;br/&gt;
These functions are largely private and are intended for use by libcouchbase itself. The fact that they are public API is only accidental, due to the fact that they are part of the iops structure.&lt;br/&gt;
&lt;br/&gt;
These functions should never be called by user code: &lt;br/&gt;
&lt;br/&gt;
1) They are a source of confusion (especially when mixed with lcb_wait)&lt;br/&gt;
2) They prevent any kind of wrapping/sanity logic done by lcb_wait (some already exists, and some can be implemented in future versions)&lt;br/&gt;
&lt;br/&gt;
The following should be done&lt;br/&gt;
&lt;br/&gt;
1) Remove the iops structure definition from being included by the main header file. Thus, #include &amp;lt;libcouchbase/couchbase.h&amp;gt; should not allow a dereference of the iops structure. Rather the iops structure should be defined in a new header file (iops.h) - so that users who want to explicitly manipulate and write event loop plugins can include it, but should otherwise not be present in &amp;#39;user&amp;#39; code. types.h should include a predeclaration of the structure so that it may still be passed around as a simple pointer value.&lt;br/&gt;
&lt;br/&gt;
2) Document the purpose of run_event_loop/stop_event_loop. Make it very clear that lcb_wait should be used in all synchronous use cases. If we have any examples using run_event_loop/stop_event_loop, remove them.&lt;br/&gt;
&lt;br/&gt;
3) [ Optional? ] - In order to further discourage users from using these functions, throw a compiler warning/error for those functions unless LIBCOUCHBASE_INTERNAL is defined - tbd</description>
                <environment></environment>
            <key id="20356">CCBC-111</key>
            <summary>Make iops functions &apos;private&apos;, and discourage calls to run_event_loop/stop_event_loop</summary>
                <type id="3" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/task.png">Task</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="mnunberg">Mark Nunberg</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Mon, 22 Oct 2012 15:25:39 -0500</created>
                <updated>Mon, 10 Dec 2012 07:47:33 -0600</updated>
                                    <version>2.0.0beta2</version>
                                                <component>library</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>11180</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-110] Implement lcb_reconnect() which will reconnect all dead sockets</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-110</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>This functionality very important for long-living connection handles</description>
                <environment></environment>
            <key id="20300">CCBC-110</key>
            <summary>Implement lcb_reconnect() which will reconnect all dead sockets</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="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="avsej">Sergey Avseyev</reporter>
                        <labels>
                    </labels>
                <created>Wed, 17 Oct 2012 15:19:29 -0500</created>
                <updated>Tue, 20 Nov 2012 14:40:01 -0600</updated>
                                    <version>2.0.0beta2</version>
                                                <component>library</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="44467" author="ingenthr" created="Tue, 20 Nov 2012 14:40:01 -0600"  >This issue needs more of a description.&lt;br/&gt;
&lt;br/&gt;
As discussed with Sergey, it&amp;#39;s visible when using libcouchbase in a completely asynchronous app with an external event loop.  According to Sergey, this does not affect any of our main use cases with Ruby/PHP/node and rebuilding the connection.</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>11359</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-108] Allow per-command retries for not-my-vbucket and other transient errors</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-108</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>We should avoid the possibility of &amp;#39;infinite&amp;#39; errors and allow the user the ability of seeing the &amp;#39;real&amp;#39; error which caused the command to fail..&lt;br/&gt;
&lt;br/&gt;
&lt;a href=&quot;http://review.couchbase.org/13177&quot;&gt;http://review.couchbase.org/13177&lt;/a&gt;</description>
                <environment></environment>
            <key id="20093">CCBC-108</key>
            <summary>Allow per-command retries for not-my-vbucket and other transient errors</summary>
                <type id="4" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Thu, 4 Oct 2012 19:34:41 -0500</created>
                <updated>Mon, 10 Dec 2012 07:47:32 -0600</updated>
                                    <version>2.0.0beta</version>
                                                                <votes>0</votes>
                        <watches>0</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>11360</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-127] libvbucket RPM is missing /usr/lib64/libvbucket.la file</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-127</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>The libvbucket1 rpm does not include the libvbucket.la file. The libcouchbase.la file references libvbucket.la as a dependency.&lt;br/&gt;
&lt;br/&gt;
Linking via libtool against libcouchbase fails because of this. For example, compiling the php-ext-couchbase package fails like:&lt;br/&gt;
&lt;br/&gt;
/bin/sh /root/code/php-ext-couchbase/libtool --mode=link cc -DPHP_ATOM_INC -I/root/code/php-ext-couchbase/include -I/root/code/php-ext-couchbase/main -I/root/code/php-ext-couchbase -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/usr/include/  -DHAVE_CONFIG_H  -g -O2   -o couchbase.la -export-dynamic -avoid-version -prefer-pic -module -rpath /root/code/php-ext-couchbase/modules  compress.lo couchbase.lo fastlz/fastlz.lo -lz -lcouchbase&lt;br/&gt;
grep: /usr/lib64/libvbucket.la: No such file or directory&lt;br/&gt;
/bin/sed: can&amp;#39;t read /usr/lib64/libvbucket.la: No such file or directory&lt;br/&gt;
libtool: link: `/usr/lib64/libvbucket.la&amp;#39; is not a valid libtool archive&lt;br/&gt;
make: *** [couchbase.la] Error 1&lt;br/&gt;
&lt;br/&gt;
I created a fake libvbucket.la by copying /usr/lib64/libcouchbase.la and editing it, and it allowed the compile to succeed.&lt;br/&gt;
&lt;br/&gt;
</description>
                <environment>libvbucket1-1.8.0.4-1&lt;br/&gt;
centos 5.5 couchbase repo&lt;br/&gt;
x86_64</environment>
            <key id="20816">CCBC-127</key>
            <summary>libvbucket RPM is missing /usr/lib64/libvbucket.la file</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="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="TimSmith">Tim Smith</reporter>
                        <labels>
                    </labels>
                <created>Fri, 16 Nov 2012 17:51:51 -0600</created>
                <updated>Fri, 16 Nov 2012 17:51:51 -0600</updated>
                                    <version>1.0</version>
                                                <component>library</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>11112</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-116] Heavy errors during short network loss</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-116</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>During network loss to the nodes, there are heavy network errors - a combination of both timed-out operations as well as operations which fail with a network error. Might we want to provide an option to retry these operations?&lt;br/&gt;
&lt;br/&gt;
</description>
                <environment></environment>
            <key id="20606">CCBC-116</key>
            <summary>Heavy errors during short network loss</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="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Wed, 7 Nov 2012 11:55:50 -0600</created>
                <updated>Wed, 14 Nov 2012 11:55:10 -0600</updated>
                                    <version>2.0.0beta2</version>
                                                <component>library</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="43984" author="ingenthr" created="Wed, 14 Nov 2012 11:55:10 -0600"  >While this would be nice, I think failure of operations during network loss is okay as long as we highlight the loss up the chain appropriately.  Leaving this as major.</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>11069</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-100] Allow Incremental Row Callbacks</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-100</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>View query results may return large amounts of data. We should offer a row callback which returns a JSON string whose contents is a single row.&lt;br/&gt;
&lt;br/&gt;
There are awesome JSON libraries to do this task, and it&amp;#39;s something that I&amp;#39;ve found myself doing in the Perl client.. so why not move it into libcouchbase and let everyone be happy? :).&lt;br/&gt;
&lt;br/&gt;
Basic idea:&lt;br/&gt;
Two callbacks are put into place. The first is a &amp;#39;row callback&amp;#39; which receives rows, and the second is a complete callback, at which time any other non-row data is returned as a JSON object.&lt;br/&gt;
&lt;br/&gt;
So for example&lt;br/&gt;
&lt;br/&gt;
{ &amp;quot;total_rows&amp;quot; : 30,&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;quot;rows&amp;quot; : [&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;{  &amp;quot;id&amp;quot; : &amp;quot;foo&amp;quot; },&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;quot;id&amp;quot; : bar&amp;quot; },&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;....&lt;br/&gt;
&lt;br/&gt;
The row callback will first receive the string &amp;#39;{ &amp;quot;id&amp;quot; : &amp;quot;foo&amp;quot; }&amp;#39;, then the second time around, &amp;#39;{&amp;quot;id&amp;quot;:&amp;quot;bar&amp;quot;}&amp;#39;&lt;br/&gt;
The complete callback will return:&lt;br/&gt;
&amp;#39; { &amp;quot;total_rows&amp;quot; : 30 } &amp;#39;&lt;br/&gt;
</description>
                <environment></environment>
            <key id="19677">CCBC-100</key>
            <summary>Allow Incremental Row Callbacks</summary>
                <type id="2" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/newfeature.png">New Feature</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="3" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/inprogress.png">In Progress</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="mnunberg">Mark Nunberg</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Tue, 11 Sep 2012 02:25:47 -0500</created>
                <updated>Sat, 8 Dec 2012 00:06:11 -0600</updated>
                                                    <fixVersion>2.0.1</fixVersion>
                                <component>library</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>8431</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-83] Update the getting started to match the Beer sample DB </title>
                <link>http://www.couchbase.com/issues/browse/CCBC-83</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>Once the sample DB has been integrated into the server, update the getting started (both on the web page and in the documentation) to use the sample database.&lt;br/&gt;
</description>
                <environment></environment>
            <key id="18378">CCBC-83</key>
            <summary>Update the getting started to match the Beer sample DB </summary>
                <type id="4" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="3" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/inprogress.png">In Progress</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="ingenthr">Matt Ingenthron</reporter>
                        <labels>
                    </labels>
                <created>Thu, 12 Jul 2012 00:55:30 -0500</created>
                <updated>Thu, 18 Oct 2012 11:53:21 -0500</updated>
                                                                    <component>docs</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="38711" author="ingenthr" created="Thu, 13 Sep 2012 01:10:46 -0500"  >Sergey: Can you update the getting started web page to do some gets/sets against the beer sample DB?</comment>
                    <comment id="38712" author="avsej" created="Thu, 13 Sep 2012 01:30:38 -0500"  >Ok, will do it on staging</comment>
                    <comment id="41786" author="ingenthr" created="Thu, 18 Oct 2012 11:53:21 -0500"  >I think this is closeable, right?</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>10823</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-84] Updated screencast for /develop pages </title>
                <link>http://www.couchbase.com/issues/browse/CCBC-84</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>Create an updated screencast to ship with the new 2.0 developer SDKs</description>
                <environment></environment>
            <key id="18379">CCBC-84</key>
            <summary>Updated screencast for /develop pages </summary>
                <type id="4" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="ingenthr">Matt Ingenthron</assignee>
                                <reporter username="ingenthr">Matt Ingenthron</reporter>
                        <labels>
                    </labels>
                <created>Thu, 12 Jul 2012 00:55:55 -0500</created>
                <updated>Thu, 12 Jul 2012 00:56:01 -0500</updated>
                                                                                    <votes>0</votes>
                        <watches>0</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>11361</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-49] API reference is complete</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-49</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description></description>
                <environment></environment>
            <key id="15876">CCBC-49</key>
            <summary>API reference is complete</summary>
                <type id="2" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/newfeature.png">New Feature</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="ingenthr">Matt Ingenthron</assignee>
                                <reporter username="ingenthr">Matt Ingenthron</reporter>
                        <labels>
                    </labels>
                <created>Thu, 12 Jan 2012 02:14:31 -0600</created>
                <updated>Mon, 10 Dec 2012 07:47:32 -0600</updated>
                                    <version>1.0</version>
                                                <component>docs</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>10825</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-205] Provide stricter semantics/behavior for configuration cache.</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-205</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>We may want to create a &amp;#39;cache-only&amp;#39; mode in which creation of the client fails if the cache cannot be created (e.g. a bad path was passed, or the file is not writeable, etc.)&lt;br/&gt;
&lt;br/&gt;
Currently, the cache is mostly a transparent extra, but there is no way for a user to determine whether the mechanism is at all working.</description>
                <environment></environment>
            <key id="24005">CCBC-205</key>
            <summary>Provide stricter semantics/behavior for configuration cache.</summary>
                <type id="4" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="trond">Trond Norbye</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Tue, 30 Apr 2013 17:57:30 -0500</created>
                <updated>Wed, 1 May 2013 16:43:06 -0500</updated>
                                                                    <component>library</component>
                                <votes>0</votes>
                        <watches>2</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>10938</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-3] libcouchbase lacks a tutorial</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-3</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>libcouchbase lacks a tutorial document</description>
                <environment></environment>
            <key id="14864">CCBC-3</key>
            <summary>libcouchbase lacks a tutorial</summary>
                <type id="2" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/newfeature.png">New Feature</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="ingenthr">Matt Ingenthron</assignee>
                                <reporter username="ingenthr">Matt Ingenthron</reporter>
                        <labels>
                    </labels>
                <created>Mon, 15 Aug 2011 00:28:35 -0500</created>
                <updated>Thu, 2 May 2013 16:33:11 -0500</updated>
                                                    <fixVersion>2.0.1</fixVersion>
                                <component>docs</component>
                                <votes>0</votes>
                        <watches>4</watches>
                                                    <comments>
                    <comment id="53532" author="kzeller" created="Tue, 26 Mar 2013 15:19:18 -0500"  >Dependencies, Blockers:&lt;br/&gt;
&lt;br/&gt;
-Need sample application for C SDK demonstrating CRUD and using Views from SDK.&lt;br/&gt;
-Need technical notes and information on sample application.&lt;br/&gt;
-Any related resources?&lt;br/&gt;
&lt;br/&gt;
</comment>
                    <comment id="53533" author="kzeller" created="Tue, 26 Mar 2013 15:19:59 -0500"  >See information required/dependencies.</comment>
                </comments>
                <issuelinks>
                        <issuelinktype id="10001">
                <name>Duplicate</name>
                                                <inwardlinks description="is duplicated by">
                            <issuelink>
            <issuekey id="15875">CCBC-48</issuekey>
        </issuelink>
                    </inwardlinks>
                            </issuelinktype>
                    </issuelinks>
                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9021</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-204] configuration cache does not work for memcached buckets</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-204</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>Currently, the configuration cache relies on not_my_vbucket responses as an indicator that the configuration needs to be updated.  In an environment with memcached buckets only though, there will not be such a response and thus we need another way to reliably update the configuration.&lt;br/&gt;
&lt;br/&gt;
One thought would be to simply ensure the configuration cache is not more than NN seconds old.  The process who has the configuration connection would simply need to touch it every NN-1 seconds if the configuration connection is still active.  &lt;br/&gt;
&lt;br/&gt;
If that process exits, then after NN seconds, processes will race to create a new configuration cache file.&lt;br/&gt;
&lt;br/&gt;
The only downside I can see is that certain failure modes (stale TCP socket) would still need to be handled.</description>
                <environment>multiplatform</environment>
            <key id="23964">CCBC-204</key>
            <summary>configuration cache does not work for memcached buckets</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="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="trond">Trond Norbye</assignee>
                                <reporter username="ingenthr">Matt Ingenthron</reporter>
                        <labels>
                    </labels>
                <created>Mon, 29 Apr 2013 11:18:22 -0500</created>
                <updated>Wed, 8 May 2013 06:31:57 -0500</updated>
                                    <version>2.0.6</version>
                                <fixVersion>2.1.0</fixVersion>
                                <component>library</component>
                                <votes>0</votes>
                        <watches>1</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>10888</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-207] Failed connection attempts will hang until timeout interval is reached on win32</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-207</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>Failed connection errors are not detected in the select() call. This is because the select call does not add the socket to the exception fdset.&lt;br/&gt;
&lt;br/&gt;
MSDN documentation states that failed connections are delivered through exceptfds, and that only successful connections are delivered as writability notifications. See &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/windows/desktop/ms740141(v=vs.85).aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/windows/desktop/ms740141(v=vs.85).aspx&lt;/a&gt;</description>
                <environment></environment>
            <key id="24144">CCBC-207</key>
            <summary>Failed connection attempts will hang until timeout interval is reached on win32</summary>
                <type id="3" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/task.png">Task</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Wed, 8 May 2013 15:55:16 -0500</created>
                <updated>Wed, 8 May 2013 15:55:16 -0500</updated>
                                    <version>2.0.6</version>
                                                <component>library</component>
                                <votes>0</votes>
                        <watches>2</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>11109</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-198] Instance should close REST connection upon receiving valid config cache</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-198</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>If a valid config cache configuration is received, there is no point in keeping the REST socket open; (one of the reasons someone would even want to use a cached config is in order to reduce load from the server - so we should try to minimize connections in such cases).&lt;br/&gt;
&lt;br/&gt;
Close the socket immediately (or eventually) if a valid configuration is obtained. Re-open as necessary.</description>
                <environment></environment>
            <key id="23475">CCBC-198</key>
            <summary>Instance should close REST connection upon receiving valid config cache</summary>
                <type id="4" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Mon, 1 Apr 2013 12:54:01 -0500</created>
                <updated>Sat, 11 May 2013 13:28:28 -0500</updated>
                                    <version>2.0.5</version>
                                                <component>library</component>
                                <votes>0</votes>
                        <watches>1</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>10318</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-137] libcouchbase test improvements</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-137</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>Generic improvements and fixes for libcouchbase test suite</description>
                <environment></environment>
            <key id="19498">CCBC-137</key>
            <summary>libcouchbase test improvements</summary>
                <type id="3" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/task.png">Task</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Fri, 31 Aug 2012 11:36:01 -0500</created>
                <updated>Sat, 11 May 2013 13:31:12 -0500</updated>
                                                                                    <votes>0</votes>
                        <watches>0</watches>
                                                                                          <attachments>
                </attachments>
            <subtasks>
            <subtask id="19499">CCBC-138</subtask>
            <subtask id="19500">CCBC-139</subtask>
            <subtask id="19566">CCBC-140</subtask>
            <subtask id="19654">CCBC-141</subtask>
            <subtask id="19655">CCBC-142</subtask>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>11174</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-139] add timeout tests for libcouchbase</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-139</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description></description>
                <environment></environment>
            <key id="19500">CCBC-139</key>
            <summary>add timeout tests for libcouchbase</summary>
                <type id="7" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/task_agile.png">Technical task</type>
                    <parent id="19498">CCBC-137</parent>
                        <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="mnunberg">Mark Nunberg</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Fri, 31 Aug 2012 11:37:04 -0500</created>
                <updated>Sat, 8 Dec 2012 00:11:17 -0600</updated>
                                                                                    <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="37514" author="farshid" created="Fri, 31 Aug 2012 17:34:24 -0500"  >1- timeout to a server that is down&lt;br/&gt;
2- timeout a server that is slow </comment>
                    <comment id="37678" author="mnunberg" created="Wed, 5 Sep 2012 11:06:17 -0500"  >Apparently there are some new tests for this already.. I&amp;#39;ll document them again during next pass</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>11181</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-4] libcouchbase lacks sample applications</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-4</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>Libcouchbase requires sample applications for completeness.</description>
                <environment></environment>
            <key id="14865">CCBC-4</key>
            <summary>libcouchbase lacks sample applications</summary>
                <type id="2" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/newfeature.png">New Feature</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="ingenthr">Matt Ingenthron</reporter>
                        <labels>
                    </labels>
                <created>Mon, 15 Aug 2011 00:29:27 -0500</created>
                <updated>Sat, 11 May 2013 13:31:34 -0500</updated>
                                                    <fixVersion>2.0.1</fixVersion>
                                <component>docs</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="21977" author="trond" created="Thu, 1 Sep 2011 23:53:43 -0500"  >This is not true. There are at least 4 sample applications in the source code: memcat, memcp, memrm and memdump </comment>
                    <comment id="21979" author="ingenthr" created="Thu, 1 Sep 2011 23:57:08 -0500"  >This is on the &amp;quot;docs&amp;quot; component, and with all client libraries, we have a more comprehensive sample application, so you&amp;#39;re correct, but there&amp;#39;s more to it.</comment>
                    <comment id="25581" author="avsej" created="Mon, 9 Apr 2012 15:31:22 -0500"  >There is vacuum application &lt;a href=&quot;https://github.com/trondn/vacuum&quot;&gt;https://github.com/trondn/vacuum&lt;/a&gt; and the corresponding blog post on Trond&amp;#39;s blog &lt;a href=&quot;http://trondn.blogspot.com/2012/01/so-whats-story-about-libcouchbase-and.html&quot;&gt;http://trondn.blogspot.com/2012/01/so-whats-story-about-libcouchbase-and.html&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
Why use them in docs?</comment>
                    <comment id="37148" author="mnunberg" created="Tue, 28 Aug 2012 16:17:02 -0500"  >From my experience in answering developers&amp;#39; questions regarding libcouchbase, I don&amp;#39;t think sample applications would be as helpful as providing common code idioms, such as ways to handle multi-get, ways to handle errors; things like expiry etc.&lt;br/&gt;
&lt;br/&gt;
It would take quite a bit to write a useful &amp;quot;application&amp;quot; for libcouchbase, so let&amp;#39;s just stick to idioms for now.. and assume our readers know how to program in C :)</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>10826</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-142] test libcouchbase observe functionality</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-142</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description></description>
                <environment></environment>
            <key id="19655">CCBC-142</key>
            <summary>test libcouchbase observe functionality</summary>
                <type id="7" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/task_agile.png">Technical task</type>
                    <parent id="19498">CCBC-137</parent>
                        <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="mnunberg">Mark Nunberg</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Mon, 10 Sep 2012 12:38:02 -0500</created>
                <updated>Sat, 8 Dec 2012 00:11:17 -0600</updated>
                                                                                    <votes>0</votes>
                        <watches>0</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>8725</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-210] segfault from lcb_wait and libev</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-210</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>When running a test with a broken cluster, I happened to have PHP segfault after a long, long wait.&lt;br/&gt;
&lt;br/&gt;
#0  0xffffffffffffffff in ?? ()&lt;br/&gt;
#1  0x00002aab69d1fab4 in ?? () from /usr/lib64/libcouchbase.so.2&lt;br/&gt;
#2  0x00002aab69d16421 in ?? () from /usr/lib64/libcouchbase.so.2&lt;br/&gt;
#3  0x00002aab6b271e73 in ev_invoke_pending () from /usr/lib64/libev.so.4&lt;br/&gt;
#4  0x00002aab6b276688 in ev_run () from /usr/lib64/libev.so.4&lt;br/&gt;
#5  0x00002aab6b06dd86 in ?? () from /usr/lib64/libcouchbase_libev.so&lt;br/&gt;
#6  0x00002aab69d1e698 in lcb_wait () from /usr/lib64/libcouchbase.so.2&lt;br/&gt;
#7  0x00002aab69af22b3 in php_couchbase_view_impl (ht=2, &lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return_value=0x178de850, return_value_ptr=0x0, this_ptr=0x178dcf28, &lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return_value_used=1, oo=1, uri_only=0)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /tmp/tmpwlG54H/couchbase-1.1.5/views.c:347&lt;br/&gt;
#8  0x00002aab69adfe86 in zim_couchbase_view (ht=395387424, return_value=0x1, &lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return_value_ptr=0x11, this_ptr=0x0, return_value_used=16)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at /tmp/tmpwlG54H/couchbase-1.1.5/apidecl.c:768&lt;br/&gt;
#9  0x00000000005e78e9 in ?? ()&lt;br/&gt;
#10 0x00000000005bd9ab in execute ()&lt;br/&gt;
#11 0x0000000000599f45 in zend_execute_scripts ()&lt;br/&gt;
#12 0x000000000054ad48 in php_execute_script ()&lt;br/&gt;
#13 0x0000000000622cde in ?? ()&lt;br/&gt;
#14 0x0000003d16a1d994 in __libc_start_main () from /lib64/libc.so.6&lt;br/&gt;
#15 0x0000000000421789 in _start ()&lt;br/&gt;
</description>
                <environment></environment>
            <key id="24191">CCBC-210</key>
            <summary>segfault from lcb_wait and libev</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="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="ingenthr">Matt Ingenthron</reporter>
                        <labels>
                    </labels>
                <created>Fri, 10 May 2013 17:58:41 -0500</created>
                <updated>Thu, 16 May 2013 04:52:14 -0500</updated>
                                    <version>2.0.6</version>
                                <fixVersion>2.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>2</watches>
                                                    <comments>
                    <comment id="57867" author="ingenthr" created="Fri, 10 May 2013 18:01:49 -0500"  >by the way, I always seem to get libev when installing libcouchbase2 on CentOS 5.8.  It has libevent 1.4.  Is this normal?</comment>
                    <comment id="58477" author="avsej" created="Thu, 16 May 2013 04:50:59 -0500"  >libcouchbase2 depends on virtual package libcouchbase2-backend, which is provided by libcouchbase2-libev and libcouchbase2-libevent. I think it picks libev version because of alphabetical order. By the time I&amp;#39;ve written package description I cannot found how to write alternaltion rule, like for DEB packages (which is also ordered) &lt;a href=&quot;https://github.com/couchbase/libcouchbase/blob/master/packaging/deb/control#L58&quot;&gt;https://github.com/couchbase/libcouchbase/blob/master/packaging/deb/control#L58&lt;/a&gt;.&lt;br/&gt;
&lt;br/&gt;
$ ls -1&lt;br/&gt;
libcouchbase2-2.0.6-1.x86_64.rpm&lt;br/&gt;
libcouchbase2-bin-2.0.6-1.x86_64.rpm&lt;br/&gt;
libcouchbase2-core-2.0.6-1.x86_64.rpm&lt;br/&gt;
libcouchbase2-libev-2.0.6-1.x86_64.rpm&lt;br/&gt;
libcouchbase2-libevent-2.0.6-1.x86_64.rpm&lt;br/&gt;
libcouchbase-debuginfo-2.0.6-1.x86_64.rpm&lt;br/&gt;
libcouchbase-devel-2.0.6-1.x86_64.rpm&lt;br/&gt;
</comment>
                    <comment id="58478" author="avsej" created="Thu, 16 May 2013 04:52:14 -0500"  >and the stacktrace not complete, is it possible to install debug symbols and reproduce it?</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>11167</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-211] libcouchbase may touch a failed node after failover</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-211</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>Library version: v2.0.6 (compiled from the source code, on x64)&lt;br/&gt;
Server version: v2.0.1&lt;br/&gt;
Number of nodes in my test setup: 3 (2 x CentOS 6.2 x64, and 1 x CentOS 5.8 x86, if it&amp;#39;s of any relevance)&lt;br/&gt;
&lt;br/&gt;
Steps to reproduce:&lt;br/&gt;
&lt;br/&gt;
1. Create a new cluster&lt;br/&gt;
2. Print the returned value by lcb_get_server_list function (there shoud be 3 servers printed)&lt;br/&gt;
3. Bring down network on one of servers&lt;br/&gt;
4. Try to put several values, until one of them is routed to the failed node. The library should return an error, which is expected.&lt;br/&gt;
5. Repeat 2&lt;br/&gt;
6. Manually fail over the failed node.&lt;br/&gt;
7. Print the returned value by lcb_get_server_list function (there should be 2 servers printed)&lt;br/&gt;
8. Try to put several values, until one of them is routed to the failed node. This behaviour is not expected.&lt;br/&gt;
9. Start rebalance.&lt;br/&gt;
10. While rebalancing takes place, a request might be routed to the failed node. It is not expected as well.&lt;br/&gt;
11. Once rebalance is completed, no requests are routed to the failed node. It is as expected.&lt;br/&gt;
&lt;br/&gt;
Thanks in advance for your support.</description>
                <environment>Observed on CentOS (details in the description)</environment>
            <key id="24366">CCBC-211</key>
            <summary>libcouchbase may touch a failed node after failover</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="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="ichernetsky">Ivan Chernetsky</reporter>
                        <labels>
                    </labels>
                <created>Tue, 21 May 2013 10:24:35 -0500</created>
                <updated>Tue, 21 May 2013 10:24:35 -0500</updated>
                                    <version>2.0.6</version>
                                                <component>library</component>
                                <votes>0</votes>
                        <watches>1</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>11351</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-212] IO Enhancements</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-212</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>This super bug is an umbrella task for refactoring our IO system to be more streamlined, readable, and compatible with other I/O models.</description>
                <environment></environment>
            <key id="24368">CCBC-212</key>
            <summary>IO Enhancements</summary>
                <type id="5" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/epic.png">Epic</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Tue, 21 May 2013 11:44:01 -0500</created>
                <updated>Tue, 21 May 2013 11:46:07 -0500</updated>
                                                                                    <votes>0</votes>
                        <watches>1</watches>
                                                        <issuelinks>
                        <issuelinktype id="10000">
                <name>Dependency</name>
                                <outwardlinks description="depends on">
                            <issuelink>
            <issuekey id="24369">CCBC-213</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="24370">CCBC-214</issuekey>
        </issuelink>
                    </outwardlinks>
                                            </issuelinktype>
                    </issuelinks>
                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                            <customfield id="customfield_10085" key="com.pyxis.greenhopper.jira:gh-epic-color">
                <customfieldname>Epic Colour</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>#f7ddb4</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                                                <customfield id="customfield_10083" key="com.pyxis.greenhopper.jira:gh-epic-label">
                <customfieldname>Epic Name</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>IO Enhancements</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10084" key="com.pyxis.greenhopper.jira:gh-epic-status">
                <customfieldname>Epic Status</customfieldname>
                <customfieldvalues>
                        <customfieldvalue key="10050"><![CDATA[To Do]]></customfieldvalue>

                </customfieldvalues>
            </customfield>
                                                                                                                                                <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>11353</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-213] Unify internal connect() routines</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-213</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>This will unify the connection routines in terms of error handling and callback invocations.</description>
                <environment></environment>
            <key id="24369">CCBC-213</key>
            <summary>Unify internal connect() routines</summary>
                <type id="4" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="mnunberg">Mark Nunberg</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Tue, 21 May 2013 11:44:59 -0500</created>
                <updated>Tue, 21 May 2013 11:45:13 -0500</updated>
                                                                    <component>library</component>
                                <votes>0</votes>
                        <watches>1</watches>
                                                        <issuelinks>
                        <issuelinktype id="10000">
                <name>Dependency</name>
                                                <inwardlinks description="blocks">
                            <issuelink>
            <issuekey id="24368">CCBC-212</issuekey>
        </issuelink>
                    </inwardlinks>
                            </issuelinktype>
                    </issuelinks>
                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>11354</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-214] Re-design internal operations in a queue/linked list structure</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-214</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description></description>
                <environment></environment>
            <key id="24370">CCBC-214</key>
            <summary>Re-design internal operations in a queue/linked list structure</summary>
                <type id="4" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Tue, 21 May 2013 11:45:57 -0500</created>
                <updated>Tue, 21 May 2013 11:46:07 -0500</updated>
                                                                    <component>library</component>
                                <votes>0</votes>
                        <watches>1</watches>
                                                        <issuelinks>
                        <issuelinktype id="10000">
                <name>Dependency</name>
                                                <inwardlinks description="blocks">
                            <issuelink>
            <issuekey id="24368">CCBC-212</issuekey>
        </issuelink>
                    </inwardlinks>
                            </issuelinktype>
                    </issuelinks>
                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>11355</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-129] Add libevent support for win32</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-129</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>I created a NMakefile and made changes to the code to support libevent on windows.&lt;br/&gt;
&lt;br/&gt;
Files affected:&lt;br/&gt;
iofactory.c&lt;br/&gt;
plugin-libevent.c&lt;br/&gt;
&lt;br/&gt;
New file:&lt;br/&gt;
NMakefile.libevent&lt;br/&gt;
&lt;br/&gt;
I uploaded a zipfile of the changes if you are interested in merging them.</description>
                <environment></environment>
            <key id="20864">CCBC-129</key>
            <summary>Add libevent support for win32</summary>
                <type id="2" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/newfeature.png">New Feature</type>
                                <priority id="4" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/minor.png">Minor</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="brettharrison">Brett Harrison</reporter>
                        <labels>
                    </labels>
                <created>Tue, 20 Nov 2012 17:29:44 -0600</created>
                <updated>Wed, 21 Nov 2012 12:53:20 -0600</updated>
                                    <version>2.0.0beta2</version>
                                                                <votes>0</votes>
                        <watches>1</watches>
                                                    <comments>
                    <comment id="44517" author="avsej" created="Wed, 21 Nov 2012 02:03:12 -0600"  >it would be awesome if you can move your patch to our review system. &lt;a href=&quot;http://review.couchbase.com&quot;&gt;http://review.couchbase.com&lt;/a&gt;</comment>
                    <comment id="44571" author="brettharrison" created="Wed, 21 Nov 2012 12:46:49 -0600"  >Is there a guild on how to use the review system?  If you can explain the steps I&amp;#39;ll upload the patch.</comment>
                    <comment id="44572" author="ingenthr" created="Wed, 21 Nov 2012 12:50:48 -0600"  >It&amp;#39;s roughly &lt;a href=&quot;http://www.couchbase.com/wiki/display/couchbase/Contributing+Changes&quot;&gt;http://www.couchbase.com/wiki/display/couchbase/Contributing+Changes&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
Repo tool isn&amp;#39;t required for this project though</comment>
                    <comment id="44574" author="ingenthr" created="Wed, 21 Nov 2012 12:53:20 -0600"  >Also, Brett: saw your CLA on review.couchbase.org and you&amp;#39;re all set.</comment>
                </comments>
                    <attachments>
                    <attachment id="15850" name="win32libevent.zip" size="7900" author="brettharrison" created="Tue, 20 Nov 2012 17:29:44 -0600" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>11331</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-101] allow google test suite to be preserved between invocations of make distclean and friends</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-101</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>additionally we should make it into a DSO and link the tests against that.. would make it somewhat quicker..&lt;br/&gt;
&lt;br/&gt;
This is obviously not a major issue.. but would be nice :)</description>
                <environment></environment>
            <key id="19813">CCBC-101</key>
            <summary>allow google test suite to be preserved between invocations of make distclean and friends</summary>
                <type id="4" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="4" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/minor.png">Minor</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Tue, 18 Sep 2012 11:35:28 -0500</created>
                <updated>Tue, 18 Sep 2012 11:35:28 -0500</updated>
                                                                                    <votes>0</votes>
                        <watches>0</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>11362</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-78] Improved Sample Code for &quot;Simple Example&quot;</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-78</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>Hi,&lt;br/&gt;
&lt;br/&gt;
I received a variety of content corrections from a customer for the C SDK. I made all possible, however some require changes in the sample code the SDK Team provides. The existing sample code is here:&lt;br/&gt;
&lt;br/&gt;
&lt;a href=&quot;http://www.couchbase.com/docs/couchbase-sdk-c-1.0/simple_example.html&quot;&gt;http://www.couchbase.com/docs/couchbase-sdk-c-1.0/simple_example.html&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
The customer requests:&lt;br/&gt;
&lt;br/&gt;
- The tutorial example bails from callbacks with exit(), rather than&lt;br/&gt;
passing control back to main (after setting a global flag, for example,&lt;br/&gt;
or one passed in via the cookie, etc.).&lt;br/&gt;
- The tutorial should also show use of libcouchbase_remove() and what to&lt;br/&gt;
expect from libcouchbase_mget() afterwards (the latter is in the Python&lt;br/&gt;
docs, but not the C docs).&lt;br/&gt;
- The tutorial should use libcouchbase_destroy().&lt;br/&gt;
- Some mention of whether a disconnect is needed or not would be&lt;br/&gt;
appropriate.&lt;br/&gt;
&lt;br/&gt;
Let me know if you are able to demonstrate use of these other methods in the sample code and send the code. I will add the new sample and document.&lt;br/&gt;
&lt;br/&gt;
Also let me know if a C client needs to be destroyed and if so how.&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
</description>
                <environment>all platforms</environment>
            <key id="18200">CCBC-78</key>
            <summary>Improved Sample Code for &quot;Simple Example&quot;</summary>
                <type id="4" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="4" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/minor.png">Minor</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="kzeller">Karen Zeller</reporter>
                        <labels>
                        <label>customer</label>
                    </labels>
                <created>Thu, 5 Jul 2012 16:25:15 -0500</created>
                <updated>Thu, 5 Jul 2012 16:25:15 -0500</updated>
                                    <version>1.0</version>
                                                <component>library</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>11078</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-161] libcouchbase_flush wrongly documented to &quot;flush entire cluster&quot;</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-161</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>The docs say that libcouchbase_flush() will &amp;quot;Flush the entire cluster&amp;quot; and &amp;quot;libcouchbase_flush may be used to remove all key/value pairs from the entire cluster.&amp;quot;&lt;br/&gt;
&lt;br/&gt;
It actually flushes a bucket, not the entire cluster.</description>
                <environment>&lt;a href=&quot;http://www.couchbase.com/docs/couchbase-sdk-c-2.0/api-reference-summary.html#table-couchbase-sdk-c-summary&quot;&gt;http://www.couchbase.com/docs/couchbase-sdk-c-2.0/api-reference-summary.html#table-couchbase-sdk-c-summary&lt;/a&gt;</environment>
            <key id="21601">CCBC-161</key>
            <summary>libcouchbase_flush wrongly documented to &quot;flush entire cluster&quot;</summary>
                <type id="1" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="4" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/minor.png">Minor</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="TimSmith">Tim Smith</reporter>
                        <labels>
                    </labels>
                <created>Thu, 3 Jan 2013 13:56:09 -0600</created>
                <updated>Thu, 2 May 2013 16:32:40 -0500</updated>
                                    <version>2.0.1</version>
                                                <component>docs</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                            <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>10829</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CCBC-206] Improve libcouchbase rpm instructions</title>
                <link>http://www.couchbase.com/issues/browse/CCBC-206</link>
                <project id="10070" key="CCBC">Couchbase C client library libcouchbase</project>
                        <description>There is currently no documentation about installing libcouchbase from the rpm or deb files. &lt;br/&gt;
The only documentation is for installation with yum or apt-get. &lt;br/&gt;
&lt;br/&gt;
Since some packages are optional, more instructions would be nice. </description>
                <environment></environment>
            <key id="22780">CCBC-206</key>
            <summary>Improve libcouchbase rpm instructions</summary>
                <type id="4" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="4" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/minor.png">Minor</priority>
                    <status id="1" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/open.png">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                    <security id="10011">Public</security>
                        <assignee username="avsej">Sergey Avseyev</assignee>
                                <reporter username="james.mauss">James Mauss</reporter>
                        <labels>
                        <label>info-request</label>
                    </labels>
                <created>Tue, 19 Feb 2013 16:23:56 -0600</created>
                <updated>Thu, 2 May 2013 16:35:16 -0500</updated>
                                                                                    <votes>0</votes>
                        <watches>2</watches>
                                                    <comments>
                    <comment id="53783" author="kzeller" created="Thu, 28 Mar 2013 16:32:15 -0500"  >Hi,&lt;br/&gt;
&lt;br/&gt;
Can you point me to any information about rpm install for the SDK on github, or anywhere else. Assign back to me to document.&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
Thanks,&lt;br/&gt;
&lt;br/&gt;
Karen&lt;br/&gt;
</comment>
                    <comment id="57014" author="kzeller" created="Thu, 2 May 2013 16:17:19 -0500"  >Can you close this and reopen this under the Couchbase C Client Library project?&lt;br/&gt;
&lt;br/&gt;
We&amp;#39;re doing massive housekeeping on docs requests and want to keep this separate from server.&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
Thanks!</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>10710</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>
</channel>
</rss>