<!--
RSS generated by JIRA (5.2.4#845-sha1:c9f4cc41abe72fb236945343a1f485c2c844dac9) at Wed Jun 19 05:52:34 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+PCBC+AND+fixVersion+%3D+%221.1.0%22&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+PCBC+AND+fixVersion+%3D+%221.1.0%22</link>
        <description>An XML representation of a search request</description>
                <language>en-us</language>
                        <issue start="0" end="40" total="40"/>
                <build-info>
            <version>5.2.4</version>
            <build-number>845</build-number>
            <build-date>26-12-2012</build-date>
        </build-info>
<item>
            <title>[PCBC-159] incorrect timeout exceptions during required-durability function tests</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-159</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>When running the tests with the build mentioned above, I relatively regularly receive timeouts during the sync tests.  Given that the host is localhost and there is no active workload (and it&amp;#39;s on ssd), these seem to indicate a problem with the implementation of the required-durability functions.</description>
                <environment>Mac OS 10.8&lt;br/&gt;
2.0 build 1971&lt;br/&gt;
1.1.0-dp4-76-g2f51ee9&lt;br/&gt;
</environment>
            <key id="21149">PCBC-159</key>
            <summary>incorrect timeout exceptions during required-durability function tests</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="trond">Trond Norbye</assignee>
                                <reporter username="ingenthr">Matt Ingenthron</reporter>
                        <labels>
                    </labels>
                <created>Wed, 5 Dec 2012 00:19:20 -0600</created>
                <updated>Tue, 11 Dec 2012 19:59:32 -0600</updated>
                    <resolved>Wed, 5 Dec 2012 14:15:19 -0600</resolved>
                            <version>1.1.0</version>
                                <fixVersion>1.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="45427" author="ingenthr" created="Wed, 5 Dec 2012 00:20:07 -0600"  >logs showing the timeout exceptions.  these don&amp;#39;t have much data, but maybe there&amp;#39;s something interesting?</comment>
                    <comment id="45429" author="mnunberg" created="Wed, 5 Dec 2012 00:32:55 -0600"  >I&amp;#39;ve seen this issue as well (but initially thought I was just having a slow cluster). I&amp;#39;m willing to bet the issue is in the timeout loop itself rather than in libcouchbase or in somewhere &amp;#39;deeper&amp;#39;, as the other Observe tests pass.&lt;br/&gt;
&lt;br/&gt;
Additionally, they seem to take very long to complete (patch below does not).&lt;br/&gt;
&lt;br/&gt;
What&amp;#39;s odd is that I&amp;#39;ve run this through valgrind and it didn&amp;#39;t show any particular errors, and the errors are not always reproducible.&lt;br/&gt;
&lt;br/&gt;
fwiw, this seems to pass the tests&lt;br/&gt;
&lt;br/&gt;
&lt;a href=&quot;http://paste.scsys.co.uk/216801&quot;&gt;http://paste.scsys.co.uk/216801&lt;/a&gt;</comment>
                    <comment id="45430" author="ingenthr" created="Wed, 5 Dec 2012 00:34:26 -0600"  >Attached a packet capture showing the same issues.  I&amp;#39;m going to reconfigure the server and see if they go away, because I clearly see the polling, but I&amp;#39;ve not looked to see what&amp;#39;s happening with the poll.</comment>
                    <comment id="45431" author="ingenthr" created="Wed, 5 Dec 2012 00:44:50 -0600"  >Have a different failure under the remove scenario here.  This isn&amp;#39;t a timeout.&lt;br/&gt;
&lt;br/&gt;
see:&lt;br/&gt;
packetdump-&lt;a href=&quot;http://www.couchbase.com/issues/browse/PCBC-159&quot; title=&quot;incorrect timeout exceptions during required-durability function tests&quot;&gt;&lt;strike&gt;PCBC-159&lt;/strike&gt;&lt;/a&gt;_second-time.pcapng&lt;br/&gt;
php_test_results_20121205_0637.txt</comment>
                    <comment id="45494" author="trond" created="Wed, 5 Dec 2012 14:15:19 -0600"  >&lt;a href=&quot;http://review.couchbase.org/#/c/23103/1&quot;&gt;http://review.couchbase.org/#/c/23103/1&lt;/a&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="15958" name="packetdump-PCBC-159.pcapng" size="5423696" author="ingenthr" created="Wed, 5 Dec 2012 00:34:26 -0600" />
                    <attachment id="15960" name="packetdump-PCBC-159_second-time.pcapng" size="3712296" author="ingenthr" created="Wed, 5 Dec 2012 00:44:50 -0600" />
                    <attachment id="15956" name="php_test_results_20121205_0327.txt" size="61899" author="ingenthr" created="Wed, 5 Dec 2012 00:20:07 -0600" />
                    <attachment id="15957" name="php_test_results_20121205_0339.txt" size="37040" author="ingenthr" created="Wed, 5 Dec 2012 00:20:07 -0600" />
                    <attachment id="15959" name="php_test_results_20121205_0623.txt" size="36786" author="ingenthr" created="Wed, 5 Dec 2012 00:34:26 -0600" />
                    <attachment id="15961" name="php_test_results_20121205_0637.txt" size="36968" author="ingenthr" created="Wed, 5 Dec 2012 00:44:50 -0600" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9783</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-158] assertion in removeOnePersist.phpt at Sync.inc:222</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-158</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>Had reasons to run the tests to package things up.   I ran into this failed assertion.&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
001+ Assertion failed.. dumping backtrace..&lt;br/&gt;
001- PHP_COUCHBASE_OK&lt;br/&gt;
002+ #0  CBTestFramework-&amp;gt;dieCommon(Expected TRUE) called at [/Users/ingenthr/src/php-ext-couchbase/tests/cbtestframework/CBTestFramework.inc:113]&lt;br/&gt;
003+ #1  CBTestFramework-&amp;gt;assertTrue(, The document was mutated) called at [/Users/ingenthr/src/php-ext-couchbase/tests/Sync.inc:222]&lt;br/&gt;
004+ #2  Sync-&amp;gt;testRemoveOnePersist()&lt;br/&gt;
005+ #3  ReflectionMethod-&amp;gt;invoke(Sync Object ([] =&amp;gt; cbtestframework_error_handler,[handle] =&amp;gt; Resource id #10,[oo] =&amp;gt; Couchbase Object ([] =&amp;gt; Resource id #11))) called at [/Users/ingenthr/src/php-ext-couchbase/tests/cbtestframework/CBTestFramework.inc:195]&lt;br/&gt;
006+ #4  CBTestFramework-&amp;gt;runSingleTest(testRemoveOnePersist) called at [/Users/ingenthr/src/php-ext-couchbase/tests/cbtestframework/cbtest-phpt-loader.inc:19]&lt;br/&gt;
007+ #5  couchbase_phpt_runtest(Sync, testRemoveOnePersist) called at [/Users/ingenthr/src/php-ext-couchbase/tests/phpt/Sync/removeOnePersist.php:3]&lt;br/&gt;
008+ [CBTestFramework] Expected TRUE&lt;br/&gt;
</description>
                <environment>libcouchbase 2.0.0&lt;br/&gt;
Mac OS X 10.8</environment>
            <key id="21146">PCBC-158</key>
            <summary>assertion in removeOnePersist.phpt at Sync.inc:222</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="3">Duplicate</resolution>
                    <security id="10011">Public</security>
                        <assignee username="trond">Trond Norbye</assignee>
                                <reporter username="ingenthr">Matt Ingenthron</reporter>
                        <labels>
                    </labels>
                <created>Wed, 5 Dec 2012 00:12:01 -0600</created>
                <updated>Tue, 11 Dec 2012 19:59:32 -0600</updated>
                    <resolved>Wed, 5 Dec 2012 14:14:17 -0600</resolved>
                            <version>1.1.0</version>
                                <fixVersion>1.1.0</fixVersion>
                                <component>library</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="45426" author="ingenthr" created="Wed, 5 Dec 2012 00:12:49 -0600"  >Setting this to a blocker until we know the nature of it.</comment>
                    <comment id="45493" author="trond" created="Wed, 5 Dec 2012 14:14:17 -0600"  >This is the same issue as &lt;a href=&quot;http://www.couchbase.com/issues/browse/PCBC-159&quot; title=&quot;incorrect timeout exceptions during required-durability function tests&quot;&gt;&lt;strike&gt;PCBC-159&lt;/strike&gt;&lt;/a&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="15955" name="php_test_results_20121205_0403.txt" size="36968" author="ingenthr" created="Wed, 5 Dec 2012 00:13:24 -0600" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9784</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-153] move flush function to RESTful flush</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-153</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>With Couchbase bucket types and memcached bucket types, the RESTful flush should always be used in Couchbase Server.  Thus, the flush() function needs to be connected to the restful flush in libcouchbase:&lt;br/&gt;
&lt;a href=&quot;https://github.com/couchbase/libcouchbase/blob/master/tools/cbc.cc#L947&quot;&gt;https://github.com/couchbase/libcouchbase/blob/master/tools/cbc.cc#L947&lt;/a&gt;</description>
                <environment></environment>
            <key id="21032">PCBC-153</key>
            <summary>move flush function to RESTful flush</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="trond">Trond Norbye</assignee>
                                <reporter username="ingenthr">Matt Ingenthron</reporter>
                        <labels>
                    </labels>
                <created>Fri, 30 Nov 2012 15:21:54 -0600</created>
                <updated>Tue, 11 Dec 2012 19:55:28 -0600</updated>
                    <resolved>Tue, 4 Dec 2012 12:12:47 -0600</resolved>
                                            <fixVersion>1.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="45102" author="trond" created="Fri, 30 Nov 2012 15:26:48 -0600"  >Is this really a _blocker_ and something we can&amp;#39;t put in the release notes? I wouldn&amp;#39;t assume a &amp;quot;non-working&amp;quot; flush for the couchbase buckets to be the biggest problem for people in production....</comment>
                    <comment id="45278" author="trond" created="Mon, 3 Dec 2012 16:29:07 -0600"  >&lt;a href=&quot;http://review.couchbase.org/#/c/23014/&quot;&gt;http://review.couchbase.org/#/c/23014/&lt;/a&gt;</comment>
                    <comment id="45363" author="chuyskywalker" created="Tue, 4 Dec 2012 12:24:41 -0600"  >I know this is already resolved, but I&amp;#39;d actually implement our own wrapper to detect &amp;quot;is bucket memcached? ok, flush as normal. else _alldocs, loop, delete(key)&amp;quot;. It wasn&amp;#39;t a big deal to implement, just annoying.</comment>
                    <comment id="45367" author="ingenthr" created="Tue, 4 Dec 2012 12:49:36 -0600"  >Thanks Jeff&lt;br/&gt;
&lt;br/&gt;
Use of _alldocs is not recommended or really supported in Couchbase Server 2.0.  It works okay, but it can&amp;#39;t walk the views in an optimal way and thus churns through disk.&lt;br/&gt;
&lt;br/&gt;
The RESTful flush should be relatively speedy and will definitely be speedy in the long term and safe.</comment>
                    <comment id="45368" author="trond" created="Tue, 4 Dec 2012 12:50:11 -0600"  >The rest way should also work for me cached buckets</comment>
                </comments>
                    <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>9521</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-150] make default view timeout 75s</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-150</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>Since the server side view timeout is 60s, we should raise the client side a bit higher.  75s seems like the right number.  &lt;br/&gt;
&lt;br/&gt;
It must also be tuneable through the constructor to the client or the .ini file or both.</description>
                <environment></environment>
            <key id="20893">PCBC-150</key>
            <summary>make default view timeout 75s</summary>
                <type id="4" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="1" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/blocker.png">Blocker</priority>
                    <status id="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="trond">Trond Norbye</assignee>
                                <reporter username="ingenthr">Matt Ingenthron</reporter>
                        <labels>
                    </labels>
                <created>Wed, 21 Nov 2012 12:49:04 -0600</created>
                <updated>Tue, 11 Dec 2012 20:00:24 -0600</updated>
                    <resolved>Tue, 11 Dec 2012 20:00:24 -0600</resolved>
                            <version>1.1.0-dp1</version>
                <version>1.1.0-dp2</version>
                <version>1.1.0-dp3</version>
                <version>1.1.0-dp4</version>
                <version>1.1.0-dp5</version>
                                <fixVersion>1.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="44804" author="ingenthr" created="Mon, 26 Nov 2012 16:14:40 -0600"  >Per discussion with Trond, we don&amp;#39;t currently do anything for timeout other than the default libcouchbase timeout.  On this issue, we&amp;#39;ll change the timeout to the 75s standard.&lt;br/&gt;
&lt;br/&gt;
For what it&amp;#39;s worth, it wouldn&amp;#39;t hurt my feelings if we were to create a second timeout in libcouchbase for http requests.  Maybe there is one already?  The only problem with that is that the API/ABI in libcouchbase is required to be stable for now (since we hit Beta).</comment>
                    <comment id="45561" author="trond" created="Thu, 6 Dec 2012 04:23:57 -0600"  >&lt;a href=&quot;http://review.couchbase.org/23118&quot;&gt;http://review.couchbase.org/23118&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>9790</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-149] persist_to should imply master when greater than zero</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-149</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>Currently persist_to in the observe array will consider the criteria satisfied when *any* combination of nodes say that the key is persisted. The client should ensure that at least one of those nodes is the master.</description>
                <environment></environment>
            <key id="20847">PCBC-149</key>
            <summary>persist_to should imply master when greater than zero</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="mnunberg">Mark Nunberg</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Mon, 19 Nov 2012 19:52:05 -0600</created>
                <updated>Tue, 11 Dec 2012 19:55:28 -0600</updated>
                    <resolved>Fri, 23 Nov 2012 20:12:16 -0600</resolved>
                            <version>1.1.0-dp5</version>
                                <fixVersion>1.1.0</fixVersion>
                                                <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>9791</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-148] Key persistence checks wrong criterion</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-148</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>Derived from &lt;a href=&quot;http://www.couchbase.com/issues/browse/MB-7161&quot; title=&quot;under higher sets per second clients dont get all view results after observing for all mutations&quot;&gt;&lt;strike&gt;MB-7161&lt;/strike&gt;&lt;/a&gt;. I&amp;#39;ve got a fix for this, but just wanted to note it here.</description>
                <environment></environment>
            <key id="20846">PCBC-148</key>
            <summary>Key persistence checks wrong criterion</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="mnunberg">Mark Nunberg</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Mon, 19 Nov 2012 19:50:47 -0600</created>
                <updated>Tue, 11 Dec 2012 19:55:29 -0600</updated>
                    <resolved>Fri, 23 Nov 2012 20:11:58 -0600</resolved>
                            <version>1.1.0-dp5</version>
                                <fixVersion>1.1.0</fixVersion>
                                                <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>9792</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-147] Segmentation Fault (segfault) when querying view</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-147</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>When doing a query against a view, the php application segfaults. Set/get/delete commands all work fine.&lt;br/&gt;
&lt;br/&gt;
Attached is an strace, a stack trace from gdb, and various other support files, including the repro script.</description>
                <environment>PHP 5.3.13 / 5.3.15, Redhat 5.6</environment>
            <key id="20794">PCBC-147</key>
            <summary>Segmentation Fault (segfault) when querying view</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="mnunberg">Mark Nunberg</assignee>
                                <reporter username="chuyskywalker">Jeff Minard</reporter>
                        <labels>
                    </labels>
                <created>Thu, 15 Nov 2012 15:58:59 -0600</created>
                <updated>Mon, 19 Nov 2012 01:51:53 -0600</updated>
                    <resolved>Mon, 19 Nov 2012 01:51:53 -0600</resolved>
                            <version>1.1.0-dp5</version>
                                <fixVersion>1.1.0</fixVersion>
                                <component>library</component>
                                <votes>0</votes>
                        <watches>1</watches>
                                                    <comments>
                    <comment id="44149" author="chuyskywalker" created="Thu, 15 Nov 2012 15:59:19 -0600"  >I was asked to run a gdb, but I don&amp;#39;t really think it looks that helpful. I&amp;#39;ve attached it.</comment>
                    <comment id="44150" author="chuyskywalker" created="Thu, 15 Nov 2012 16:03:24 -0600"  >gdb file, looks pretty useless without a php debug symbols version</comment>
                    <comment id="44151" author="mnunberg" created="Thu, 15 Nov 2012 16:04:06 -0600"  >My bad. Type &amp;#39;bt&amp;#39; when you get the segfault :)&lt;br/&gt;
&lt;br/&gt;
That&amp;#39;ll show you the stack trace</comment>
                    <comment id="44152" author="chuyskywalker" created="Thu, 15 Nov 2012 16:12:57 -0600"  >Yes, this looks much more helpful :)</comment>
                    <comment id="44153" author="chuyskywalker" created="Thu, 15 Nov 2012 16:15:14 -0600"  >Here is the same segfault when using the latest couchbase.so compiled from the github master branch (so, cutting edge, I&amp;#39;d seen some lcb changes, so I figured I&amp;#39;d give ya both).</comment>
                    <comment id="44154" author="mnunberg" created="Thu, 15 Nov 2012 16:28:21 -0600"  >Can you try this patch?&lt;br/&gt;
&lt;br/&gt;
diff --git a/views.c b/views.c&lt;br/&gt;
index 6c7bc30..7d03c5a 100644&lt;br/&gt;
--- a/views.c&lt;br/&gt;
+++ b/views.c&lt;br/&gt;
@@ -52,12 +52,13 @@ void php_couchbase_complete_callback(lcb_http_request_t request,&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;
&amp;nbsp;&lt;br/&gt;
+       /** We have one extra byte in &amp;#39;data&amp;#39; */&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hti = emalloc(sizeof(*hti) + resp-&amp;gt;v.v0.nbytes);&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hti-&amp;gt;ndata = resp-&amp;gt;v.v0.nbytes;&lt;br/&gt;
-       memcpy(hti-&amp;gt;data, resp-&amp;gt;v.v0.bytes, hti-&amp;gt;ndata + 1);&lt;br/&gt;
+&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (hti-&amp;gt;ndata) {&lt;br/&gt;
-               hti-&amp;gt;data[hti-&amp;gt;ndata - 1] = &amp;#39;\0&amp;#39;;&lt;br/&gt;
-               hti-&amp;gt;ndata--;&lt;br/&gt;
+               memcpy(hti-&amp;gt;data, resp-&amp;gt;v.v0.bytes, hti-&amp;gt;ndata);&lt;br/&gt;
+               hti-&amp;gt;data[hti-&amp;gt;ndata] = &amp;#39;\0&amp;#39;;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;
&amp;nbsp;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ctx-&amp;gt;res-&amp;gt;rc = error;&lt;br/&gt;
&lt;br/&gt;
I&amp;#39;ll make it as a gerrit changeset as well..&lt;br/&gt;
</comment>
                    <comment id="44155" author="mnunberg" created="Thu, 15 Nov 2012 16:32:25 -0600"  >&lt;a href=&quot;http://review.couchbase.org/22573&quot;&gt;http://review.couchbase.org/22573&lt;/a&gt;</comment>
                    <comment id="44157" author="chuyskywalker" created="Thu, 15 Nov 2012 16:37:59 -0600"  >That changed fixed the segfault, yes. The value assigned to the variable from the $cb-&amp;gt;view() call is bool(false)</comment>
                    <comment id="44158" author="ingenthr" created="Thu, 15 Nov 2012 16:43:36 -0600"  >Thanks for the quick work Mark!  Looks like it&amp;#39;ll be closeable after it&amp;#39;s reviewed and in.</comment>
                </comments>
                    <attachments>
                    <attachment id="15822" name="cbt.php" size="220" author="chuyskywalker" created="Thu, 15 Nov 2012 15:58:59 -0600" />
                    <attachment id="15827" name="gdb-bt-git.txt" size="1410" author="chuyskywalker" created="Thu, 15 Nov 2012 16:15:14 -0600" />
                    <attachment id="15826" name="gdb-bt.txt" size="1389" author="chuyskywalker" created="Thu, 15 Nov 2012 16:12:57 -0600" />
                    <attachment id="15825" name="gdb.txt" size="926" author="chuyskywalker" created="Thu, 15 Nov 2012 16:03:24 -0600" />
                    <attachment id="15823" name="php-m-i.txt" size="811" author="chuyskywalker" created="Thu, 15 Nov 2012 15:58:59 -0600" />
                    <attachment id="15824" name="strace.txt" size="90002" author="chuyskywalker" created="Thu, 15 Nov 2012 15:58:59 -0600" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9793</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-144] getVersion() returns memcached version, not couchbase version</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-144</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>For whatever reason, when doing getVersion() on the php ext the showed version is not the couchbase one. I assume its the memcached one, but I think this will only confuse people.&lt;br/&gt;
&lt;br/&gt;
Is it possible to change this to the corresponding couchbase version?&lt;br/&gt;
&lt;br/&gt;
array(2) {&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;#39;192.168.56.101:11210&amp;#39; =&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;string(18) &amp;quot;1.4.4_600_g7ea975a&amp;quot;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;#39;192.168.56.102:11210&amp;#39; =&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;string(18) &amp;quot;1.4.4_600_g7ea975a&amp;quot;&lt;br/&gt;
}&lt;br/&gt;
&lt;br/&gt;
Michael</description>
                <environment></environment>
            <key id="20678">PCBC-144</key>
            <summary>getVersion() returns memcached version, not couchbase version</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="2">Won&apos;t Fix</resolution>
                    <security id="10011">Public</security>
                        <assignee username="trond">Trond Norbye</assignee>
                                <reporter username="daschl">Michael Nitschinger</reporter>
                        <labels>
                    </labels>
                <created>Sat, 10 Nov 2012 17:25:51 -0600</created>
                <updated>Tue, 11 Dec 2012 19:55:29 -0600</updated>
                    <resolved>Thu, 6 Dec 2012 04:49:59 -0600</resolved>
                            <version>1.1.0-dp5</version>
                                <fixVersion>1.1.0</fixVersion>
                                <component>library</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="43753" author="ingenthr" created="Sun, 11 Nov 2012 09:46:19 -0600"  >Unfortunately, this is a bit correct.  The memcached protocol &amp;quot;version&amp;quot; command returns that string.  We&amp;#39;re simply returning what the server says.  I know it&amp;#39;s a bit confusing in this instance.  I think I&amp;#39;d asked for this behavior, but maybe we need to reconsider it a bit.</comment>
                    <comment id="43754" author="ingenthr" created="Sun, 11 Nov 2012 09:49:34 -0600"  >Trond: not assigning this to you to fix it, but rather just to get your opinion on what we should do here.&lt;br/&gt;
&lt;br/&gt;
We have a getVersion() which maps to the memcached protocol version command.  Given that our server returns this string, should we change the behavior of getVersion() on the client?&lt;br/&gt;
&lt;br/&gt;
My current feeling is no.  Besides, this issue has never been reported by a real user.  We&amp;#39;re staying true to the interface we intended to implement, it&amp;#39;s not our fault that the string coming back is confusing.  &lt;br/&gt;
&lt;br/&gt;
What do you think?</comment>
                    <comment id="43786" author="trond" created="Mon, 12 Nov 2012 05:16:15 -0600"  >I don&amp;#39;t have a printout of what the REST response from the server looks like, but I think we should add a call to the library we may use to retrieve that version. I don&amp;#39;t think we should change the current getVersion() (in case someone use that already), but rather have something like getClusterVersion (or getNodeVersion). The cluster may be running multiple versions during an upgrade scenario...</comment>
                    <comment id="43787" author="daschl" created="Mon, 12 Nov 2012 05:18:42 -0600"  >If this is easily achievable, I&amp;#39;d definitely vote for it. It could be done the same way as getVersion() that returns an array for each node with the corresponding version.</comment>
                    <comment id="45563" author="trond" created="Thu, 6 Dec 2012 04:48:07 -0600"  >This is easily achieved with something among the lines of:&lt;br/&gt;
&lt;br/&gt;
&amp;lt;?php&lt;br/&gt;
$cb = new CouchbaseClusterManager(&amp;quot;localhost&amp;quot;, &amp;quot;Administrator&amp;quot;, &amp;quot;asdasd&amp;quot;);&lt;br/&gt;
$info = json_decode($cb-&amp;gt;getInfo());&lt;br/&gt;
foreach ($info-&amp;gt;{&amp;quot;nodes&amp;quot;} as $node) {&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;print $node-&amp;gt;{&amp;quot;hostname&amp;quot;} . &amp;quot; is running &amp;quot; . $node-&amp;gt;{&amp;quot;version&amp;quot;} . &amp;quot;\n&amp;quot;;&lt;br/&gt;
}&lt;br/&gt;
?&amp;gt;&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>9795</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-143] segfault during lcb handle-level error handler</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-143</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>This is 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; (stack trace there). Will fix accordingly soon.&lt;br/&gt;
&lt;br/&gt;
Basically the error handler checks for the &amp;#39;ctx&amp;#39; which is not reset in-between calls.&lt;br/&gt;
&lt;br/&gt;
The ideal solution should be for start_loop to accept a cookie argument and call lcb_set_cookie on it. This way there is always a valid cookie.&lt;br/&gt;
&lt;br/&gt;
Otherwise the cookie remains a stale pointer and when the global error handler is called, it crashes.</description>
                <environment></environment>
            <key id="20668">PCBC-143</key>
            <summary>segfault during lcb handle-level error handler</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="mnunberg">Mark Nunberg</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Fri, 9 Nov 2012 20:17:37 -0600</created>
                <updated>Tue, 11 Dec 2012 19:55:29 -0600</updated>
                    <resolved>Thu, 15 Nov 2012 01:23:45 -0600</resolved>
                            <version>1.0.4</version>
                <version>1.1.0-dp5</version>
                                <fixVersion>1.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="43822" author="mnunberg" created="Mon, 12 Nov 2012 14:47:20 -0600"  >&lt;a href=&quot;http://review.couchbase.org/#/c/22426/&quot;&gt;http://review.couchbase.org/#/c/22426/&lt;/a&gt;</comment>
                </comments>
                <issuelinks>
                        <issuelinktype id="10000">
                <name>Dependency</name>
                                <outwardlinks description="depends on">
                            <issuelink>
            <issuekey id="20666">CCBC-120</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>9796</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-142] Plug leaks reported by debug-mode php/zts</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-142</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>PHP_COUCHBASE_OK&lt;br/&gt;
[Fri Nov  9 14:45:38 2012]  Script:  &amp;#39;/sources/lcb2.0-repo/php/tests/phpt/Serialization/MixedSerializationErrors.php&amp;#39;&lt;br/&gt;
/sources/php-5.3.17/Zend/zend_execute_API.c(987) :  Freeing 0x018EF248 (32 bytes), script=/sources/lcb2.0-repo/php/tests/phpt/Serialization/MixedSerializationErrors.php&lt;br/&gt;
=== Total 1 memory leaks detected ===PHP_COUCHBASE_OK&lt;br/&gt;
[Fri Nov  9 14:45:39 2012]  Script:  &amp;#39;/sources/lcb2.0-repo/php/tests/phpt/Serialization/SerializeJsonArrayMixed.php&amp;#39;&lt;br/&gt;
/sources/php-5.3.17/Zend/zend_execute_API.c(987) :  Freeing 0x018086E0 (32 bytes), script=/sources/lcb2.0-repo/php/tests/phpt/Serialization/SerializeJsonArrayMixed.php&lt;br/&gt;
=== Total 1 memory leaks detected ===PHP_COUCHBASE_OK&lt;br/&gt;
[Fri Nov  9 14:45:39 2012]  Script:  &amp;#39;/sources/lcb2.0-repo/php/tests/phpt/Serialization/SerializeJsonObjectMixed.php&amp;#39;&lt;br/&gt;
/sources/php-5.3.17/Zend/zend_execute_API.c(987) :  Freeing 0x026C65F8 (32 bytes), script=/sources/lcb2.0-repo/php/tests/phpt/Serialization/SerializeJsonObjectMixed.php&lt;br/&gt;
=== Total 1 memory leaks detected ===mnunberg@csure:/sources/lcb2.0-repo/php$ &lt;br/&gt;
</description>
                <environment></environment>
            <key id="20663">PCBC-142</key>
            <summary>Plug leaks reported by debug-mode php/zts</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="trond">Trond Norbye</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Fri, 9 Nov 2012 16:47:33 -0600</created>
                <updated>Tue, 11 Dec 2012 19:55:29 -0600</updated>
                    <resolved>Mon, 12 Nov 2012 15:43:39 -0600</resolved>
                                            <fixVersion>1.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="43835" author="mnunberg" created="Mon, 12 Nov 2012 15:43:39 -0600"  >This should&amp;#39;ve been closed (fixed, merged), sorry :)</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9797</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-141] 1.1 dp releases not working on phps which do not export the symbol php_json_encode</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-141</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>This affects all php binaries which do not have the symbol &amp;quot;php_json_encode&amp;quot;. This includes EL5 and EL6 based linux distributions&lt;br/&gt;
&lt;br/&gt;
The library cannot load because the symbol is not found. Disabling using this symbol also means preventing views from functioning (as well as JSON serialization).&lt;br/&gt;
&lt;br/&gt;
I&amp;#39;d like to note that this is not our bug and not our fault. We are probably not the only extension relying on php_json* functions, and package creators (specifically redhat) should expose this symbol.&lt;br/&gt;
&lt;br/&gt;
Additionally, our configure script checks to see if the PHP_JSON_* constants are defined (and if not, compiles out the relevant code from views - this would make views not work, but not prevent the library from loading).&lt;br/&gt;
&lt;br/&gt;
In any event, we should find a way to work around this, as this bug has been seen quite a bit.&lt;br/&gt;
&lt;br/&gt;
One possible solution would be to call the php-level json encoding function. It may incur a  bit of overhead from calling into php, but the function itself is more likely to be there.</description>
                <environment></environment>
            <key id="20611">PCBC-141</key>
            <summary>1.1 dp releases not working on phps which do not export the symbol php_json_encode</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="3">Duplicate</resolution>
                    <security id="10011">Public</security>
                        <assignee username="ingenthr">Matt Ingenthron</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Wed, 7 Nov 2012 17:55:57 -0600</created>
                <updated>Fri, 10 May 2013 02:43:07 -0500</updated>
                    <resolved>Fri, 10 May 2013 02:43:07 -0500</resolved>
                            <version>1.1.0-dp5</version>
                                <fixVersion>1.1.0</fixVersion>
                                <component>library</component>
                                <votes>0</votes>
                        <watches>1</watches>
                                                    <comments>
                    <comment id="43517" author="mnunberg" created="Wed, 7 Nov 2012 17:56:34 -0600"  >Currently the only workaround is to compile your own php</comment>
                    <comment id="43518" author="ingenthr" created="Wed, 7 Nov 2012 18:01:36 -0600"  >One other solution that I&amp;#39;d be okay with is to simply uplevel our minimum version of CentOS/RHEL.  Unless there&amp;#39;s significant pushback, I really don&amp;#39;t see any reason to keep people living with ancient code for longer and longer periods of time.  &lt;br/&gt;
&lt;br/&gt;
Dissenting opinions accepted, but at some point you have to say &amp;quot;we don&amp;#39;t support that because it&amp;#39;s broken&amp;quot;, right?&lt;br/&gt;
&lt;br/&gt;
Do you think it&amp;#39;s likely that some minimum 5.x EL is fixed enough?  Or there&amp;#39;s some patchlevel that is fixed enough?&lt;br/&gt;
&lt;br/&gt;
If on the other hand, it&amp;#39;s just conscious decision to not expose that symbol and it&amp;#39;s only supported through PHP land, then calling up there as a workaround seems okay by me.  </comment>
                    <comment id="43519" author="ingenthr" created="Wed, 7 Nov 2012 18:02:43 -0600"  >Assigning this to the subject matter expert for now.  Will hopefully pick it back up soon.</comment>
                    <comment id="43520" author="ingenthr" created="Wed, 7 Nov 2012 18:04:57 -0600"  >One other question, I don&amp;#39;t think so, but is this possibly related to need to put the ini for loading the extension after the php_json as an extension?&lt;br/&gt;
&lt;br/&gt;
Another possible workaround is that if the license is permissive enough, we could just suck in the parts we need?  Possible API/ABI issues here I guess, but hard to say.</comment>
                    <comment id="43521" author="ingenthr" created="Wed, 7 Nov 2012 18:10:18 -0600"  >Duh, I see you proactively addressed the &amp;quot;which release&amp;quot; in the original description.  Thanks for that.</comment>
                    <comment id="43522" author="mnunberg" created="Wed, 7 Nov 2012 18:11:56 -0600"  >I&amp;#39;ve explored that possibility. The problem is that on rhel and centos don&amp;#39;t export that symbol. EPEL actually contains a json.so (php-pecl-json), but much to our my chagrin, it does not export that symbol either.&lt;br/&gt;
&lt;br/&gt;
I was thinking about sticking the significant bits inside our own code.. it&amp;#39;d probably be easier to just call the php level function though..&lt;br/&gt;
&lt;br/&gt;
This does seem to be a conscious decision by redhat - as this happens in CentOS 6.3 (EL6) as well. So this is obviously not fixed anywhere.</comment>
                    <comment id="43736" author="mnunberg" created="Sat, 10 Nov 2012 01:37:16 -0600"  >&lt;a href=&quot;http://review.couchbase.org/#/c/22425/&quot;&gt;http://review.couchbase.org/#/c/22425/&lt;/a&gt;</comment>
                    <comment id="43747" author="mnunberg" created="Sat, 10 Nov 2012 16:06:51 -0600"  >The problem is a bit more intricate it seems :)&lt;br/&gt;
&lt;br/&gt;
Apparently some of the json.so modules I&amp;#39;ve seen *do* export the php_json_* functions. HOWEVER, apparently php loads these modules with a line similar to dlopen(mod, RTLD_LOCAL..) making their symbols unavailable for other modules to use.&lt;br/&gt;
&lt;br/&gt;
A more complex workaround:&lt;br/&gt;
&lt;br/&gt;
static void (*_json_encode)(smart_str*, zval*, int TSRMLS_DC) = NULL;&lt;br/&gt;
static void (*_json_decode)(zval*, char*, int, zend_bool, long TSRMLS_DC) = NULL;&lt;br/&gt;
&lt;br/&gt;
static void _init_json_symbols(void)&lt;br/&gt;
{&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;zend_module_entry *m_ent;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int ret;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (_json_encode) {&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ret = zend_hash_find(&amp;amp;module_registry, &amp;quot;json&amp;quot;, sizeof(&amp;quot;json&amp;quot;), (void**)&amp;amp;m_ent);&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (ret == FAILURE) {&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fprintf(stderr, &amp;quot;Couldn&amp;#39;t load extension..\n&amp;quot;);&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;abort();&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_json_encode = DL_FETCH_SYMBOL(m_ent-&amp;gt;handle, &amp;quot;php_json_encode&amp;quot;);&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_json_decode = DL_FETCH_SYMBOL(m_ent-&amp;gt;handle, &amp;quot;php_json_decode&amp;quot;);&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (_json_encode == NULL || _json_decode == NULL) {&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fprintf(stderr, &amp;quot;Coudln&amp;#39;t find JSON handles!: %s\n&amp;quot;, dlerror());&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;abort();&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;
}&lt;br/&gt;
&lt;br/&gt;
void php_json_encode(smart_str *buf, zval *value, int options TSRMLS_DC)&lt;br/&gt;
{&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_init_json_symbols();&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_json_encode(buf, value, options TSRMLS_CC);&lt;br/&gt;
}&lt;br/&gt;
&lt;br/&gt;
void php_json_decode(zval *out, char *buf, int len, zend_bool assoc, long depth TSRMLS_DC)&lt;br/&gt;
{&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_init_json_symbols();&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_json_decode(out, buf, len, assoc, depth TSRMLS_CC);&lt;br/&gt;
}&lt;br/&gt;
</comment>
                    <comment id="43755" author="ingenthr" created="Sun, 11 Nov 2012 09:53:48 -0600"  >Very interesting.  Why is this done only on RHEL/CentOS?  We should check with some PHP internals folks before we go too far here.  Maybe there&amp;#39;s some subtlety we don&amp;#39;t understand. </comment>
                    <comment id="43756" author="Pierre" created="Sun, 11 Nov 2012 10:26:20 -0600"  >hi!&lt;br/&gt;
&lt;br/&gt;
Not sure what RHEL5/6 does but PHP 5.3.2 has these APIs exported since the very 1st day:&lt;br/&gt;
&lt;br/&gt;
&lt;a href=&quot;https://github.com/php/php-src/blob/php-5.3.2/ext/json/php_json.h&quot;&gt;https://github.com/php/php-src/blob/php-5.3.2/ext/json/php_json.h&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
Also json has always been a default extension in PHP, again something wrong at RHEL.&lt;br/&gt;
&lt;br/&gt;
I would suggest to add a configure check to see if it is exposed and refused to compile if it is missing. To me it is a bug in RHEL (not the 1st weird one :) and would not begin to duplicate code around (especially not for json, to ensure 100% compatibility and get all fixes in time).</comment>
                    <comment id="43757" author="mnunberg" created="Sun, 11 Nov 2012 11:09:01 -0600"  >The real problem is in the first line I mentioned; and it might be a change in the arguments of dlopen. If the json extension is truly loaded before the couchbase one, then the couchbase ext *should* find the appropriate symbols to use.&lt;br/&gt;
&lt;br/&gt;
However it seems that for RHEL (I haven&amp;#39;t checked on debian.. debian builds the json ext into the php executable itself, rhel provides it as a loadable module) even though the json extension is already loaded, because there is something weird with either the way it uses dlopen (default php header macro for DL_LOAD uses RTLD_GLOBAL, i.e. make the symbols global to the entire app.. but it might be that RHEL uses RTLD_LOCAL...).&lt;br/&gt;
&lt;br/&gt;
But we&amp;#39;re not duplicating code here and I personally like the call-to-php solution (even though it&amp;#39;s not the most elegant, it&amp;#39;s the most predictable/reliable. For example, I don&amp;#39;t know how the snippet in my last post would work on a php that doesn&amp;#39;t have json as a DSO)</comment>
                    <comment id="43766" author="mnunberg" created="Sun, 11 Nov 2012 13:49:56 -0600"  >So it seems we&amp;#39;re (or is it only me) looking at it from multiply wrong ways :)&lt;br/&gt;
&lt;br/&gt;
(1) RHEL (and debian) modify the default php DL_LOAD from using RTLD_LAZY (which would have avoided giving us this error) to RTLD_NOW&lt;br/&gt;
&lt;br/&gt;
(2) On Debian this is not a problem (at least not for JSON) since it&amp;#39;s compiled into the php binary&lt;br/&gt;
&lt;br/&gt;
(3) Even on RHEL, placing extension=json.so before extension=couchbase.so seems to do the trick. This is mentioned in the documentation&lt;br/&gt;
&lt;br/&gt;
(4) For tests, run-tests.php will not work. Unless a specifically crafted ini file is written, run-tests.php will not load the json extension at all. Defining an extra -d parameter will load the json extension; however the script counter-intuitively *appends* this option to the commandline, so one thus effectively has:&lt;br/&gt;
&lt;br/&gt;
-d extension=couchbase.so -d extension=json.so&lt;br/&gt;
&lt;br/&gt;
Coupled with RTLD_NOW, this fails.&lt;br/&gt;
&lt;br/&gt;
I&amp;#39;d still like to fix this in code; as this is a fairly confusing matter; if only to be able to print out a more meaningful user message.</comment>
                    <comment id="43767" author="Pierre" created="Sun, 11 Nov 2012 15:40:31 -0600"  >1) Not sure that should cause this error, as long as the loading order is respected.&lt;br/&gt;
&lt;br/&gt;
2) Debian does it right. JSON is a default builtin extension and should always be available, not optionally.&lt;br/&gt;
&lt;br/&gt;
3) Yes, loading order, that should be documented as such in the couchbase install documentation&lt;br/&gt;
&lt;br/&gt;
4) yes, it is expected, also using a php.ini is always a good thing, to avoid tests failure due to random php.ini being caught&lt;br/&gt;
&lt;br/&gt;
There is nothing to fix in couchbase, calling user land function is horribly slow and should really not be done for such thing.</comment>
                    <comment id="43768" author="mnunberg" created="Sun, 11 Nov 2012 16:06:27 -0600"  >The fix here would be to make users understand this a bit better.&lt;br/&gt;
&lt;br/&gt;
The point isn&amp;#39;t that something is broken, but rather that something is confusing. This issue is hinted in the couchbase ext documentation, but seems to be passed over by quite a few people who have run into this.&lt;br/&gt;
&lt;br/&gt;
This seems like a very subtle configuration aspect which users shouldn&amp;#39;t have to encounter; or at least something in which we&amp;#39;d be able to show the user an error message.&lt;br/&gt;
&lt;br/&gt;
So without going into a debate of terminology about what&amp;#39;s &amp;quot;broken&amp;quot; and whose &amp;quot;fault&amp;quot; it is, this is something that lots of users are seeing, and shouldn&amp;#39;t. Such fine minutiae really isn&amp;#39;t easy to pick up.&lt;br/&gt;
&lt;br/&gt;
Another option would have been to load the symbols dynamically from either the binary or from the loaded library (depending on the configuration) - however &amp;#39;php_json_decode&amp;#39; is now no longer an exported symbol (it&amp;#39;s defined in the header as an inline wrapper around php_json_decode_ex) in some versions.</comment>
                    <comment id="43770" author="Pierre" created="Sun, 11 Nov 2012 16:16:37 -0600"  >ext dependencies are a very common issue in php, this is well documented. I won&amp;#39;t change anything in the code (causing more arms) and clearly document that the json ext, for old broken (it is broken, as it must be builtin and always enabled) distribution packages.</comment>
                    <comment id="43771" author="ingenthr" created="Sun, 11 Nov 2012 16:27:25 -0600"  >Thanks for all the help here Pierre.&lt;br/&gt;
&lt;br/&gt;
According to Mark, this doesn&amp;#39;t affect only old, broken distribution packages.  It&amp;#39;s even in recent RHEL6*.&lt;br/&gt;
&lt;br/&gt;
Just to fix this with the simplest, most supportable solution perhaps we should test the function at startup time and if it&amp;#39;s not there log and exit appropriately?  If the distro is loading that lazily, and people want to use that distro, then they need to configure their PHP .ini&amp;#39;s correctly, right?&lt;br/&gt;
&lt;br/&gt;
Our log message can be explicit even, saying &amp;quot;make sure json whatever is loaded first with your php.ini&amp;quot;.  &lt;br/&gt;
&lt;br/&gt;
Thoughts?&lt;br/&gt;
&lt;br/&gt;
* which maybe is arguably old, broken, but it&amp;#39;s also arguably not since it&amp;#39;s the most recent thing shipped on this particular distro fork</comment>
                    <comment id="43772" author="ingenthr" created="Sun, 11 Nov 2012 16:29:11 -0600"  >Pierre: one other question-- any &amp;#39;prior art&amp;#39; here?  In other words, surely some other extension must rely on json and has an approach?</comment>
                    <comment id="43773" author="mnunberg" created="Sun, 11 Nov 2012 16:40:52 -0600"  >Unfortunately there is no way to configure RHEL&amp;#39;s php to load things lazily.&lt;br/&gt;
&lt;br/&gt;
RHEL Specifically mangles this.&lt;br/&gt;
&lt;br/&gt;
I know the patch says 5.0.4, but this is still in php-5.3.3-14.el6_3.src.rpm:&lt;br/&gt;
&lt;br/&gt;
--- php-5.0.4/Zend/zend.h.dlopen&lt;br/&gt;
+++ php-5.0.4/Zend/zend.h&lt;br/&gt;
@@ -102,11 +102,11 @@&lt;br/&gt;
&amp;nbsp;# endif&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;# if defined(RTLD_GROUP) &amp;amp;&amp;amp; defined(RTLD_WORLD) &amp;amp;&amp;amp; defined(RTLD_PARENT)&lt;br/&gt;
-#  define DL_LOAD(libname)                     dlopen(libname, RTLD_LAZY | RTLD_GLOBAL | RTLD_GROUP | RTLD_WORLD | RTLD_PARENT)&lt;br/&gt;
+#  define DL_LOAD(libname)                     dlopen(libname, RTLD_NOW | RTLD_GLOBAL | RTLD_GROUP | RTLD_WORLD | RTLD_PARENT)&lt;br/&gt;
&amp;nbsp;# elif defined(RTLD_DEEPBIND)&lt;br/&gt;
-#  define DL_LOAD(libname)                     dlopen(libname, RTLD_LAZY | RTLD_GLOBAL | RTLD_DEEPBIND)&lt;br/&gt;
+#  define DL_LOAD(libname)                     dlopen(libname, RTLD_NOW | RTLD_GLOBAL | RTLD_DEEPBIND)&lt;br/&gt;
&amp;nbsp;# else&lt;br/&gt;
-#  define DL_LOAD(libname)                     dlopen(libname, RTLD_LAZY | RTLD_GLOBAL)&lt;br/&gt;
+#  define DL_LOAD(libname)                     dlopen(libname, RTLD_NOW | RTLD_GLOBAL)&lt;br/&gt;
&amp;nbsp;# endif&lt;br/&gt;
&amp;nbsp;# define DL_UNLOAD                                     dlclose&lt;br/&gt;
&amp;nbsp;# if defined(DLSYM_NEEDS_UNDERSCORE)&lt;br/&gt;
~                                                                                                                                    &lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
So basically by the time our library loads, if it utilizes a bare &amp;#39;json_decode&amp;#39; that reference is resolved immediately; our module has no chance to warn.</comment>
                    <comment id="43820" author="ingenthr" created="Mon, 12 Nov 2012 14:36:18 -0600"  >Given there is no good solution, for now we&amp;#39;ll need to document this one very, very well.</comment>
                    <comment id="43821" author="kzeller" created="Mon, 12 Nov 2012 14:46:39 -0600"  >I don&amp;#39;t do the release notes for individual SDK libraries.</comment>
                    <comment id="43847" author="ingenthr" created="Mon, 12 Nov 2012 16:48:33 -0600"  >This isn&amp;#39;t a release note item, this is a PHP documentation item.  This needs to be added to the getting started guide with a really clear description of what the issue is and how to work around it for RHEL/CentOS.  &lt;br/&gt;
&lt;br/&gt;
I think you&amp;#39;re still able to help us with PHP documentation, right?</comment>
                    <comment id="43849" author="kzeller" created="Mon, 12 Nov 2012 16:53:13 -0600"  >I see. Do you want this to go as a note during the platform-specific install section under RHEL/Centos?</comment>
                    <comment id="43853" author="ingenthr" created="Mon, 12 Nov 2012 17:10:20 -0600"  >I&amp;#39;ll follow the docs team&amp;#39;s guidance on how best to present the info.&lt;br/&gt;
&lt;br/&gt;
Just be aware that it&amp;#39;s something we&amp;#39;ve frequently hit and nearly every CentOS/RHEL user will hit it too.  It&amp;#39;s not our bug really that we can&amp;#39;t make it simpler.  It&amp;#39;s a limitation in current PHP extension loading.&lt;br/&gt;
&lt;br/&gt;
That&amp;#39;s why I think it needs to be covered in the appropriate section of the getting started guide, which is both on the web site (&lt;a href=&quot;http://www.couchbase.com/develop/php/next&quot;&gt;http://www.couchbase.com/develop/php/next&lt;/a&gt;) and in our documentation (&lt;a href=&quot;http://www.couchbase.com/docs/couchbase-sdk-php-1.1/download.html&quot;&gt;http://www.couchbase.com/docs/couchbase-sdk-php-1.1/download.html&lt;/a&gt; and &lt;a href=&quot;http://www.couchbase.com/docs/couchbase-sdk-php-1.1/installation-verification.html)&quot;&gt;http://www.couchbase.com/docs/couchbase-sdk-php-1.1/installation-verification.html)&lt;/a&gt;.  Most people will hit it when following either of those.&lt;br/&gt;
&lt;br/&gt;
Our web pages currently have the following note:&lt;br/&gt;
Note: With the PHP packages on many Red Hat/CentOS distributions (and possibly others), PHP&amp;#39;s JSON encoding is not available to other extensions by default. As a result, you may see an error resolving the php_json_encode symbol. The solution is to edit ini file that loads the JSON extension (typically /etc/php.d/json.ini) to add the Couchbase extension after the JSON extension.&lt;br/&gt;
&lt;br/&gt;
Something along these lines (but improved, if you think need be) should be added to the getting started guide in the documentation.</comment>
                    <comment id="43854" author="ingenthr" created="Mon, 12 Nov 2012 17:13:09 -0600"  >Note, Pierre replied via email to my &amp;#39;prior art&amp;#39; question:&lt;br/&gt;
&lt;br/&gt;
No, ext dep manager is a long due todo but much easier to document than to implement.&lt;br/&gt;
&lt;br/&gt;
Other core exts have this, exif and mbstring, pdo exts and the sin pdo ext (which should be builtin but rhel and defiant made it wrong 1st)</comment>
                    <comment id="43991" author="kzeller" created="Wed, 14 Nov 2012 12:56:17 -0600"  >Hi,&lt;br/&gt;
&lt;br/&gt;
I&amp;#39;m adding this. Do we have an example of the php_json_encode error that you will get? Need to add this to the section.</comment>
                    <comment id="44002" author="kzeller" created="Wed, 14 Nov 2012 13:15:58 -0600"  >Added to getting started/install as:&lt;br/&gt;
&lt;br/&gt;
&amp;quot;If you are using the PHP SDK on a Linux distribution such as Red Hat/CentOS, be aware that JSON encoding for PHP is by default not available to other extensions. As a result you will receive an error resolving the php_json_encode symbol. The solution is to edit the .ini file that loads the JSON extension to add the Couchbase extension after the JSON extension. For instance, if your JSON extension is at /etc/php.d/json.ini, add the following line to the file under extensions:&lt;br/&gt;
&lt;br/&gt;
extension=/path/to/couchbase.so&amp;quot;</comment>
                    <comment id="44003" author="kzeller" created="Wed, 14 Nov 2012 13:16:26 -0600"  >Added to getting started and install for PHP 1.1:&lt;br/&gt;
&lt;br/&gt;
If you are using the PHP SDK on a Linux distribution such as Red Hat/CentOS, be aware that JSON encoding for PHP is by default not available to other extensions. As a result you will receive an error resolving the php_json_encode symbol. The solution is to edit the .ini file that loads the JSON extension to add the Couchbase extension after the JSON extension. For instance, if your JSON extension is at /etc/php.d/json.ini, add the following line to the file under extensions:&lt;br/&gt;
&lt;br/&gt;
extension=/path/to/couchbase.so</comment>
                    <comment id="44908" author="ingenthr" created="Wed, 28 Nov 2012 00:08:52 -0600"  >Karen: per the email thread with Mark Nunberg the other day, can we update this to have the two line recommendation?  Perhaps that&amp;#39;s what you&amp;#39;ve already done?</comment>
                    <comment id="44935" author="kzeller" created="Wed, 28 Nov 2012 11:30:24 -0600"  >Oh yes, I did update per Mark&amp;#39;s email several days ago. It is now:&lt;br/&gt;
&lt;br/&gt;
Depending on the platform you are using, you may also need to reference the JSON library in your PHP configuration file.&lt;br/&gt;
&lt;br/&gt;
If you are using the Couchbase PHP SDK on Red Hat/CentOS or their derivatives, be aware that JSON encoding for PHP is by default not available to other extensions. As a result you will receive an error resolving the php_json_encode symbol. The solution is to edit the php.ini file to load the JSON library and also load the Couchbase library. For instance, if your extensions are at /etc/php.ini, add the following two lines to the file:&lt;br/&gt;
&lt;br/&gt;
extension=/path/to/json.so&lt;br/&gt;
extension=/path/to/couchbase.so&lt;br/&gt;
The reference to the two extensions must be in this specific order.&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
You can see it here:&lt;br/&gt;
&lt;br/&gt;
&lt;a href=&quot;http://www.couchbase.com/docs/couchbase-sdk-php-1.1/download.html&quot;&gt;http://www.couchbase.com/docs/couchbase-sdk-php-1.1/download.html&lt;/a&gt;</comment>
                    <comment id="44936" author="kzeller" created="Wed, 28 Nov 2012 11:30:44 -0600"  >Oh yes, I did update per Mark&amp;#39;s email several days ago. It is now:&lt;br/&gt;
&lt;br/&gt;
Depending on the platform you are using, you may also need to reference the JSON library in your PHP configuration file.&lt;br/&gt;
&lt;br/&gt;
If you are using the Couchbase PHP SDK on Red Hat/CentOS or their derivatives, be aware that JSON encoding for PHP is by default not available to other extensions. As a result you will receive an error resolving the php_json_encode symbol. The solution is to edit the php.ini file to load the JSON library and also load the Couchbase library. For instance, if your extensions are at /etc/php.ini, add the following two lines to the file:&lt;br/&gt;
&lt;br/&gt;
extension=/path/to/json.so&lt;br/&gt;
extension=/path/to/couchbase.so&lt;br/&gt;
The reference to the two extensions must be in this specific order.&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
You can see it here:&lt;br/&gt;
&lt;br/&gt;
&lt;a href=&quot;http://www.couchbase.com/docs/couchbase-sdk-php-1.1/download.html&quot;&gt;http://www.couchbase.com/docs/couchbase-sdk-php-1.1/download.html&lt;/a&gt;</comment>
                    <comment id="46067" author="creotiv" created="Mon, 17 Dec 2012 07:15:34 -0600"  >Use version 1.1.1 of client lib and still get this error even when couchbase.so loaded after json.so&lt;br/&gt;
&lt;br/&gt;
CentOS 5.6, PHP 5.2.17, Couchbase 1.8</comment>
                    <comment id="46075" author="kzeller" created="Mon, 17 Dec 2012 11:29:34 -0600"  >Hi Matt,&lt;br/&gt;
&lt;br/&gt;
This was reported as an technical issue still with PHP SDK:&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;[ &lt;a href=&quot;http://www.couchbase.com/issues/browse/PCBC-141?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=46067#comment-46067&quot;&gt;http://www.couchbase.com/issues/browse/PCBC-141?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;amp;focusedCommentId=46067#comment-46067&lt;/a&gt; ]&lt;br/&gt;
&lt;br/&gt;
Andrey Nikishaev commented on &lt;a href=&quot;http://www.couchbase.com/issues/browse/PCBC-141&quot; title=&quot;1.1 dp releases not working on phps which do not export the symbol php_json_encode&quot;&gt;&lt;strike&gt;PCBC-141&lt;/strike&gt;&lt;/a&gt;:&lt;br/&gt;
---------------------------------------&lt;br/&gt;
&lt;br/&gt;
Use version 1.1.1 of client lib and still get this error even when couchbase.so loaded after json.so</comment>
                    <comment id="46081" author="mnunberg" created="Mon, 17 Dec 2012 12:01:27 -0600"  >what&amp;#39;s the exact error you&amp;#39;re getting?&lt;br/&gt;
&lt;br/&gt;
Maybe the json module needs to be installed as well? (I&amp;#39;ll need to check this) --&lt;br/&gt;
</comment>
                    <comment id="46118" author="ingenthr" created="Mon, 17 Dec 2012 16:57:15 -0600"  >Andrey: We do not support PHP 5.2, so you&amp;#39;ll want to try 5.3 or later.  CentOS 5.6 does have, if I recall correctly, a &amp;quot;php53&amp;quot; package.</comment>
                    <comment id="57788" author="trond" created="Fri, 10 May 2013 02:43:07 -0500"  >There are multiple bugs reported for this 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>9798</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-139] PHP client needs fastlz compression to be compatible with legacy memcached clients</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-139</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>The existing memcached clients for PHP (pecl-memcached and memcache) both default to using fastlz compression for values &amp;gt;= 2000 bytes.&lt;br/&gt;
&lt;br/&gt;
The couchbase client library doesn&amp;#39;t have fastlz compression included. It doesn&amp;#39;t provide a useful error message when it runs into this problem. Instead, it misinterprets the stored value, tries to allocate a huge block of memory and fails. The error it gives (look, e.g., in the PHP-FPM web-access.log) is:&lt;br/&gt;
&lt;br/&gt;
[01-Nov-2012 20:45:49 UTC] PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 8460104323416721361 bytes) in /usr/share/nginx/html/cb.php on line 32&lt;br/&gt;
&lt;br/&gt;
To reproduce, just set a value &amp;gt;= 2000 bytes with pecl-memcached client, and try to read it with Couchbase client. Here&amp;#39;s a sample:&lt;br/&gt;
&lt;br/&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br/&gt;
&amp;lt;html&amp;gt;&lt;br/&gt;
&amp;lt;head&amp;gt;&lt;br/&gt;
&amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br/&gt;
&amp;lt;title&amp;gt;Couchbase Server PHP Test&amp;lt;/title&amp;gt;&lt;br/&gt;
&amp;lt;/head&amp;gt;&lt;br/&gt;
&amp;lt;body&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;lt;p&amp;gt;&lt;br/&gt;
&amp;lt;?php&lt;br/&gt;
&lt;br/&gt;
$host = &amp;quot;10.4.2.15&amp;quot;;&lt;br/&gt;
$user = &amp;quot;Administrator&amp;quot;;&lt;br/&gt;
$password = &amp;quot;password&amp;quot;;&lt;br/&gt;
$bucketName = &amp;quot;default&amp;quot;;&lt;br/&gt;
$persistConnection = false;&lt;br/&gt;
$cb = new Couchbase($host . &amp;quot;:8091&amp;quot;,&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$user, $password, $bucketName, $persistConnection);&lt;br/&gt;
&lt;br/&gt;
$mc = new Memcached(&amp;#39;Pool-1&amp;#39;);&lt;br/&gt;
if (count($mc-&amp;gt;getServerList()) == 0) {&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// No servers, this pool needs to be configured&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$mc-&amp;gt;addServer($host, 11211);&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//$mc-&amp;gt;addServer(&amp;quot;other host&amp;quot;, 11211);&lt;br/&gt;
}&lt;br/&gt;
&lt;br/&gt;
// Change this to 1999 and it will work&lt;br/&gt;
$valLength = 2000;&lt;br/&gt;
date_default_timezone_set(&amp;#39;UTC&amp;#39;);&lt;br/&gt;
$val = date(DateTime::RFC2822) . &amp;#39; &amp;#39;;&lt;br/&gt;
$val .= str_repeat(&amp;#39;X&amp;#39;, $valLength - strlen($val));&lt;br/&gt;
&lt;br/&gt;
$mc-&amp;gt;set(&amp;quot;a&amp;quot;, $val);&lt;br/&gt;
echo(&amp;quot;The value for &amp;#39;a&amp;#39; is: &amp;quot;);&lt;br/&gt;
var_dump($cb-&amp;gt;get(&amp;quot;a&amp;quot;));&lt;br/&gt;
&lt;br/&gt;
?&amp;gt;&lt;br/&gt;
&amp;lt;/p&amp;gt;&lt;br/&gt;
&amp;lt;/body&amp;gt;&lt;br/&gt;
&amp;lt;/html&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
The correct behavior is for the Couchbase client to ship, out of the box, compatible with existing Memcached client implementations. It should include fastlz support directly, or else clearly document how to add such support without requiring any unusual compilations or other hoops. The fastlz code is very small and portable, and hasn&amp;#39;t changed since 2007, so it should present a minimal maintenance issue.&lt;br/&gt;
&lt;br/&gt;
In addition, the PHP client documentation should clearly indicate what changes are needed in order for the client to be compatible with the other Couchbase clients (Java, .NET, etc.). Again, without requiring recompilation or extra hoops to jump through.&lt;br/&gt;
&lt;br/&gt;
</description>
                <environment>With both php-ext-couchbase-1.0.5-centos55-x86_64.tar.gz and php-ext-couchbase-1.0.6b23_centos-5.5-x64.tar.gz. I will attach php -i output as a separate comment. Using php-pecl-memcached extension 1.0.0. libmemcached 1.0.4.</environment>
            <key id="20513">PCBC-139</key>
            <summary>PHP client needs fastlz compression to be compatible with legacy memcached clients</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="trond">Trond Norbye</assignee>
                                <reporter username="TimSmith">Tim Smith</reporter>
                        <labels>
                        <label>customer</label>
                    </labels>
                <created>Thu, 1 Nov 2012 16:03:32 -0500</created>
                <updated>Tue, 11 Dec 2012 19:55:30 -0600</updated>
                    <resolved>Fri, 16 Nov 2012 21:47:06 -0600</resolved>
                            <version>1.0.4</version>
                                <fixVersion>1.0.6</fixVersion>
                <fixVersion>1.1.0</fixVersion>
                                <component>library</component>
                                <votes>0</votes>
                        <watches>0</watches>
                          <timeoriginalestimate seconds="57600">16h</timeoriginalestimate>
                    <timeestimate seconds="57600">16h</timeestimate>
                                  <comments>
                    <comment id="43075" author="TimSmith" created="Thu, 1 Nov 2012 16:04:58 -0500"  >phpinfo()&lt;br/&gt;
PHP Version =&amp;gt; 5.3.15&lt;br/&gt;
&lt;br/&gt;
System =&amp;gt; Linux localhost.localdomain 2.6.18-308.16.1.el5 #1 SMP Tue Oct 2 22:01:43 EDT 2012 x86_64&lt;br/&gt;
Build Date =&amp;gt; Jul 20 2012 13:07:19&lt;br/&gt;
Configure Command =&amp;gt;  &amp;#39;./configure&amp;#39;  &amp;#39;--build=x86_64-redhat-linux-gnu&amp;#39; &amp;#39;--host=x86_64-redhat-linux-gnu&amp;#39; &amp;#39;--target=x86_64-redhat-linux-gnu&amp;#39; &amp;#39;--program-prefix=&amp;#39; &amp;#39;--prefix=/usr&amp;#39; &amp;#39;--exec-prefix=/usr&amp;#39; &amp;#39;--bindir=/usr/bin&amp;#39; &amp;#39;--sbindir=/usr/sbin&amp;#39; &amp;#39;--sysconfdir=/etc&amp;#39; &amp;#39;--datadir=/usr/share&amp;#39; &amp;#39;--includedir=/usr/include&amp;#39; &amp;#39;--libdir=/usr/lib64&amp;#39; &amp;#39;--libexecdir=/usr/libexec&amp;#39; &amp;#39;--localstatedir=/var&amp;#39; &amp;#39;--sharedstatedir=/usr/com&amp;#39; &amp;#39;--mandir=/usr/share/man&amp;#39; &amp;#39;--infodir=/usr/share/info&amp;#39; &amp;#39;--cache-file=../config.cache&amp;#39; &amp;#39;--with-libdir=lib64&amp;#39; &amp;#39;--with-config-file-path=/etc&amp;#39; &amp;#39;--with-config-file-scan-dir=/etc/php.d&amp;#39; &amp;#39;--disable-debug&amp;#39; &amp;#39;--with-pic&amp;#39; &amp;#39;--disable-rpath&amp;#39; &amp;#39;--without-pear&amp;#39; &amp;#39;--with-bz2&amp;#39; &amp;#39;--with-exec-dir=/usr/bin&amp;#39; &amp;#39;--with-freetype-dir=/usr&amp;#39; &amp;#39;--with-png-dir=/usr&amp;#39; &amp;#39;--with-xpm-dir=/usr&amp;#39; &amp;#39;--enable-gd-native-ttf&amp;#39; &amp;#39;--with-t1lib=/usr&amp;#39; &amp;#39;--without-gdbm&amp;#39; &amp;#39;--with-gettext&amp;#39; &amp;#39;--with-gmp&amp;#39; &amp;#39;--with-iconv&amp;#39; &amp;#39;--with-jpeg-dir=/usr&amp;#39; &amp;#39;--with-openssl&amp;#39; &amp;#39;--with-zlib&amp;#39; &amp;#39;--with-layout=GNU&amp;#39; &amp;#39;--enable-exif&amp;#39; &amp;#39;--enable-ftp&amp;#39; &amp;#39;--enable-magic-quotes&amp;#39; &amp;#39;--enable-sockets&amp;#39; &amp;#39;--with-kerberos&amp;#39; &amp;#39;--enable-ucd-snmp-hack&amp;#39; &amp;#39;--enable-shmop&amp;#39; &amp;#39;--enable-calendar&amp;#39; &amp;#39;--with-libxml-dir=/usr&amp;#39; &amp;#39;--enable-xml&amp;#39; &amp;#39;--with-system-tzdata&amp;#39; &amp;#39;--with-mhash&amp;#39; &amp;#39;--enable-force-cgi-redirect&amp;#39; &amp;#39;--libdir=/usr/lib64/php&amp;#39; &amp;#39;--enable-pcntl&amp;#39; &amp;#39;--with-imap=shared&amp;#39; &amp;#39;--with-imap-ssl&amp;#39; &amp;#39;--enable-mbstring=shared&amp;#39; &amp;#39;--enable-mbregex&amp;#39; &amp;#39;--with-gd=shared&amp;#39; &amp;#39;--enable-bcmath=shared&amp;#39; &amp;#39;--enable-dba=shared&amp;#39; &amp;#39;--with-db4=/usr&amp;#39; &amp;#39;--with-xmlrpc=shared&amp;#39; &amp;#39;--with-ldap=shared&amp;#39; &amp;#39;--with-ldap-sasl&amp;#39; &amp;#39;--enable-mysqlnd=shared&amp;#39; &amp;#39;--with-mysql=shared,mysqlnd&amp;#39; &amp;#39;--with-mysqli=shared,mysqlnd&amp;#39; &amp;#39;--with-mysql-sock=/var/lib/mysql/mysql.sock&amp;#39; &amp;#39;--with-oci8=shared,instantclient,/usr/lib64/oracle/11.2/client64/lib,11.2&amp;#39; &amp;#39;--with-pdo-oci=shared,instantclient,/usr,11.2&amp;#39; &amp;#39;--with-interbase=shared,/usr/lib64/firebird&amp;#39; &amp;#39;--with-pdo-firebird=shared,/usr/lib64/firebird&amp;#39; &amp;#39;--enable-dom=shared&amp;#39; &amp;#39;--with-pgsql=shared&amp;#39; &amp;#39;--enable-wddx=shared&amp;#39; &amp;#39;--with-snmp=shared,/usr&amp;#39; &amp;#39;--enable-soap=shared&amp;#39; &amp;#39;--with-xsl=shared,/usr&amp;#39; &amp;#39;--enable-xmlreader=shared&amp;#39; &amp;#39;--enable-xmlwriter=shared&amp;#39; &amp;#39;--with-curl=shared,/usr&amp;#39; &amp;#39;--enable-fastcgi&amp;#39; &amp;#39;--enable-pdo=shared&amp;#39; &amp;#39;--with-pdo-odbc=shared,unixODBC,/usr&amp;#39; &amp;#39;--with-pdo-mysql=shared,mysqlnd&amp;#39; &amp;#39;--with-pdo-pgsql=shared,/usr&amp;#39; &amp;#39;--with-pdo-sqlite=shared,/usr&amp;#39; &amp;#39;--with-pdo-dblib=shared,/usr&amp;#39; &amp;#39;--without-sqlite3&amp;#39; &amp;#39;--with-sqlite=shared,/usr&amp;#39; &amp;#39;--enable-json=shared&amp;#39; &amp;#39;--enable-zip=shared&amp;#39; &amp;#39;--without-readline&amp;#39; &amp;#39;--with-libedit&amp;#39; &amp;#39;--with-pspell=shared&amp;#39; &amp;#39;--enable-phar=shared&amp;#39; &amp;#39;--with-mcrypt=shared,/usr&amp;#39; &amp;#39;--with-tidy=shared,/usr&amp;#39; &amp;#39;--with-mssql=shared,/usr&amp;#39; &amp;#39;--enable-sysvmsg=shared&amp;#39; &amp;#39;--enable-sysvshm=shared&amp;#39; &amp;#39;--enable-sysvsem=shared&amp;#39; &amp;#39;--enable-posix=shared&amp;#39; &amp;#39;--with-unixODBC=shared,/usr&amp;#39; &amp;#39;--enable-fileinfo=shared&amp;#39; &amp;#39;--enable-intl=shared&amp;#39; &amp;#39;--with-icu-dir=/usr&amp;#39; &amp;#39;--with-enchant=shared,/usr&amp;#39; &amp;#39;--with-recode=shared,/usr&amp;#39;&lt;br/&gt;
Server API =&amp;gt; Command Line Interface&lt;br/&gt;
Virtual Directory Support =&amp;gt; disabled&lt;br/&gt;
Configuration File (php.ini) Path =&amp;gt; /etc&lt;br/&gt;
Loaded Configuration File =&amp;gt; /etc/php.ini&lt;br/&gt;
Scan this dir for additional .ini files =&amp;gt; /etc/php.d&lt;br/&gt;
Additional .ini files parsed =&amp;gt; /etc/php.d/curl.ini,&lt;br/&gt;
/etc/php.d/fileinfo.ini,&lt;br/&gt;
/etc/php.d/igbinary.ini,&lt;br/&gt;
/etc/php.d/json.ini,&lt;br/&gt;
/etc/php.d/memcached.ini,&lt;br/&gt;
/etc/php.d/phar.ini,&lt;br/&gt;
/etc/php.d/zip.ini,&lt;br/&gt;
/etc/php.d/zzz-couchbase.ini&lt;br/&gt;
&lt;br/&gt;
PHP API =&amp;gt; 20090626&lt;br/&gt;
PHP Extension =&amp;gt; 20090626&lt;br/&gt;
Zend Extension =&amp;gt; 220090626&lt;br/&gt;
Zend Extension Build =&amp;gt; API220090626,NTS&lt;br/&gt;
PHP Extension Build =&amp;gt; API20090626,NTS&lt;br/&gt;
Debug Build =&amp;gt; no&lt;br/&gt;
Thread Safety =&amp;gt; disabled&lt;br/&gt;
Zend Memory Manager =&amp;gt; enabled&lt;br/&gt;
Zend Multibyte Support =&amp;gt; disabled&lt;br/&gt;
IPv6 Support =&amp;gt; enabled&lt;br/&gt;
Registered PHP Streams =&amp;gt; https, ftps, compress.zlib, compress.bzip2, php, file, glob, data, http, ftp, phar, zip&lt;br/&gt;
Registered Stream Socket Transports =&amp;gt; tcp, udp, unix, udg, ssl, sslv3, sslv2, tls&lt;br/&gt;
Registered Stream Filters =&amp;gt; zlib.*, bzip2.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
This program makes use of the Zend Scripting Language Engine:&lt;br/&gt;
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;_______________________________________________________________________&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
Configuration&lt;br/&gt;
&lt;br/&gt;
bz2&lt;br/&gt;
&lt;br/&gt;
BZip2 Support =&amp;gt; Enabled&lt;br/&gt;
Stream Wrapper support =&amp;gt; compress.bzip2://&lt;br/&gt;
Stream Filter support =&amp;gt; bzip2.decompress, bzip2.compress&lt;br/&gt;
BZip2 Version =&amp;gt; 1.0.3, 15-Feb-2005&lt;br/&gt;
&lt;br/&gt;
calendar&lt;br/&gt;
&lt;br/&gt;
Calendar support =&amp;gt; enabled&lt;br/&gt;
&lt;br/&gt;
Core&lt;br/&gt;
&lt;br/&gt;
PHP Version =&amp;gt; 5.3.15&lt;br/&gt;
&lt;br/&gt;
Directive =&amp;gt; Local Value =&amp;gt; Master Value&lt;br/&gt;
allow_call_time_pass_reference =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
allow_url_fopen =&amp;gt; On =&amp;gt; On&lt;br/&gt;
allow_url_include =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
always_populate_raw_post_data =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
arg_separator.input =&amp;gt; &amp;amp; =&amp;gt; &amp;amp;&lt;br/&gt;
arg_separator.output =&amp;gt; &amp;amp; =&amp;gt; &amp;amp;&lt;br/&gt;
asp_tags =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
auto_append_file =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
auto_globals_jit =&amp;gt; On =&amp;gt; On&lt;br/&gt;
auto_prepend_file =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
browscap =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
default_charset =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
default_mimetype =&amp;gt; text/html =&amp;gt; text/html&lt;br/&gt;
define_syslog_variables =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
disable_classes =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
disable_functions =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
display_errors =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
display_startup_errors =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
doc_root =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
docref_ext =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
docref_root =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
enable_dl =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
error_append_string =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
error_log =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
error_prepend_string =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
error_reporting =&amp;gt; 22527 =&amp;gt; 22527&lt;br/&gt;
exit_on_timeout =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
expose_php =&amp;gt; On =&amp;gt; On&lt;br/&gt;
extension_dir =&amp;gt; /usr/lib64/php/modules =&amp;gt; /usr/lib64/php/modules&lt;br/&gt;
file_uploads =&amp;gt; On =&amp;gt; On&lt;br/&gt;
highlight.bg =&amp;gt; &amp;lt;font style=&amp;quot;color: #FFFFFF&amp;quot;&amp;gt;#FFFFFF&amp;lt;/font&amp;gt; =&amp;gt; &amp;lt;font style=&amp;quot;color: #FFFFFF&amp;quot;&amp;gt;#FFFFFF&amp;lt;/font&amp;gt;&lt;br/&gt;
highlight.comment =&amp;gt; &amp;lt;font style=&amp;quot;color: #FF8000&amp;quot;&amp;gt;#FF8000&amp;lt;/font&amp;gt; =&amp;gt; &amp;lt;font style=&amp;quot;color: #FF8000&amp;quot;&amp;gt;#FF8000&amp;lt;/font&amp;gt;&lt;br/&gt;
highlight.default =&amp;gt; &amp;lt;font style=&amp;quot;color: #0000BB&amp;quot;&amp;gt;#0000BB&amp;lt;/font&amp;gt; =&amp;gt; &amp;lt;font style=&amp;quot;color: #0000BB&amp;quot;&amp;gt;#0000BB&amp;lt;/font&amp;gt;&lt;br/&gt;
highlight.html =&amp;gt; &amp;lt;font style=&amp;quot;color: #000000&amp;quot;&amp;gt;#000000&amp;lt;/font&amp;gt; =&amp;gt; &amp;lt;font style=&amp;quot;color: #000000&amp;quot;&amp;gt;#000000&amp;lt;/font&amp;gt;&lt;br/&gt;
highlight.keyword =&amp;gt; &amp;lt;font style=&amp;quot;color: #007700&amp;quot;&amp;gt;#007700&amp;lt;/font&amp;gt; =&amp;gt; &amp;lt;font style=&amp;quot;color: #007700&amp;quot;&amp;gt;#007700&amp;lt;/font&amp;gt;&lt;br/&gt;
highlight.string =&amp;gt; &amp;lt;font style=&amp;quot;color: #DD0000&amp;quot;&amp;gt;#DD0000&amp;lt;/font&amp;gt; =&amp;gt; &amp;lt;font style=&amp;quot;color: #DD0000&amp;quot;&amp;gt;#DD0000&amp;lt;/font&amp;gt;&lt;br/&gt;
html_errors =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
ignore_repeated_errors =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
ignore_repeated_source =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
ignore_user_abort =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
implicit_flush =&amp;gt; On =&amp;gt; On&lt;br/&gt;
include_path =&amp;gt; .:/usr/share/pear:/usr/share/php =&amp;gt; .:/usr/share/pear:/usr/share/php&lt;br/&gt;
log_errors =&amp;gt; On =&amp;gt; On&lt;br/&gt;
log_errors_max_len =&amp;gt; 1024 =&amp;gt; 1024&lt;br/&gt;
magic_quotes_gpc =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
magic_quotes_runtime =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
magic_quotes_sybase =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
mail.add_x_header =&amp;gt; On =&amp;gt; On&lt;br/&gt;
mail.force_extra_parameters =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
mail.log =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
max_execution_time =&amp;gt; 0 =&amp;gt; 0&lt;br/&gt;
max_file_uploads =&amp;gt; 20 =&amp;gt; 20&lt;br/&gt;
max_input_nesting_level =&amp;gt; 64 =&amp;gt; 64&lt;br/&gt;
max_input_time =&amp;gt; -1 =&amp;gt; -1&lt;br/&gt;
max_input_vars =&amp;gt; 1000 =&amp;gt; 1000&lt;br/&gt;
memory_limit =&amp;gt; 128M =&amp;gt; 128M&lt;br/&gt;
open_basedir =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
output_buffering =&amp;gt; 0 =&amp;gt; 0&lt;br/&gt;
output_handler =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
post_max_size =&amp;gt; 8M =&amp;gt; 8M&lt;br/&gt;
precision =&amp;gt; 14 =&amp;gt; 14&lt;br/&gt;
realpath_cache_size =&amp;gt; 16K =&amp;gt; 16K&lt;br/&gt;
realpath_cache_ttl =&amp;gt; 120 =&amp;gt; 120&lt;br/&gt;
register_argc_argv =&amp;gt; On =&amp;gt; On&lt;br/&gt;
register_globals =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
register_long_arrays =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
report_memleaks =&amp;gt; On =&amp;gt; On&lt;br/&gt;
report_zend_debug =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
request_order =&amp;gt; GP =&amp;gt; GP&lt;br/&gt;
safe_mode =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
safe_mode_exec_dir =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
safe_mode_gid =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
safe_mode_include_dir =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
sendmail_from =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
sendmail_path =&amp;gt; /usr/sbin/sendmail -t -i =&amp;gt; /usr/sbin/sendmail -t -i&lt;br/&gt;
serialize_precision =&amp;gt; 100 =&amp;gt; 100&lt;br/&gt;
short_open_tag =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
SMTP =&amp;gt; localhost =&amp;gt; localhost&lt;br/&gt;
smtp_port =&amp;gt; 25 =&amp;gt; 25&lt;br/&gt;
sql.safe_mode =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
track_errors =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
unserialize_callback_func =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
upload_max_filesize =&amp;gt; 2M =&amp;gt; 2M&lt;br/&gt;
upload_tmp_dir =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
user_dir =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
user_ini.cache_ttl =&amp;gt; 300 =&amp;gt; 300&lt;br/&gt;
user_ini.filename =&amp;gt; .user.ini =&amp;gt; .user.ini&lt;br/&gt;
variables_order =&amp;gt; GPCS =&amp;gt; GPCS&lt;br/&gt;
xmlrpc_error_number =&amp;gt; 0 =&amp;gt; 0&lt;br/&gt;
xmlrpc_errors =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
y2k_compliance =&amp;gt; On =&amp;gt; On&lt;br/&gt;
zend.enable_gc =&amp;gt; On =&amp;gt; On&lt;br/&gt;
&lt;br/&gt;
couchbase&lt;br/&gt;
&lt;br/&gt;
couchbase support =&amp;gt; enabled&lt;br/&gt;
version =&amp;gt; 1.0.5&lt;br/&gt;
json support =&amp;gt; yes&lt;br/&gt;
fastlz support =&amp;gt; no&lt;br/&gt;
zlib support =&amp;gt; yes&lt;br/&gt;
&lt;br/&gt;
Directive =&amp;gt; Local Value =&amp;gt; Master Value&lt;br/&gt;
couchbase.compression_factor =&amp;gt; 1.3 =&amp;gt; 1.3&lt;br/&gt;
couchbase.compression_threshold =&amp;gt; 2000 =&amp;gt; 2000&lt;br/&gt;
couchbase.compressor =&amp;gt; none =&amp;gt; none&lt;br/&gt;
couchbase.serializer =&amp;gt; php =&amp;gt; php&lt;br/&gt;
&lt;br/&gt;
ctype&lt;br/&gt;
&lt;br/&gt;
ctype functions =&amp;gt; enabled&lt;br/&gt;
&lt;br/&gt;
curl&lt;br/&gt;
&lt;br/&gt;
cURL support =&amp;gt; enabled&lt;br/&gt;
cURL Information =&amp;gt; 7.15.5&lt;br/&gt;
Age =&amp;gt; 2&lt;br/&gt;
Features&lt;br/&gt;
AsynchDNS =&amp;gt; No&lt;br/&gt;
Debug =&amp;gt; No&lt;br/&gt;
GSS-Negotiate =&amp;gt; Yes&lt;br/&gt;
IDN =&amp;gt; Yes&lt;br/&gt;
IPv6 =&amp;gt; Yes&lt;br/&gt;
Largefile =&amp;gt; Yes&lt;br/&gt;
NTLM =&amp;gt; Yes&lt;br/&gt;
SPNEGO =&amp;gt; No&lt;br/&gt;
SSL =&amp;gt; Yes&lt;br/&gt;
SSPI =&amp;gt; No&lt;br/&gt;
krb4 =&amp;gt; No&lt;br/&gt;
libz =&amp;gt; Yes&lt;br/&gt;
CharConv =&amp;gt; No&lt;br/&gt;
Protocols =&amp;gt; tftp, ftp, telnet, dict, ldap, http, file, https, ftps&lt;br/&gt;
Host =&amp;gt; x86_64-redhat-linux-gnu&lt;br/&gt;
SSL Version =&amp;gt;  OpenSSL/0.9.8b&lt;br/&gt;
ZLib Version =&amp;gt; 1.2.3&lt;br/&gt;
&lt;br/&gt;
date&lt;br/&gt;
&lt;br/&gt;
date/time support =&amp;gt; enabled&lt;br/&gt;
&amp;quot;Olson&amp;quot; Timezone Database Version =&amp;gt; 0.system&lt;br/&gt;
Timezone Database =&amp;gt; internal&lt;br/&gt;
PHP Warning:  Unknown: It is not safe to rely on the system&amp;#39;s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected &amp;#39;America/Los_Angeles&amp;#39; for &amp;#39;PDT/-7.0/DST&amp;#39; instead in Unknown on line 0&lt;br/&gt;
Default timezone =&amp;gt; America/Los_Angeles&lt;br/&gt;
&lt;br/&gt;
Directive =&amp;gt; Local Value =&amp;gt; Master Value&lt;br/&gt;
date.default_latitude =&amp;gt; 31.7667 =&amp;gt; 31.7667&lt;br/&gt;
date.default_longitude =&amp;gt; 35.2333 =&amp;gt; 35.2333&lt;br/&gt;
date.sunrise_zenith =&amp;gt; 90.583333 =&amp;gt; 90.583333&lt;br/&gt;
date.sunset_zenith =&amp;gt; 90.583333 =&amp;gt; 90.583333&lt;br/&gt;
date.timezone =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
&lt;br/&gt;
ereg&lt;br/&gt;
&lt;br/&gt;
Regex Library =&amp;gt; Bundled library enabled&lt;br/&gt;
&lt;br/&gt;
exif&lt;br/&gt;
&lt;br/&gt;
EXIF Support =&amp;gt; enabled&lt;br/&gt;
EXIF Version =&amp;gt; 1.4 $Id$&lt;br/&gt;
Supported EXIF Version =&amp;gt; 0220&lt;br/&gt;
Supported filetypes =&amp;gt; JPEG,TIFF&lt;br/&gt;
&lt;br/&gt;
Directive =&amp;gt; Local Value =&amp;gt; Master Value&lt;br/&gt;
exif.decode_jis_intel =&amp;gt; JIS =&amp;gt; JIS&lt;br/&gt;
exif.decode_jis_motorola =&amp;gt; JIS =&amp;gt; JIS&lt;br/&gt;
exif.decode_unicode_intel =&amp;gt; UCS-2LE =&amp;gt; UCS-2LE&lt;br/&gt;
exif.decode_unicode_motorola =&amp;gt; UCS-2BE =&amp;gt; UCS-2BE&lt;br/&gt;
exif.encode_jis =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
exif.encode_unicode =&amp;gt; ISO-8859-15 =&amp;gt; ISO-8859-15&lt;br/&gt;
&lt;br/&gt;
fileinfo&lt;br/&gt;
&lt;br/&gt;
fileinfo support =&amp;gt; enabled&lt;br/&gt;
version =&amp;gt; 1.0.5-dev&lt;br/&gt;
&lt;br/&gt;
filter&lt;br/&gt;
&lt;br/&gt;
Input Validation and Filtering =&amp;gt; enabled&lt;br/&gt;
Revision =&amp;gt; $Id: 2b8c730d7dfaa8485d07cd792f0c82852ffe4113 $&lt;br/&gt;
&lt;br/&gt;
Directive =&amp;gt; Local Value =&amp;gt; Master Value&lt;br/&gt;
filter.default =&amp;gt; unsafe_raw =&amp;gt; unsafe_raw&lt;br/&gt;
filter.default_flags =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
&lt;br/&gt;
ftp&lt;br/&gt;
&lt;br/&gt;
FTP support =&amp;gt; enabled&lt;br/&gt;
&lt;br/&gt;
gettext&lt;br/&gt;
&lt;br/&gt;
GetText Support =&amp;gt; enabled&lt;br/&gt;
&lt;br/&gt;
gmp&lt;br/&gt;
&lt;br/&gt;
gmp support =&amp;gt; enabled&lt;br/&gt;
GMP version =&amp;gt; 4.1.4&lt;br/&gt;
&lt;br/&gt;
hash&lt;br/&gt;
&lt;br/&gt;
hash support =&amp;gt; enabled&lt;br/&gt;
Hashing Engines =&amp;gt; md2 md4 md5 sha1 sha224 sha256 sha384 sha512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru snefru256 gost adler32 crc32 crc32b salsa10 salsa20 haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5&lt;br/&gt;
&lt;br/&gt;
iconv&lt;br/&gt;
&lt;br/&gt;
iconv support =&amp;gt; enabled&lt;br/&gt;
iconv implementation =&amp;gt; glibc&lt;br/&gt;
iconv library version =&amp;gt; 2.5&lt;br/&gt;
&lt;br/&gt;
Directive =&amp;gt; Local Value =&amp;gt; Master Value&lt;br/&gt;
iconv.input_encoding =&amp;gt; ISO-8859-1 =&amp;gt; ISO-8859-1&lt;br/&gt;
iconv.internal_encoding =&amp;gt; ISO-8859-1 =&amp;gt; ISO-8859-1&lt;br/&gt;
iconv.output_encoding =&amp;gt; ISO-8859-1 =&amp;gt; ISO-8859-1&lt;br/&gt;
&lt;br/&gt;
igbinary&lt;br/&gt;
&lt;br/&gt;
igbinary support =&amp;gt; enabled&lt;br/&gt;
igbinary version =&amp;gt; 1.1.1&lt;br/&gt;
igbinary APC serializer ABI =&amp;gt; 0&lt;br/&gt;
&lt;br/&gt;
Directive =&amp;gt; Local Value =&amp;gt; Master Value&lt;br/&gt;
igbinary.compact_strings =&amp;gt; On =&amp;gt; On&lt;br/&gt;
&lt;br/&gt;
json&lt;br/&gt;
&lt;br/&gt;
json support =&amp;gt; enabled&lt;br/&gt;
json version =&amp;gt; 1.2.1&lt;br/&gt;
&lt;br/&gt;
libxml&lt;br/&gt;
&lt;br/&gt;
libXML support =&amp;gt; active&lt;br/&gt;
libXML Compiled Version =&amp;gt; 2.6.26&lt;br/&gt;
libXML Loaded Version =&amp;gt; 20626&lt;br/&gt;
libXML streams =&amp;gt; enabled&lt;br/&gt;
&lt;br/&gt;
memcached&lt;br/&gt;
&lt;br/&gt;
memcached support =&amp;gt; enabled&lt;br/&gt;
Version =&amp;gt; 2.1.0&lt;br/&gt;
libmemcached version =&amp;gt; 1.0.4&lt;br/&gt;
Session support =&amp;gt; yes&lt;br/&gt;
igbinary support =&amp;gt; yes&lt;br/&gt;
json support =&amp;gt; yes&lt;br/&gt;
&lt;br/&gt;
Directive =&amp;gt; Local Value =&amp;gt; Master Value&lt;br/&gt;
memcached.compression_factor =&amp;gt; 1.3 =&amp;gt; 1.3&lt;br/&gt;
memcached.compression_threshold =&amp;gt; 2000 =&amp;gt; 2000&lt;br/&gt;
memcached.compression_type =&amp;gt; fastlz =&amp;gt; fastlz&lt;br/&gt;
memcached.serializer =&amp;gt; igbinary =&amp;gt; igbinary&lt;br/&gt;
memcached.sess_binary =&amp;gt; 0 =&amp;gt; 0&lt;br/&gt;
memcached.sess_lock_wait =&amp;gt; 150000 =&amp;gt; 150000&lt;br/&gt;
memcached.sess_locking =&amp;gt; 1 =&amp;gt; 1&lt;br/&gt;
memcached.sess_prefix =&amp;gt; memc.sess.key. =&amp;gt; memc.sess.key.&lt;br/&gt;
&lt;br/&gt;
mhash&lt;br/&gt;
&lt;br/&gt;
MHASH support =&amp;gt; Enabled&lt;br/&gt;
MHASH API Version =&amp;gt; Emulated Support&lt;br/&gt;
&lt;br/&gt;
openssl&lt;br/&gt;
&lt;br/&gt;
OpenSSL support =&amp;gt; enabled&lt;br/&gt;
OpenSSL Library Version =&amp;gt; OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008&lt;br/&gt;
OpenSSL Header Version =&amp;gt; OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008&lt;br/&gt;
&lt;br/&gt;
pcntl&lt;br/&gt;
&lt;br/&gt;
pcntl support =&amp;gt; enabled&lt;br/&gt;
&lt;br/&gt;
pcre&lt;br/&gt;
&lt;br/&gt;
PCRE (Perl Compatible Regular Expressions) Support =&amp;gt; enabled&lt;br/&gt;
PCRE Library Version =&amp;gt; 8.12 2011-01-15&lt;br/&gt;
&lt;br/&gt;
Directive =&amp;gt; Local Value =&amp;gt; Master Value&lt;br/&gt;
pcre.backtrack_limit =&amp;gt; 1000000 =&amp;gt; 1000000&lt;br/&gt;
pcre.recursion_limit =&amp;gt; 100000 =&amp;gt; 100000&lt;br/&gt;
&lt;br/&gt;
Phar&lt;br/&gt;
&lt;br/&gt;
Phar: PHP Archive support =&amp;gt; enabled&lt;br/&gt;
Phar EXT version =&amp;gt; 2.0.1&lt;br/&gt;
Phar API version =&amp;gt; 1.1.1&lt;br/&gt;
SVN revision =&amp;gt; $Id: f7d08da4ab9e515975840c28b830edc9437c3026 $&lt;br/&gt;
Phar-based phar archives =&amp;gt; enabled&lt;br/&gt;
Tar-based phar archives =&amp;gt; enabled&lt;br/&gt;
ZIP-based phar archives =&amp;gt; enabled&lt;br/&gt;
gzip compression =&amp;gt; enabled&lt;br/&gt;
bzip2 compression =&amp;gt; enabled&lt;br/&gt;
Native OpenSSL support =&amp;gt; enabled&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
Phar based on pear/PHP_Archive, original concept by Davey Shafik.&lt;br/&gt;
Phar fully realized by Gregory Beaver and Marcus Boerger.&lt;br/&gt;
Portions of tar implementation Copyright (c) 2003-2009 Tim Kientzle.&lt;br/&gt;
Directive =&amp;gt; Local Value =&amp;gt; Master Value&lt;br/&gt;
phar.cache_list =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
phar.readonly =&amp;gt; On =&amp;gt; On&lt;br/&gt;
phar.require_hash =&amp;gt; On =&amp;gt; On&lt;br/&gt;
&lt;br/&gt;
Reflection&lt;br/&gt;
&lt;br/&gt;
Reflection =&amp;gt; enabled&lt;br/&gt;
Version =&amp;gt; $Id: e98652ba2326bd9391b730afdaf96c017d9fab48 $&lt;br/&gt;
&lt;br/&gt;
session&lt;br/&gt;
&lt;br/&gt;
Session Support =&amp;gt; enabled&lt;br/&gt;
Registered save handlers =&amp;gt; files user memcached&lt;br/&gt;
Registered serializer handlers =&amp;gt; php php_binary igbinary&lt;br/&gt;
&lt;br/&gt;
Directive =&amp;gt; Local Value =&amp;gt; Master Value&lt;br/&gt;
session.auto_start =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
session.bug_compat_42 =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
session.bug_compat_warn =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
session.cache_expire =&amp;gt; 180 =&amp;gt; 180&lt;br/&gt;
session.cache_limiter =&amp;gt; nocache =&amp;gt; nocache&lt;br/&gt;
session.cookie_domain =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
session.cookie_httponly =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
session.cookie_lifetime =&amp;gt; 0 =&amp;gt; 0&lt;br/&gt;
session.cookie_path =&amp;gt; / =&amp;gt; /&lt;br/&gt;
session.cookie_secure =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
session.entropy_file =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
session.entropy_length =&amp;gt; 0 =&amp;gt; 0&lt;br/&gt;
session.gc_divisor =&amp;gt; 1000 =&amp;gt; 1000&lt;br/&gt;
session.gc_maxlifetime =&amp;gt; 1440 =&amp;gt; 1440&lt;br/&gt;
session.gc_probability =&amp;gt; 1 =&amp;gt; 1&lt;br/&gt;
session.hash_bits_per_character =&amp;gt; 5 =&amp;gt; 5&lt;br/&gt;
session.hash_function =&amp;gt; 0 =&amp;gt; 0&lt;br/&gt;
session.name =&amp;gt; PHPSESSID =&amp;gt; PHPSESSID&lt;br/&gt;
session.referer_check =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
session.save_handler =&amp;gt; files =&amp;gt; files&lt;br/&gt;
session.save_path =&amp;gt; /var/lib/php/session =&amp;gt; /var/lib/php/session&lt;br/&gt;
session.serialize_handler =&amp;gt; php =&amp;gt; php&lt;br/&gt;
session.use_cookies =&amp;gt; On =&amp;gt; On&lt;br/&gt;
session.use_only_cookies =&amp;gt; On =&amp;gt; On&lt;br/&gt;
session.use_trans_sid =&amp;gt; 0 =&amp;gt; 0&lt;br/&gt;
&lt;br/&gt;
shmop&lt;br/&gt;
&lt;br/&gt;
shmop support =&amp;gt; enabled&lt;br/&gt;
&lt;br/&gt;
SimpleXML&lt;br/&gt;
&lt;br/&gt;
Simplexml support =&amp;gt; enabled&lt;br/&gt;
Revision =&amp;gt; $Id: a379111021e24ef020a2eefd8ca830cb1ab5b280 $&lt;br/&gt;
Schema support =&amp;gt; enabled&lt;br/&gt;
&lt;br/&gt;
sockets&lt;br/&gt;
&lt;br/&gt;
Sockets Support =&amp;gt; enabled&lt;br/&gt;
&lt;br/&gt;
SPL&lt;br/&gt;
&lt;br/&gt;
SPL support =&amp;gt; enabled&lt;br/&gt;
Interfaces =&amp;gt; Countable, OuterIterator, RecursiveIterator, SeekableIterator, SplObserver, SplSubject&lt;br/&gt;
Classes =&amp;gt; AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, DirectoryIterator, DomainException, EmptyIterator, FilesystemIterator, FilterIterator, GlobIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, MultipleIterator, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RecursiveTreeIterator, RegexIterator, RuntimeException, SplDoublyLinkedList, SplFileInfo, SplFileObject, SplFixedArray, SplHeap, SplMinHeap, SplMaxHeap, SplObjectStorage, SplPriorityQueue, SplQueue, SplStack, SplTempFileObject, UnderflowException, UnexpectedValueException&lt;br/&gt;
&lt;br/&gt;
standard&lt;br/&gt;
&lt;br/&gt;
Dynamic Library Support =&amp;gt; enabled&lt;br/&gt;
Path to sendmail =&amp;gt; /usr/sbin/sendmail -t -i&lt;br/&gt;
&lt;br/&gt;
Directive =&amp;gt; Local Value =&amp;gt; Master Value&lt;br/&gt;
assert.active =&amp;gt; 1 =&amp;gt; 1&lt;br/&gt;
assert.bail =&amp;gt; 0 =&amp;gt; 0&lt;br/&gt;
assert.callback =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
assert.quiet_eval =&amp;gt; 0 =&amp;gt; 0&lt;br/&gt;
assert.warning =&amp;gt; 1 =&amp;gt; 1&lt;br/&gt;
auto_detect_line_endings =&amp;gt; 0 =&amp;gt; 0&lt;br/&gt;
default_socket_timeout =&amp;gt; 60 =&amp;gt; 60&lt;br/&gt;
from =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
safe_mode_allowed_env_vars =&amp;gt; PHP_ =&amp;gt; PHP_&lt;br/&gt;
safe_mode_protected_env_vars =&amp;gt; LD_LIBRARY_PATH =&amp;gt; LD_LIBRARY_PATH&lt;br/&gt;
url_rewriter.tags =&amp;gt; a=href,area=href,frame=src,input=src,form=fakeentry =&amp;gt; a=href,area=href,frame=src,input=src,form=fakeentry&lt;br/&gt;
user_agent =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
&lt;br/&gt;
tokenizer&lt;br/&gt;
&lt;br/&gt;
Tokenizer Support =&amp;gt; enabled&lt;br/&gt;
&lt;br/&gt;
xml&lt;br/&gt;
&lt;br/&gt;
XML Support =&amp;gt; active&lt;br/&gt;
XML Namespace Support =&amp;gt; active&lt;br/&gt;
libxml2 Version =&amp;gt; 2.6.26&lt;br/&gt;
&lt;br/&gt;
zip&lt;br/&gt;
&lt;br/&gt;
Zip =&amp;gt; enabled&lt;br/&gt;
Extension Version =&amp;gt; $Id$&lt;br/&gt;
Zip version =&amp;gt; 1.11.0&lt;br/&gt;
Libzip version =&amp;gt; 0.10.1&lt;br/&gt;
&lt;br/&gt;
zlib&lt;br/&gt;
&lt;br/&gt;
ZLib Support =&amp;gt; enabled&lt;br/&gt;
Stream Wrapper support =&amp;gt; compress.zlib://&lt;br/&gt;
Stream Filter support =&amp;gt; zlib.inflate, zlib.deflate&lt;br/&gt;
Compiled Version =&amp;gt; 1.2.3&lt;br/&gt;
Linked Version =&amp;gt; 1.2.3&lt;br/&gt;
&lt;br/&gt;
Directive =&amp;gt; Local Value =&amp;gt; Master Value&lt;br/&gt;
zlib.output_compression =&amp;gt; Off =&amp;gt; Off&lt;br/&gt;
zlib.output_compression_level =&amp;gt; -1 =&amp;gt; -1&lt;br/&gt;
zlib.output_handler =&amp;gt; no value =&amp;gt; no value&lt;br/&gt;
&lt;br/&gt;
Additional Modules&lt;br/&gt;
&lt;br/&gt;
Module Name&lt;br/&gt;
readline&lt;br/&gt;
&lt;br/&gt;
Environment&lt;br/&gt;
&lt;br/&gt;
Variable =&amp;gt; Value&lt;br/&gt;
HOSTNAME =&amp;gt; localhost.localdomain&lt;br/&gt;
TERM =&amp;gt; xterm-256color&lt;br/&gt;
SHELL =&amp;gt; /bin/bash&lt;br/&gt;
HISTSIZE =&amp;gt; 1000&lt;br/&gt;
SSH_CLIENT =&amp;gt; 10.32.16.37 62308 22&lt;br/&gt;
SSH_TTY =&amp;gt; /dev/pts/1&lt;br/&gt;
USER =&amp;gt; root&lt;br/&gt;
LS_COLORS =&amp;gt;&lt;br/&gt;
SSH_AUTH_SOCK =&amp;gt; /tmp/ssh-RpQDiY3683/agent.3683&lt;br/&gt;
MAIL =&amp;gt; /var/spool/mail/root&lt;br/&gt;
PATH =&amp;gt; /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin&lt;br/&gt;
PWD =&amp;gt; /usr/share/nginx/html&lt;br/&gt;
LANG =&amp;gt; en_US.UTF-8&lt;br/&gt;
SSH_ASKPASS =&amp;gt; /usr/libexec/openssh/gnome-ssh-askpass&lt;br/&gt;
SHLVL =&amp;gt; 1&lt;br/&gt;
HOME =&amp;gt; /root&lt;br/&gt;
LOGNAME =&amp;gt; root&lt;br/&gt;
SSH_CONNECTION =&amp;gt; 10.32.16.37 62308 10.4.2.14 22&lt;br/&gt;
LESSOPEN =&amp;gt; |/usr/bin/lesspipe.sh %s&lt;br/&gt;
G_BROKEN_FILENAMES =&amp;gt; 1&lt;br/&gt;
_ =&amp;gt; /usr/bin/php&lt;br/&gt;
OLDPWD =&amp;gt; /root/php-lib&lt;br/&gt;
&lt;br/&gt;
PHP Variables&lt;br/&gt;
&lt;br/&gt;
Variable =&amp;gt; Value&lt;br/&gt;
_SERVER[&amp;quot;HOSTNAME&amp;quot;] =&amp;gt; localhost.localdomain&lt;br/&gt;
_SERVER[&amp;quot;TERM&amp;quot;] =&amp;gt; xterm-256color&lt;br/&gt;
_SERVER[&amp;quot;SHELL&amp;quot;] =&amp;gt; /bin/bash&lt;br/&gt;
_SERVER[&amp;quot;HISTSIZE&amp;quot;] =&amp;gt; 1000&lt;br/&gt;
_SERVER[&amp;quot;SSH_CLIENT&amp;quot;] =&amp;gt; 10.32.16.37 62308 22&lt;br/&gt;
_SERVER[&amp;quot;SSH_TTY&amp;quot;] =&amp;gt; /dev/pts/1&lt;br/&gt;
_SERVER[&amp;quot;USER&amp;quot;] =&amp;gt; root&lt;br/&gt;
_SERVER[&amp;quot;LS_COLORS&amp;quot;] =&amp;gt;&lt;br/&gt;
_SERVER[&amp;quot;SSH_AUTH_SOCK&amp;quot;] =&amp;gt; /tmp/ssh-RpQDiY3683/agent.3683&lt;br/&gt;
_SERVER[&amp;quot;MAIL&amp;quot;] =&amp;gt; /var/spool/mail/root&lt;br/&gt;
_SERVER[&amp;quot;PATH&amp;quot;] =&amp;gt; /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin&lt;br/&gt;
_SERVER[&amp;quot;PWD&amp;quot;] =&amp;gt; /usr/share/nginx/html&lt;br/&gt;
_SERVER[&amp;quot;LANG&amp;quot;] =&amp;gt; en_US.UTF-8&lt;br/&gt;
_SERVER[&amp;quot;SSH_ASKPASS&amp;quot;] =&amp;gt; /usr/libexec/openssh/gnome-ssh-askpass&lt;br/&gt;
_SERVER[&amp;quot;SHLVL&amp;quot;] =&amp;gt; 1&lt;br/&gt;
_SERVER[&amp;quot;HOME&amp;quot;] =&amp;gt; /root&lt;br/&gt;
_SERVER[&amp;quot;LOGNAME&amp;quot;] =&amp;gt; root&lt;br/&gt;
_SERVER[&amp;quot;SSH_CONNECTION&amp;quot;] =&amp;gt; 10.32.16.37 62308 10.4.2.14 22&lt;br/&gt;
_SERVER[&amp;quot;LESSOPEN&amp;quot;] =&amp;gt; |/usr/bin/lesspipe.sh %s&lt;br/&gt;
_SERVER[&amp;quot;G_BROKEN_FILENAMES&amp;quot;] =&amp;gt; 1&lt;br/&gt;
_SERVER[&amp;quot;_&amp;quot;] =&amp;gt; /usr/bin/php&lt;br/&gt;
_SERVER[&amp;quot;OLDPWD&amp;quot;] =&amp;gt; /root/php-lib&lt;br/&gt;
_SERVER[&amp;quot;PHP_SELF&amp;quot;] =&amp;gt;&lt;br/&gt;
_SERVER[&amp;quot;SCRIPT_NAME&amp;quot;] =&amp;gt;&lt;br/&gt;
_SERVER[&amp;quot;SCRIPT_FILENAME&amp;quot;] =&amp;gt;&lt;br/&gt;
_SERVER[&amp;quot;PATH_TRANSLATED&amp;quot;] =&amp;gt;&lt;br/&gt;
_SERVER[&amp;quot;DOCUMENT_ROOT&amp;quot;] =&amp;gt;&lt;br/&gt;
_SERVER[&amp;quot;REQUEST_TIME&amp;quot;] =&amp;gt; 1351803847&lt;br/&gt;
_SERVER[&amp;quot;argv&amp;quot;] =&amp;gt; Array&lt;br/&gt;
(&lt;br/&gt;
)&lt;br/&gt;
&lt;br/&gt;
_SERVER[&amp;quot;argc&amp;quot;] =&amp;gt; 0&lt;br/&gt;
&lt;br/&gt;
PHP License&lt;br/&gt;
This program is free software; you can redistribute it and/or modify&lt;br/&gt;
it under the terms of the PHP License as published by the PHP Group&lt;br/&gt;
and included in the distribution in the file:  LICENSE&lt;br/&gt;
&lt;br/&gt;
This program is distributed in the hope that it will be useful,&lt;br/&gt;
but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br/&gt;
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br/&gt;
&lt;br/&gt;
If you did not receive a copy of the PHP license, or have any&lt;br/&gt;
questions about PHP licensing, please contact &lt;a href=&apos;mailto:license@php.net&apos;&gt;license@php.net&lt;/a&gt;.</comment>
                    <comment id="43155" author="TimSmith" created="Fri, 2 Nov 2012 14:08:32 -0500"  >It doesn&amp;#39;t work even when the extension is compiled to use fastlz compression.&lt;br/&gt;
&lt;br/&gt;
I recompiled php-ext-couchbase from git with current libcouchbase code, and configured to include fastlz support. I set couchbase.compressor=fastlz in php.ini. And the couchbase.compression_threshold is at 2000, same as the memcached extension setting.&lt;br/&gt;
&lt;br/&gt;
Excerpt of phpinfo() for the couchbase extension:&lt;br/&gt;
&lt;br/&gt;
couchbase support	enabled&lt;br/&gt;
version	1.1.0-dp5&lt;br/&gt;
json support	yes&lt;br/&gt;
fastlz support	yes&lt;br/&gt;
zlib support	yes&lt;br/&gt;
&lt;br/&gt;
Directive	Local Value	Master Value&lt;br/&gt;
couchbase.compression_factor	1.3	1.3&lt;br/&gt;
couchbase.compression_threshold	2000	2000&lt;br/&gt;
couchbase.compressor	fastlz	fastlz&lt;br/&gt;
couchbase.serializer	php	php&lt;br/&gt;
&lt;br/&gt;
The same test case fails in the same way:&lt;br/&gt;
&lt;br/&gt;
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 7598212603105511377 bytes) in /usr/share/nginx/html/cb.php on line 35&lt;br/&gt;
&lt;br/&gt;
</comment>
                    <comment id="43156" author="TimSmith" created="Fri, 2 Nov 2012 14:11:22 -0500"  >By the way, in order to compile with fastlz support, the following patch is needed:&lt;br/&gt;
&lt;br/&gt;
diff --git a/couchbase.c b/couchbase.c&lt;br/&gt;
index 240ba3e..f4c14e5 100644&lt;br/&gt;
--- a/couchbase.c&lt;br/&gt;
+++ b/couchbase.c&lt;br/&gt;
@@ -41,6 +41,8 @@&lt;br/&gt;
&amp;nbsp;#include &amp;lt;libcouchbase/couchbase.h&amp;gt;&lt;br/&gt;
&amp;nbsp;#include &amp;quot;php_couchbase.h&amp;quot;&lt;br/&gt;
&amp;nbsp;#ifdef HAVE_COMPRESSION_FASTLZ&lt;br/&gt;
+# include &amp;quot;fastlz.h&amp;quot;&lt;br/&gt;
+/* Any other code that uses fastlz_* should only include the header */&lt;br/&gt;
&amp;nbsp;# include &amp;quot;fastlz.c&amp;quot;&lt;br/&gt;
&amp;nbsp;#endif&lt;br/&gt;
&amp;nbsp;#ifdef HAVE_COMPRESSION_ZLIB&lt;br/&gt;
diff --git a/views.c b/views.c&lt;br/&gt;
index 395cc2b..e818473 100644&lt;br/&gt;
--- a/views.c&lt;br/&gt;
+++ b/views.c&lt;br/&gt;
@@ -19,7 +19,7 @@&lt;br/&gt;
&amp;nbsp;#include &amp;lt;libcouchbase/couchbase.h&amp;gt;&lt;br/&gt;
&amp;nbsp;#include &amp;quot;php_couchbase.h&amp;quot;&lt;br/&gt;
&amp;nbsp;#ifdef HAVE_COMPRESSION_FASTLZ&lt;br/&gt;
-# include &amp;quot;fastlz.c&amp;quot;&lt;br/&gt;
+# include &amp;quot;fastlz.h&amp;quot;&lt;br/&gt;
&amp;nbsp;#endif&lt;br/&gt;
&amp;nbsp;#ifdef HAVE_COMPRESSION_ZLIB&lt;br/&gt;
&amp;nbsp;# include &amp;quot;zlib.h&amp;quot;&lt;br/&gt;
&lt;br/&gt;
Otherwise linking couchbase.so fails because the fastlz functions are defined in more than one place.</comment>
                    <comment id="43160" author="mnunberg" created="Fri, 2 Nov 2012 14:41:53 -0500"  >Fixes for this are in progress.&lt;br/&gt;
&lt;br/&gt;
&lt;a href=&quot;http://review.couchbase.org/#/c/20604/&quot;&gt;http://review.couchbase.org/#/c/20604/&lt;/a&gt; (in progress) fixes some of the crazy allocation attempts you&amp;#39;ve seen.&lt;br/&gt;
&lt;br/&gt;
As for fastlz support, it shouldn&amp;#39;t be too difficult to add it on.&lt;br/&gt;
</comment>
                    <comment id="43452" author="mnunberg" created="Tue, 6 Nov 2012 20:43:57 -0600"  >A binary is attached. It&amp;#39;s not compiled against the exact same version of php, but the zend api versions remain the same.&lt;br/&gt;
&lt;br/&gt;
If the binary release doesn&amp;#39;t work, I&amp;#39;d be happy to walk someone through building it from source (it&amp;#39;s a very simple process -- much simpler than getting this binary built).&lt;br/&gt;
</comment>
                    <comment id="43453" author="mnunberg" created="Tue, 6 Nov 2012 20:44:58 -0600"  >Note this is for the 1.1-dp php-ext branch. I&amp;#39;ve yet to backport this to the 1.0 branch</comment>
                    <comment id="43487" author="ingenthr" created="Wed, 7 Nov 2012 15:22:23 -0600"  >Mark: Please determine if this issue is still valid and help me triage it into the appropriate release.  I&amp;#39;ve assigned it to you for triage, not necessarily to fix it.</comment>
                    <comment id="43501" author="mnunberg" created="Wed, 7 Nov 2012 15:33:30 -0600"  >Awaiting approval on &lt;a href=&quot;http://review.couchbase.com/22340&quot;&gt;http://review.couchbase.com/22340&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
The is fixed in the code. Still needs backport to 1.0.x&lt;br/&gt;
&lt;br/&gt;
Assigning back to you</comment>
                    <comment id="43511" author="mnunberg" created="Wed, 7 Nov 2012 16:05:57 -0600"  >&lt;a href=&quot;http://review.couchbase.org/#/c/22340/&quot;&gt;http://review.couchbase.org/#/c/22340/&lt;/a&gt; (1.1)</comment>
                    <comment id="43833" author="ingenthr" created="Mon, 12 Nov 2012 15:40:09 -0600"  >Awaiting verification fix from customer.</comment>
                    <comment id="44023" author="ingenthr" created="Wed, 14 Nov 2012 15:43:30 -0600"  >Trond: can you take care of backporting this to 1.0.x please?</comment>
                    <comment id="44110" author="TimSmith" created="Thu, 15 Nov 2012 12:32:12 -0600"  >More detail. I was personally unable to get the build of the latest PHP code to work with the beta2 release. I was hitting the error that is reported on &lt;a href=&quot;http://www.couchbase.com/issues/browse/CCBC-126&quot;&gt;http://www.couchbase.com/issues/browse/CCBC-126&lt;/a&gt; :&lt;br/&gt;
&lt;br/&gt;
Warning: Couchbase::__construct() [couchbase.--construct]: failed to create IO instance in /usr/share/nginx/html/cb.php on line 18&lt;br/&gt;
&lt;br/&gt;
Building from sources let me get past that and actually test the build that the customer was trying. And following from that was a need to deal with LD_LIBRARY_PATH and symlink hacks.&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
A backport of the fastlz compression fix to 1.0.x, with an official release of that, would be best for this particular user&amp;#39;s needs. Can we get an ETA on when that will be available?&lt;br/&gt;
&lt;br/&gt;
Thanks,&lt;br/&gt;
&lt;br/&gt;
Tim</comment>
                    <comment id="44189" author="trond" created="Fri, 16 Nov 2012 06:51:23 -0600"  >For 1.0.x: &lt;a href=&quot;http://review.couchbase.org/#/c/22590/&quot;&gt;http://review.couchbase.org/#/c/22590/&lt;/a&gt;</comment>
                    <comment id="44239" author="TimSmith" created="Fri, 16 Nov 2012 18:02:00 -0600"  >I&amp;#39;ve confirmed it to work (using the current 1.0.x branch from github.com/couchbase/php-ext-couchbase).&lt;br/&gt;
&lt;br/&gt;
I had to create a fake /usr/lib64/libvbucket.la to get it to compile:  &lt;a href=&quot;http://www.couchbase.com/issues/browse/CCBC-127&quot;&gt;http://www.couchbase.com/issues/browse/CCBC-127&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
I noticed that compress.c has this redundant (unused) definition:&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;92 /* headers which claim an uncompressed size above this figure are bad */&lt;br/&gt;
&amp;nbsp;93 #define DECOMP_SANITY_LIMIT 0x40000000&lt;br/&gt;
&lt;br/&gt;
And this inaccurate comment:&lt;br/&gt;
&lt;br/&gt;
172         /**&lt;br/&gt;
173          * sanity check, don&amp;#39;t allocate over a GB, we should make this number&lt;br/&gt;
174          * smaller though&lt;br/&gt;
175          */&lt;br/&gt;
&lt;br/&gt;
Obviously minor cleanup stuff, nothing significant that I can spot.&lt;br/&gt;
&lt;br/&gt;
Would be great to get a 1.0.x package built and available for download with this (and other critical fixes, like &lt;a href=&quot;http://www.couchbase.com/issues/browse/PCBC-75&quot; title=&quot;segfault when using persistent connections&quot;&gt;&lt;strike&gt;PCBC-75&lt;/strike&gt;&lt;/a&gt;) available to customers. Is there an ETA on when that can be done?&lt;br/&gt;
&lt;br/&gt;
Tim</comment>
                    <comment id="44252" author="ingenthr" created="Fri, 16 Nov 2012 21:46:41 -0600"  >Packages are being uploaded to the site right now.  Web page update to follow. Release notes will go up on Monday.</comment>
                </comments>
                <issuelinks>
                        <issuelinktype id="10000">
                <name>Dependency</name>
                                                <inwardlinks description="blocks">
                                    </inwardlinks>
                            </issuelinktype>
                    </issuelinks>
                <attachments>
                    <attachment id="15732" name="couchbase.so.gz" size="100666" author="mnunberg" created="Tue, 6 Nov 2012 20:43:57 -0600" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9525</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-137] view querying needs to be more straightforward; e.g. character strings of decimal digits are serialised over the REST API as integers in view requests</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-137</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>Given this code:&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;$key = &amp;quot;1&amp;quot;;&lt;br/&gt;
&amp;nbsp;$result = $cb-&amp;gt;view(&amp;quot;design&amp;quot;, &amp;quot;view&amp;quot;, array(&amp;quot;key&amp;quot;=&amp;gt;$key));&lt;br/&gt;
&lt;br/&gt;
The PHP library will serialize this to a REST request as follows:&lt;br/&gt;
&lt;br/&gt;
GET /bucket/_design/design/_view/view?key=1&lt;br/&gt;
&lt;br/&gt;
This will be deserialized by couchbase as the integer value 1, not as the string value &amp;quot;1&amp;quot;.  Consequently, any key that is a string of decimal digits cannot be retrieved from a view with the PHP library.&lt;br/&gt;
&lt;br/&gt;
This workaround can be used:&lt;br/&gt;
&lt;br/&gt;
$key = &amp;quot;1&amp;quot;;&lt;br/&gt;
$result = $cb-&amp;gt;view(&amp;quot;design&amp;quot;, &amp;quot;view&amp;quot;, array(&amp;quot;key&amp;quot;=&amp;gt;&amp;#39;&amp;quot;&amp;#39;.$key.&amp;#39;&amp;quot;&amp;#39;));&lt;br/&gt;
&lt;br/&gt;
The library will serialize this to a REST request as follows:&lt;br/&gt;
&lt;br/&gt;
GET /bucket/_design/design/_view/view?key=&amp;quot;1&amp;quot;&lt;br/&gt;
&lt;br/&gt;
And couchbase will deserialize this as the string value &amp;quot;1&amp;quot;.&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
</description>
                <environment></environment>
            <key id="20415">PCBC-137</key>
            <summary>view querying needs to be more straightforward; e.g. character strings of decimal digits are serialised over the REST API as integers in view requests</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="ingenthr">Matt Ingenthron</assignee>
                                <reporter username="michael8robinson">Michael Robinson</reporter>
                        <labels>
                    </labels>
                <created>Thu, 25 Oct 2012 07:19:18 -0500</created>
                <updated>Tue, 11 Dec 2012 19:59:32 -0600</updated>
                    <resolved>Fri, 23 Nov 2012 20:21:18 -0600</resolved>
                            <version>1.1.0-dp5</version>
                                <fixVersion>1.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>3</watches>
                                                    <comments>
                    <comment id="42484" author="ingenthr" created="Thu, 25 Oct 2012 12:55:14 -0500"  >Mark: I saw you mention this earlier.  Can you provide an assessment on this?</comment>
                    <comment id="42511" author="mnunberg" created="Thu, 25 Oct 2012 14:15:04 -0500"  >This is a more generalized bug or task of making php aware of the view parameters it passes.&lt;br/&gt;
&lt;br/&gt;
Currently it only serializes the key-value pairs in the array as is. Having php know about where to place quotes would mean making the client aware abotu the variations in the view parameters, or in other words, implementing all of the view logic in the client library.&lt;br/&gt;
&lt;br/&gt;
For now the user should be aware of this, and if something clearly mandates &amp;quot;quotes&amp;quot; then it should be quoted already when passed to the array.&lt;br/&gt;
&lt;br/&gt;
While it&amp;#39;s not the most elegant solution the fix to this is by far not surgical, and thus i recommend changing the name of this bug</comment>
                    <comment id="42530" author="michael8robinson" created="Thu, 25 Oct 2012 15:53:59 -0500"  >Would logic equivalent to this not solve the problem?&lt;br/&gt;
&lt;br/&gt;
if (is_string($params[&amp;quot;key&amp;quot;])) {&lt;br/&gt;
&amp;nbsp;&amp;nbsp;$paramString += &amp;#39;key=&amp;quot;&amp;#39;.$params[&amp;quot;key&amp;quot;].&amp;#39;&amp;quot;&amp;#39;;&lt;br/&gt;
}&lt;br/&gt;
else {&lt;br/&gt;
&amp;nbsp;&amp;nbsp;$paramString += &amp;#39;key=&amp;#39;.$params[&amp;quot;key&amp;quot;];&lt;br/&gt;
}</comment>
                    <comment id="42536" author="mnunberg" created="Thu, 25 Oct 2012 16:23:10 -0500"  >No, because there are some parameters which do need actual integers.&lt;br/&gt;
&lt;br/&gt;
Maybe the server can tolerate numeric parameters even fi they are enclosed in quotes, but I am not sure about that.&lt;br/&gt;
&lt;br/&gt;
See&lt;br/&gt;
&lt;br/&gt;
&lt;a href=&quot;http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-querying-rest-api.html&quot;&gt;http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-querying-rest-api.html&lt;/a&gt; - and for example, group_level&lt;br/&gt;
&lt;br/&gt;
Basically, the php client needs more logic to know the appropriate type for each parameter and perform the necessary coercion. i.e. numeric values for keys are not the same as numeric values for pagination</comment>
                    <comment id="42574" author="michael8robinson" created="Fri, 26 Oct 2012 04:20:12 -0500"  >Ok, it seems there are two problems at issue:&lt;br/&gt;
&lt;br/&gt;
Problem 1:  As a general case, type coercions across all parameters in the REST query string are not being handled as intelligently as they could be by the PHP library.&lt;br/&gt;
&lt;br/&gt;
Problem 2:  As a special case of problem 1, the PHP library will silently fail to retrieve records from a view if the key happens to be a string of decimal digits.&lt;br/&gt;
&lt;br/&gt;
Without addressing the technical or architectural challenges of problem 1, it seems that, with respect to problem 2, as a general principle, silently failing to retrieve valid records for which a valid request was submitted is generally recognized as undesirable behavior for a database system.&lt;br/&gt;
&lt;br/&gt;
This undesirable behavior could be rectified by the following (and as far as I can see, trivial) change to the serialization logic:&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;If the parameter is in the set (&amp;quot;key&amp;quot;, &amp;quot;startkey&amp;quot;, &amp;quot;startkey_docid&amp;quot;, &amp;quot;endkey&amp;quot;, &amp;quot;endkey_docid&amp;quot;),&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;and if the PHP type of the corresponding parameter value is &amp;quot;string&amp;quot;,&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;then serialize the parameter value in quotation marks in the REST query string,&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;otherwise serialize the parameter value according to current implementation.&lt;br/&gt;
&lt;br/&gt;
Yes?&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;</comment>
                    <comment id="42575" author="ingenthr" created="Fri, 26 Oct 2012 04:43:45 -0500"  >That does seem to make sense to me Michael.  That&amp;#39;s roughly what we evolved to on the other clients (Java &amp;amp;&amp;amp; .NET), but there things are a bit different because of the types.</comment>
                    <comment id="43840" author="ingenthr" created="Mon, 12 Nov 2012 15:52:03 -0600"  >Michael: can you take the lead on documenting a reasonable view query API.  You have been through this once before, so I think you&amp;#39;d be the best person here.  Simply document it here in this issue and then let&amp;#39;s schedule a quick design review.</comment>
                    <comment id="43879" author="daschl" created="Tue, 13 Nov 2012 04:45:32 -0600"  >Here is my proposal.&lt;br/&gt;
&lt;br/&gt;
I&amp;#39;ve been thinking through and working around this while hacking on Basement (&lt;a href=&quot;https://github.com/daschl/Basement&quot;&gt;https://github.com/daschl/Basement&lt;/a&gt;) and also while extending the Java API. You may see similarities because of this (and you&amp;#39;ll hopefully see why and how it makes sense).&lt;br/&gt;
&lt;br/&gt;
At the lowest level, I think we should provide two ways of passing in queries in there.&lt;br/&gt;
&lt;br/&gt;
1) A plain array as it is now. This way users can work around possible bugs and also have the flexibility if they know what they&amp;#39;re doing. We should clearly state though that they are &amp;quot;on their own&amp;quot; when going down this route.&lt;br/&gt;
&lt;br/&gt;
2) A CouchbaseViewQuery object (sorry, since we don&amp;#39;t support namespaces in the extension). This works nearly similar to the Java-one, with the main difference that we need to care about working out the appropriate result type on our own (since you can pass in everything as a variable).&lt;br/&gt;
&lt;br/&gt;
All further discussion (except noted) refers to the new object and how it should behave.&lt;br/&gt;
&lt;br/&gt;
The construct should either take no params or an array to be initialized with. If it gets an array, it doesn&amp;#39;t set the params directly but calls each setter for the given key to make sure that all rules are properly enforced.&lt;br/&gt;
&lt;br/&gt;
Here is a simplified example. It assumes that all setter methods have the name as the param (like key() when setting/getting the key). If we want bean-style setters the method names need to be changed of course.&lt;br/&gt;
&lt;br/&gt;
	class CouchbaseViewQuery {&lt;br/&gt;
		&lt;br/&gt;
		// holds the params to be exported&lt;br/&gt;
		private $params = array();&lt;br/&gt;
&lt;br/&gt;
		// iterate over the given object an call setters.&lt;br/&gt;
		public function __construct($params = array()) {&lt;br/&gt;
			foreach($params as $key =&amp;gt; $value) {&lt;br/&gt;
				if($value !== null) {&lt;br/&gt;
					$this-&amp;gt;{$key}($value);&lt;br/&gt;
				}&lt;br/&gt;
			}&lt;br/&gt;
		}&lt;br/&gt;
&lt;br/&gt;
		public function reduce($reduce = null) {&lt;br/&gt;
			// getter/setter functionality in each method makes it condensed.&lt;br/&gt;
			if($reduce == null) {&lt;br/&gt;
				return $this-&amp;gt;params[&amp;#39;reduce&amp;#39;];&lt;br/&gt;
			}&lt;br/&gt;
&lt;br/&gt;
			// do appropriate type checking for each param depending on whats&lt;br/&gt;
			// supported.&lt;br/&gt;
			if($reduce === &amp;#39;true&amp;#39; || $reduce === true) {&lt;br/&gt;
				$this-&amp;gt;params[&amp;#39;reduce&amp;#39;] = true;&lt;br/&gt;
			}&lt;br/&gt;
&lt;br/&gt;
			// return object to let chain setters.&lt;br/&gt;
			return $this;&lt;br/&gt;
		}&lt;br/&gt;
&lt;br/&gt;
	}&lt;br/&gt;
&lt;br/&gt;
Depending on how much we want to change the underlying interface, this query object can have either a toArray() or toString() export method that handles either only exporting it to an array, a string or also handle JSON serialization or encoding (don&amp;#39;t know what of this parts is handled by libcouchbase itself).&lt;br/&gt;
&lt;br/&gt;
Here is a possible usage example:&lt;br/&gt;
&lt;br/&gt;
	$query = new CouchbaseViewQuery();&lt;br/&gt;
	$query-&amp;gt;setReduce(true); // equally to $query-&amp;gt;setReduce(&amp;#39;true&amp;#39;); then&lt;br/&gt;
	$cb-&amp;gt;view(&amp;#39;design&amp;#39;, &amp;#39;view&amp;#39;, $query);&lt;br/&gt;
&lt;br/&gt;
Also, all checks and conversions can then be handled transparently and securely by their appropriate setter methods. PHP also provides is_string() and so on to further determine what is passed into the variable.&lt;br/&gt;
&lt;br/&gt;
Also, the export method is then in the position to do semantical checks like throw a warning/exception when reduce is false (or not set) and a group param is passed on. This could also be done in the setter but I&amp;#39;d like to see it done on exporting to reduce the coupling between setters.&lt;br/&gt;
&lt;br/&gt;
The query handling object could look similar to this: &lt;a href=&quot;https://github.com/daschl/Basement/blob/master/README.md#working-with-views&quot;&gt;https://github.com/daschl/Basement/blob/master/README.md#working-with-views&lt;/a&gt; (of course the method signature for view querying is differently, but the Query object would be nearly the same).&lt;br/&gt;
&lt;br/&gt;
Let me know what you think guys,&lt;br/&gt;
Michael&lt;br/&gt;
</comment>
                    <comment id="43880" author="daschl" created="Tue, 13 Nov 2012 04:45:47 -0600"  >For design review.</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9800</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-135] Wrong parameter description for delete()</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-135</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>The docs API for the delete method says: ( &lt;a href=&quot;http://www.couchbase.com/docs/couchbase-sdk-php-1.1/api-reference-update.html#table-couchbase-sdk_php_delete&quot;&gt;http://www.couchbase.com/docs/couchbase-sdk-php-1.1/api-reference-update.html#table-couchbase-sdk_php_delete&lt;/a&gt; )&lt;br/&gt;
&lt;br/&gt;
$object-&amp;gt;delete($key [, $expiry ])&lt;br/&gt;
&lt;br/&gt;
But the expire should actually be cas, as in the source &lt;a href=&quot;https://github.com/couchbase/php-ext-couchbase/blob/master/couchbase.c#L401&quot;&gt;https://github.com/couchbase/php-ext-couchbase/blob/master/couchbase.c#L401&lt;/a&gt;&lt;br/&gt;
</description>
                <environment></environment>
            <key id="20134">PCBC-135</key>
            <summary>Wrong parameter description for delete()</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="6" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/closed.png">Closed</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="kzeller">Karen Zeller</assignee>
                                <reporter username="akadna">Dan Andersen</reporter>
                        <labels>
                    </labels>
                <created>Mon, 8 Oct 2012 16:20:09 -0500</created>
                <updated>Tue, 11 Dec 2012 19:59:32 -0600</updated>
                    <resolved>Tue, 27 Nov 2012 14:27:33 -0600</resolved>
                            <version>1.0</version>
                <version>1.1.0-dp4</version>
                                <fixVersion>1.0.5</fixVersion>
                <fixVersion>1.1.0</fixVersion>
                                <component>docs</component>
                                <votes>0</votes>
                        <watches>1</watches>
                                                    <comments>
                    <comment id="40728" author="ingenthr" created="Mon, 8 Oct 2012 19:21:53 -0500"  >Please update this in both the 1.0 and 1.1 SDK docs.</comment>
                    <comment id="44866" author="kzeller" created="Tue, 27 Nov 2012 14:27:33 -0600"  >Should be fixed with this change, I think:&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;argument inherit=&amp;quot;cas&amp;quot; optional=&amp;quot;yes&amp;quot;/&amp;gt;</comment>
                    <comment id="44867" author="kzeller" created="Tue, 27 Nov 2012 14:27:45 -0600"  >should be the fix:&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;argument inherit=&amp;quot;cas&amp;quot; optional=&amp;quot;yes&amp;quot;/&amp;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>9802</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-134] Provide more information on connection failure</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-134</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>When you connect via the new Couchbase(...) is not a direct way to check for whether the connection failed. &lt;br/&gt;
&lt;br/&gt;
It is not possible to check getResultCode()/getResultMessage() since this provides a unintilized couchbase</description>
                <environment></environment>
            <key id="20130">PCBC-134</key>
            <summary>Provide more information on connection failure</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="mjackson">Michael Jackson</assignee>
                                <reporter username="akadna">Dan Andersen</reporter>
                        <labels>
                    </labels>
                <created>Mon, 8 Oct 2012 15:52:50 -0500</created>
                <updated>Mon, 11 Feb 2013 14:09:04 -0600</updated>
                    <resolved>Fri, 26 Oct 2012 17:56:13 -0500</resolved>
                            <version>1.0.5</version>
                <version>1.1.0-dp4</version>
                                <fixVersion>1.0.6</fixVersion>
                <fixVersion>1.1.0</fixVersion>
                                <component>library</component>
                                <votes>1</votes>
                        <watches>1</watches>
                                                    <comments>
                    <comment id="40686" author="mnunberg" created="Mon, 8 Oct 2012 15:57:50 -0500"  >For this we&amp;#39;d probably need to change the ext code to return a valid couchbase object so that getResultCode can be called on it (to check for connection failures).&lt;br/&gt;
&lt;br/&gt;
For the non-oo variant (couchbase_connect) behavior should remain the same (?)&lt;br/&gt;
&lt;br/&gt;
Additionally, all the code which now checks for the couchbase object to simply exist should be changed to check that the couchbase object is indeed connected (I believe lcb has a function for that, but if not we can set our own little flag in our php_couchbase_ctx structure).&lt;br/&gt;
&lt;br/&gt;
One workaround is to call set_error_handler and make it throw an ErrorException right before instantiation. Then the connection can be done in a try/catch block, with any message being found in $ex-&amp;gt;getMessage().&lt;br/&gt;
&lt;br/&gt;
I believe there may be ther workarounds as well</comment>
                    <comment id="40799" author="mjackson" created="Tue, 9 Oct 2012 10:25:17 -0500"  >patch set in progress: &lt;a href=&quot;http://review.couchbase.org/#/c/21433/&quot;&gt;http://review.couchbase.org/#/c/21433/&lt;/a&gt;</comment>
                    <comment id="40913" author="mjackson" created="Tue, 9 Oct 2012 19:05:46 -0500"  >As a side note, I have a 1.0.x backport of the changes above ready to roll once the master branch changes are approved/merged.</comment>
                    <comment id="40953" author="mjackson" created="Wed, 10 Oct 2012 10:58:53 -0500"  >master branch changeset is merged in.  1.0.x changeset is here: &lt;a href=&quot;http://review.couchbase.org/#/c/21487/&quot;&gt;http://review.couchbase.org/#/c/21487/&lt;/a&gt;</comment>
                    <comment id="41999" author="mjackson" created="Fri, 19 Oct 2012 18:12:11 -0500"  >(I believe all this needs for resolution is the 1.0.x changeset mentioned above to be merged into 1.0.x branch.)</comment>
                    <comment id="42651" author="mjackson" created="Fri, 26 Oct 2012 17:56:13 -0500"  >1.0.x merged in just now, 1.1 has been in for a bit.  Should be present in next released versions.</comment>
                </comments>
                <issuelinks>
                        <issuelinktype id="10001">
                <name>Duplicate</name>
                                <outwardlinks description="duplicates">
                            <issuelink>
            <issuekey id="16386">PCBC-58</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>9803</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-132] Document testing procedures</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-132</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description></description>
                <environment></environment>
            <key id="20107">PCBC-132</key>
            <summary>Document testing procedures</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="mnunberg">Mark Nunberg</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Fri, 5 Oct 2012 16:59:41 -0500</created>
                <updated>Tue, 11 Dec 2012 19:55:29 -0600</updated>
                    <resolved>Mon, 12 Nov 2012 01:48:41 -0600</resolved>
                            <version>1.1.0-dp5</version>
                                <fixVersion>1.1.0</fixVersion>
                                <component>library</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="43443" author="mnunberg" created="Tue, 6 Nov 2012 18:01:25 -0600"  >&lt;a href=&quot;http://review.couchbase.org/22320&quot;&gt;http://review.couchbase.org/22320&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>9804</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-119] Expose timeout setting</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-119</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>libcouchbase has a timeout setting for connection responsiveness. This should be exposed in the php library.&lt;br/&gt;
&lt;br/&gt;
The basic idea is that at libcouchbase initialization time, the PHP extension should set up the per-operation timeout to something the user specifies.&lt;br/&gt;
&lt;br/&gt;
By the way, while in there, see if there are other tuneables that should be exposed.</description>
                <environment></environment>
            <key id="19919">PCBC-119</key>
            <summary>Expose timeout setting</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="3">Duplicate</resolution>
                    <security id="10011">Public</security>
                        <assignee username="trond">Trond Norbye</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Wed, 26 Sep 2012 15:11:17 -0500</created>
                <updated>Tue, 11 Dec 2012 19:55:29 -0600</updated>
                    <resolved>Wed, 14 Nov 2012 02:49:10 -0600</resolved>
                                            <fixVersion>1.1.0</fixVersion>
                                <component>library</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="40969" author="ingenthr" created="Wed, 10 Oct 2012 15:12:56 -0500"  >This should come toward the end of your scope, but hopefully we&amp;#39;ll have time for it.</comment>
                    <comment id="43952" author="trond" created="Wed, 14 Nov 2012 02:49:10 -0600"  >THis is a duplicate of &lt;a href=&quot;http://www.couchbase.com/issues/browse/PCBC-100&quot; title=&quot;timeouts need to be tunable and consistent with other SDKs&quot;&gt;&lt;strike&gt;PCBC-100&lt;/strike&gt;&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>9816</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-108] version() returns the library version, not server version</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-108</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>Documentation wrongly states that version returns the version of the server; this in fact returns the version of the library</description>
                <environment></environment>
            <key id="19522">PCBC-108</key>
            <summary>version() returns the library version, not server version</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="mjackson">Michael Jackson</assignee>
                                <reporter username="mnunberg">Mark Nunberg</reporter>
                        <labels>
                    </labels>
                <created>Sun, 2 Sep 2012 23:16:10 -0500</created>
                <updated>Tue, 18 Sep 2012 10:52:13 -0500</updated>
                    <resolved>Mon, 17 Sep 2012 17:18:18 -0500</resolved>
                            <version>1.1.0-dp2</version>
                                <fixVersion>1.0.6</fixVersion>
                <fixVersion>1.1.0-dp4</fixVersion>
                <fixVersion>1.1.0</fixVersion>
                                <component>docs</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="38922" author="mjackson" created="Fri, 14 Sep 2012 13:22:43 -0500"  >Fix in &lt;a href=&quot;http://review.couchbase.org/#/c/20862/&quot;&gt;http://review.couchbase.org/#/c/20862/&lt;/a&gt;</comment>
                    <comment id="38923" author="mjackson" created="Fri, 14 Sep 2012 13:23:09 -0500"  >(Note: the above is for 1.0.x, a port to 1.1 is forthcoming.)</comment>
                    <comment id="39212" author="mjackson" created="Mon, 17 Sep 2012 17:17:39 -0500"  >1.1 branch fix in &lt;a href=&quot;http://review.couchbase.org/#/c/20875/&quot;&gt;http://review.couchbase.org/#/c/20875/&lt;/a&gt;</comment>
                    <comment id="39213" author="mjackson" created="Mon, 17 Sep 2012 17:18:18 -0500"  >Change merged into 1.0.x and 1.1 branches.</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9826</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-104] PHP Client Need to Catch and Process &quot;Object Too Large&quot;errors from libcouchbase</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-104</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>Problem Summary:&lt;br/&gt;
&lt;br/&gt;
When writing more than 1MB of data using php libcouch client, the client itself does not process the object too large error and the libcouchbase library logs a PHP warning  as &amp;quot;PHP Warning:  Couchbase::set(): Failed to store a value to server: Object too big in.....&amp;quot;. &lt;br/&gt;
&lt;br/&gt;
As result, it&amp;#39;s impossible to write a strict warning free high performance php app using the current setup when we can&amp;#39;t control what data is attempted to be cached. &lt;br/&gt;
&lt;br/&gt;
1) We cannot catch this error before passing data in since more &amp;gt;1MB data might be compressible to less than &amp;lt;1MB so we have to rely on the PHP Client to do this for us.&lt;br/&gt;
2) We cannot catch this on the client site since it&amp;#39;s not an exception but a PHP error/warning. &lt;br/&gt;
3) We can use set_error_handler() in php to catch this but it is extremely slow and negates the performance advantage of having libcouchbase in the first place.&lt;br/&gt;
&lt;br/&gt;
Recommendation:&lt;br/&gt;
&lt;br/&gt;
1) Return FALSE from PHP Client if post-compressed data is more than 1MB. &lt;br/&gt;
&lt;br/&gt;
/* INSERT  CODE test for payload_len size here before calling line below, if more, than return FALSE */&lt;br/&gt;
&lt;br/&gt;
if (!(payload = php_couchbase_zval_to_payload(value, &amp;amp;payload_len, &amp;amp;flags, couchbase_res-&amp;gt;serializer, couchbase_res-&amp;gt;compressor TSRMLS_CC))) {&lt;br/&gt;
			RETURN_FALSE;&lt;br/&gt;
		}&lt;br/&gt;
&lt;br/&gt;
Notes: pecl-memcached using libmemcached lib does not throw PHP warnings when object size is over limit. Error is logged internally and is up to the programmer to read the error post-fail to determine what happened. &lt;br/&gt;
</description>
                <environment>PHP client DP3</environment>
            <key id="19351">PCBC-104</key>
            <summary>PHP Client Need to Catch and Process &quot;Object Too Large&quot;errors from libcouchbase</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="trond">Trond Norbye</assignee>
                                <reporter username="xing">xing</reporter>
                        <labels>
                    </labels>
                <created>Sat, 25 Aug 2012 01:54:04 -0500</created>
                <updated>Tue, 4 Dec 2012 19:01:17 -0600</updated>
                    <resolved>Mon, 3 Dec 2012 16:50:17 -0600</resolved>
                                            <fixVersion>1.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="36887" author="xing" created="Sat, 25 Aug 2012 01:58:56 -0500"  >1) Typos. The test code should happen after, not before,  the zval_to_payload conversion which is when we know exactly is data is over limit. &lt;br/&gt;
&lt;br/&gt;
2) Since libcouchbase supports I believe 10MB for disk based buckets, my report only deals with ram buckets. Perhaps there is a test somewhere for bucket type before size compare. </comment>
                    <comment id="36890" author="daschl" created="Sat, 25 Aug 2012 02:56:33 -0500"  >Hi xing,&lt;br/&gt;
&lt;br/&gt;
thanks for taking the time to open an issue!&lt;br/&gt;
&lt;br/&gt;
Just to recap - you are using the following setup:&lt;br/&gt;
&lt;br/&gt;
- PHP SDK 1.1-dp3&lt;br/&gt;
- Couchbase 2.0-dp4 (am I right?)&lt;br/&gt;
&lt;br/&gt;
Are you using a couchbase bucket or a memcached bucket? The couchbase bucket is definitely capable of handling files larger than 1MB.&lt;br/&gt;
&lt;br/&gt;
There is some restructuring going on regarding the warning/exception handling in the PHP SDK, but let&amp;#39;s first sort out your particular issue here.&lt;br/&gt;
&lt;br/&gt;
Thanks, Michael</comment>
                    <comment id="43496" author="ingenthr" created="Wed, 7 Nov 2012 15:26:07 -0600"  >Trond: assigning to you to determine if still an issue and triage.</comment>
                    <comment id="45284" author="trond" created="Mon, 3 Dec 2012 16:50:17 -0600"  >This is no longer a problem. You can either catch the exception thrown by the object oriented interface, or you can call couchbase_get_result_code() and it&amp;#39;ll contain e2big</comment>
                    <comment id="45417" author="kzeller" created="Tue, 4 Dec 2012 19:01:17 -0600"  >				PHP Client now catches and processes &amp;#39;object too larger&amp;#39; errors &lt;br/&gt;
		Added to RN		coming from underlying C library.</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9830</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-100] timeouts need to be tunable and consistent with other SDKs</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-100</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>Provides the consistent level of time outs with other SDKs. Provide ability to set timeouts at: 1) connection, 2) authentication, and 3) ops level.</description>
                <environment></environment>
            <key id="19327">PCBC-100</key>
            <summary>timeouts need to be tunable and consistent with other SDKs</summary>
                <type id="4" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="1" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/blocker.png">Blocker</priority>
                    <status id="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="ingenthr">Matt Ingenthron</assignee>
                                <reporter username="kzeller">Karen Zeller</reporter>
                        <labels>
                    </labels>
                <created>Fri, 24 Aug 2012 16:35:32 -0500</created>
                <updated>Mon, 26 Nov 2012 16:04:54 -0600</updated>
                    <resolved>Mon, 26 Nov 2012 16:04:54 -0600</resolved>
                                            <fixVersion>1.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="43870" author="trond" created="Tue, 13 Nov 2012 03:12:02 -0600"  >&lt;a href=&quot;http://review.couchbase.org/#/c/22474&quot;&gt;http://review.couchbase.org/#/c/22474&lt;/a&gt;</comment>
                    <comment id="43877" author="trond" created="Tue, 13 Nov 2012 04:17:30 -0600"  >The php is built on top of libcouchbase which don&amp;#39;t expose multiple timeouts. From an operational point of view one may also question why one would want a different set of timeouts. Most applications want to have a predictable latency for the various operations, and given the distributed nature of couchbase we never know when we&amp;#39;re going to connect to a new host (or do an auth).. </comment>
                    <comment id="43878" author="trond" created="Tue, 13 Nov 2012 04:26:00 -0600"  >The timeout values are specified in usec (just like the C library)</comment>
                    <comment id="44071" author="ingenthr" created="Thu, 15 Nov 2012 08:25:32 -0600"  >Sorry for reopening, but I have two points:&lt;br/&gt;
&lt;br/&gt;
1) how does someone change the timeout in libcouchbase through PHP?  This is about making it reconfigurable.  Maybe it is, but I don&amp;#39;t know that we have that documented and I&amp;#39;ve not seen it.&lt;br/&gt;
2) The HTTP timeout for views should be 75 sec, since they can take 10s of seconds to service.  Regular memcached/CRUD requests should continue with the 2.5sec timeout.  Is the PHP client doing this already?</comment>
                    <comment id="44102" author="kzeller" created="Thu, 15 Nov 2012 11:31:13 -0600"  >My understanding is that at the C library level, there is a single timeout of 2.5 seconds. That is what I documented for PHP and C at this point for all types of server interactions (connect, CRUD, etc.)</comment>
                    <comment id="44283" author="trond" created="Mon, 19 Nov 2012 01:44:44 -0600"  >For 1:&lt;br/&gt;
&lt;br/&gt;
In the object oriented interface you can use:&lt;br/&gt;
$cb-&amp;gt;getTimeout()&lt;br/&gt;
$cb-&amp;gt;setTimeout(value);&lt;br/&gt;
&lt;br/&gt;
in the non-oo you would use:&lt;br/&gt;
couchbase_get_timeout($cb);&lt;br/&gt;
couchbase_set_timeout($cb, value)&lt;br/&gt;
&lt;br/&gt;
2) libcouchbase don&amp;#39;t have separate timers... if we would like different default timeouts for views we would have to add support for that...</comment>
                    <comment id="44802" author="ingenthr" created="Mon, 26 Nov 2012 16:04:54 -0600"  >The view timeout is tracked in &lt;a href=&quot;http://www.couchbase.com/issues/browse/PCBC-150&quot; title=&quot;make default view timeout 75s&quot;&gt;&lt;strike&gt;PCBC-150&lt;/strike&gt;&lt;/a&gt;, so this is closeable.  See that issue for view timeout related changes on PCBC.&lt;br/&gt;
&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>9832</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-99] Provide Error Handling Consistent with Other SDKs</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-99</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>Need to provides consistent error messages and error handling. Needs to be more consistent with other SDKS, and underlying memcached protocol</description>
                <environment></environment>
            <key id="19326">PCBC-99</key>
            <summary>Provide Error Handling Consistent with Other SDKs</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="ingenthr">Matt Ingenthron</assignee>
                                <reporter username="kzeller">Karen Zeller</reporter>
                        <labels>
                    </labels>
                <created>Fri, 24 Aug 2012 16:34:01 -0500</created>
                <updated>Tue, 11 Dec 2012 16:20:20 -0600</updated>
                    <resolved>Tue, 11 Dec 2012 16:20:20 -0600</resolved>
                                            <fixVersion>1.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="45834" author="ingenthr" created="Tue, 11 Dec 2012 16:20:20 -0600"  >Given this is much, much better, going to close this item.  Need more specifics for future &amp;quot;consistent&amp;quot;.</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9833</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-95] new() function docs is missing the $bucket parameter:</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-95</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>These docs are incorrect:  &lt;a href=&quot;http://www.couchbase.com/docs/couchbase-sdk-php-1.0/api-reference-summary.html&quot;&gt;http://www.couchbase.com/docs/couchbase-sdk-php-1.0/api-reference-summary.html&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
It says: &amp;quot;$object-&amp;gt;new Couchbase($url, $username, $password [, $persistent ])&amp;quot;&lt;br/&gt;
&lt;br/&gt;
It should say</description>
                <environment>Couchbase lib 1.0.4</environment>
            <key id="18958">PCBC-95</key>
            <summary>new() function docs is missing the $bucket parameter:</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="6" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/closed.png">Closed</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="kzeller">Karen Zeller</assignee>
                                <reporter username="TimSmith">Tim Smith</reporter>
                        <labels>
                    </labels>
                <created>Fri, 10 Aug 2012 15:21:40 -0500</created>
                <updated>Tue, 11 Dec 2012 19:59:32 -0600</updated>
                    <resolved>Thu, 15 Nov 2012 13:09:35 -0600</resolved>
                                            <fixVersion>1.1.0</fixVersion>
                                <component>docs</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="35144" author="TimSmith" created="Fri, 10 Aug 2012 15:22:49 -0500"  >Sorry, it got submitted accidentally. It should say:&lt;br/&gt;
&lt;br/&gt;
$object-&amp;gt;new Couchbase($url [ , $username, $password, $bucket, $persistent ])&lt;br/&gt;
&lt;br/&gt;
That is, all the parameters are optional after $url. And the $bucket parameter is missing in the current docs.&lt;br/&gt;
&lt;br/&gt;
</comment>
                    <comment id="44118" author="kzeller" created="Thu, 15 Nov 2012 13:09:35 -0600"  >So I think this is the fix that should be applied to both 1.0 and 1.1:&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;derivative lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;dcall call=&amp;quot;new Couchbase&amp;quot; id=&amp;quot;new_couchbase&amp;quot;&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;args&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;argument inherit=&amp;quot;url&amp;quot;/&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;	&amp;lt;argument inherit=&amp;quot;username&amp;quot; optional=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;	&amp;lt;argument inherit=&amp;quot;password&amp;quot; optional=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;	&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;	&amp;lt;argument inherit=&amp;quot;bucket&amp;quot; optional=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;argument inherit=&amp;quot;persistent&amp;quot; optional=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/args&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/dcall&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/derivative&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
So here is the added bucket option and the three parameters are now optional.</comment>
                    <comment id="44119" author="kzeller" created="Thu, 15 Nov 2012 13:09:41 -0600"  >I think this is the fix for both 1.0 and 1.1:&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;derivative lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;dcall call=&amp;quot;new Couchbase&amp;quot; id=&amp;quot;new_couchbase&amp;quot;&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;args&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;argument inherit=&amp;quot;url&amp;quot;/&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;	&amp;lt;argument inherit=&amp;quot;username&amp;quot; optional=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;	&amp;lt;argument inherit=&amp;quot;password&amp;quot; optional=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;	&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;	&amp;lt;argument inherit=&amp;quot;bucket&amp;quot; optional=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;argument inherit=&amp;quot;persistent&amp;quot; optional=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/args&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/dcall&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/derivative&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
So here is the added bucket option and the three parameters are now optional.</comment>
                </comments>
                <issuelinks>
                        <issuelinktype id="10001">
                <name>Duplicate</name>
                                                <inwardlinks description="is duplicated by">
                            <issuelink>
            <issuekey id="18957">PCBC-94</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>9835</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-92] Completely document constants and result codes.</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-92</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>There is no documentation in the PHP Couchbase Client for the constants used as options (e.g., COUCHBASE_OPT_COMPRESSOR, Couchbase::GET_PRESERVE_ORDER) and result codes (e.g., COUCHBASE_KEY_EEXISTS). This documentation is critical for usability of the library.&lt;br/&gt;
&lt;br/&gt;
Also, it would be very nice to have IDE support for these things, via a PHP file that could require_once() into the app so the IDE will find these symbols, shipped as part of the package.</description>
                <environment>PHP 1.1 branch</environment>
            <key id="18741">PCBC-92</key>
            <summary>Completely document constants and result codes.</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="mccouch">MC Brown</assignee>
                                <reporter username="TimSmith">Tim Smith</reporter>
                        <labels>
                    </labels>
                <created>Tue, 31 Jul 2012 15:56:52 -0500</created>
                <updated>Thu, 6 Dec 2012 18:37:22 -0600</updated>
                    <resolved>Mon, 3 Dec 2012 11:22:11 -0600</resolved>
                                            <fixVersion>1.1.0</fixVersion>
                                <component>docs</component>
                <component>library</component>
                                <votes>0</votes>
                        <watches>1</watches>
                          <timeoriginalestimate seconds="86400">24h</timeoriginalestimate>
                    <timeestimate seconds="86400">24h</timeestimate>
                                  <comments>
                    <comment id="37890" author="mnunberg" created="Thu, 6 Sep 2012 17:39:17 -0500"  >I might give a hack at this (I personally think this is very important..).. can someone show me an example of a PHP/C extension which does this?</comment>
                    <comment id="37898" author="kzeller" created="Thu, 6 Sep 2012 18:00:05 -0500"  >Not that I am aware of (at the source/comment, wiki, or email-level of info.) Let me know if you find out.</comment>
                    <comment id="43500" author="ingenthr" created="Wed, 7 Nov 2012 15:26:07 -0600"  >Trond: assigning to you to determine if still an issue and triage.</comment>
                    <comment id="43557" author="trond" created="Thu, 8 Nov 2012 07:17:22 -0600"  >Pierre pointed me to an example at line 1552 in &lt;a href=&quot;http://svn.php.net/viewvc/pecl/zip/trunk/php_zip.c?revision=326243&amp;view=markup&quot;&gt;http://svn.php.net/viewvc/pecl/zip/trunk/php_zip.c?revision=326243&amp;amp;view=markup&lt;/a&gt;</comment>
                    <comment id="44025" author="TimSmith" created="Wed, 14 Nov 2012 16:19:40 -0600"  >The most important part of this bug report is getting something in our documentation that spells out all the configuration options that exist in our Couchbase client, what range of values they accept, what they mean, etc.&lt;br/&gt;
&lt;br/&gt;
To the extent that all our clients have analogous settings, these can be put into a common section in the developers&amp;#39; guide docs.&lt;br/&gt;
&lt;br/&gt;
To the extent that they&amp;#39;re specific to a particular SDK (PHP, in this case), they should be in that SDK&amp;#39;s docs.&lt;br/&gt;
&lt;br/&gt;
For example, the getOption and setOption methods are mentioned here, but no info or link to what values to specify:&lt;br/&gt;
&lt;br/&gt;
&lt;a href=&quot;http://www.couchbase.com/docs/couchbase-sdk-php-1.0/api-reference-connection.html&quot;&gt;http://www.couchbase.com/docs/couchbase-sdk-php-1.0/api-reference-connection.html&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
A secondary and nice-to-have bit is the IDE integration. The original user requested a single source file that lists the symbols that could be required into the PHP code, so the IDE would be able to find all those symbols and do autocompletion. Perhaps Trond has tracked down a solid way to do this.&lt;br/&gt;
&lt;br/&gt;
Tim&lt;br/&gt;
</comment>
                    <comment id="44808" author="ingenthr" created="Mon, 26 Nov 2012 16:45:34 -0600"  >Trond and I discussed this one just now. &lt;br/&gt;
&lt;br/&gt;
Action required here is to decide what needs to be done.  If there are undocumented options in the creating a connection reference, then we should file bugs appropriately (to Karen, who is helping with PHP docs at the moment).  Other than that, Trond will research the best way to expose the constants and result codes.&lt;br/&gt;
&lt;br/&gt;
Tim: if there are other specific doc issues you spot, please file them appropriately so they don&amp;#39;t get lost.  This project does have a documentation component.</comment>
                    <comment id="44919" author="trond" created="Wed, 28 Nov 2012 04:23:40 -0600"  >I talked to dsop and pierre on IRC and they told me that php stopped generating the documentation off the php sources, and use docbook instead. there are some tools that use reflection on the module to generate a skeleton. I think it is beyond the scope of a bug report to implement a full doocbook documentation for our plugin (that should be treated as a new task), so I&amp;#39;ll just write up a small API documentation describing all of our methods with the parameter list and the return value (and all tunables) and hand that off to Karen?</comment>
                    <comment id="44933" author="TimSmith" created="Wed, 28 Nov 2012 10:53:14 -0600"  >Trond,&lt;br/&gt;
&lt;br/&gt;
Yes, the *values* that those parameters can take, and what they mean, are the most opaque parts of the API right now. If you can do a quick write-up and give to Karen, that&amp;#39;s perfect.&lt;br/&gt;
&lt;br/&gt;
The other request was to just have some dummy php file that can be included in a source project that won&amp;#39;t do anything useful but will define every symbol, to enable an IDE to auto-complete stuff. It&amp;#39;s a minor thing compared to getting the docs to Karen, so I&amp;#39;d say just ignore that request and focus on getting info to the docs team.&lt;br/&gt;
&lt;br/&gt;
Thanks!&lt;br/&gt;
&lt;br/&gt;
Tim</comment>
                    <comment id="45212" author="trond" created="Mon, 3 Dec 2012 06:49:24 -0600"  >Tim: is this what you need?</comment>
                    <comment id="45213" author="trond" created="Mon, 3 Dec 2012 06:51:31 -0600"  >I guess there isn&amp;#39;t much more I can do on this issue now?</comment>
                    <comment id="45215" author="ingenthr" created="Mon, 3 Dec 2012 09:39:19 -0600"  >I think MC is actually taking this on.  Assigning it his way.</comment>
                    <comment id="45228" author="mccouch" created="Mon, 3 Dec 2012 11:21:58 -0600"  >I&amp;#39;ve added the option and result codes to the PHP material: &lt;br/&gt;
&lt;br/&gt;
&lt;a href=&quot;http://www.couchbase.com/docs/couchbase-sdk-php-1.1/api-reference-summary-options.html&quot;&gt;http://www.couchbase.com/docs/couchbase-sdk-php-1.1/api-reference-summary-options.html&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;http://www.couchbase.com/docs/couchbase-sdk-php-1.1/api-reference-summary-errors.html&quot;&gt;http://www.couchbase.com/docs/couchbase-sdk-php-1.1/api-reference-summary-errors.html&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
</comment>
                    <comment id="45230" author="ingenthr" created="Mon, 3 Dec 2012 11:47:59 -0600"  >Apologies MC, a bit more has happened here.  I&amp;#39;ll leave it to you, but I think this needs to be reopened with a changed description, or another issue opened.&lt;br/&gt;
&lt;br/&gt;
In addressing this issue, Trond went beyond the constants and documented the whole API.  I think the attached PDF is more of a base for the API reference.  For example, the new class CouchbaseClusterManager is covered.&lt;br/&gt;
&lt;br/&gt;
Should we open a new issue related to the API reference?</comment>
                    <comment id="45240" author="mccouch" created="Mon, 3 Dec 2012 12:31:36 -0600"  >No, it&amp;#39;s fine. &lt;br/&gt;
&lt;br/&gt;
I&amp;#39;ve been using the material Trond has written to mark up this, but we already have another (&lt;a href=&quot;http://www.couchbase.com/issues/browse/PCBC-105&quot;&gt;http://www.couchbase.com/issues/browse/PCBC-105&lt;/a&gt;) which covers the wider API. &lt;br/&gt;
&lt;br/&gt;
I just wanted to close this one based on the core of the request; I&amp;#39;ll continue to fill out the rest using the material from Trond this week. </comment>
                    <comment id="45622" author="ingenthr" created="Thu, 6 Dec 2012 18:37:22 -0600"  >Updated the summary to reflect what was actually done.&lt;br/&gt;
&lt;br/&gt;
Note that in the process of fixing this, the previous method of documenting functions (which some IDEs have support for) is no longer supported by the PHP project.  All API will be documented at couchbase.com/docs in the API reference for PHP.&lt;br/&gt;
&lt;br/&gt;
We&amp;#39;re open to other directions on how to work well with IDEs.  I&amp;#39;m just repeating what we&amp;#39;ve heard from PHP core contributors.</comment>
                </comments>
                    <attachments>
                    <attachment id="15944" name="CouchbasePHPAPIdocumentation.pdf" size="201729" author="trond" created="Mon, 3 Dec 2012 06:49:24 -0600" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9837</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-89] Update the getting started to match the Beer sample DB </title>
                <link>http://www.couchbase.com/issues/browse/PCBC-89</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</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="18356">PCBC-89</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="kzeller">Karen Zeller</assignee>
                                <reporter username="ingenthr">Matt Ingenthron</reporter>
                        <labels>
                    </labels>
                <created>Thu, 12 Jul 2012 00:42:17 -0500</created>
                <updated>Tue, 11 Dec 2012 20:06:57 -0600</updated>
                    <resolved>Tue, 11 Dec 2012 20:06:57 -0600</resolved>
                                            <fixVersion>1.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="45572" author="ingenthr" created="Thu, 6 Dec 2012 10:07:39 -0600"  >Assigning this back to Karen.&lt;br/&gt;
&lt;br/&gt;
Just talked with Trond and he&amp;#39;d mistakenly assigned it to himself as he&amp;#39;d had it confused with the tutorial.  Just for clarification, Karen&amp;#39;s working on the &amp;#39;getting started guide&amp;#39; and Trond is working on the &amp;#39;tutorial&amp;#39;.</comment>
                    <comment id="45845" author="ingenthr" created="Tue, 11 Dec 2012 20:06:57 -0600"  >Reviewed and done!</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9840</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-88] Add a unit/integration test validation of OBSERVE + view stale=false </title>
                <link>http://www.couchbase.com/issues/browse/PCBC-88</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>Ensure that when a synchronous set is used with the new low-level observe, the index is fully updated when querying with view=false.&lt;br/&gt;
</description>
                <environment></environment>
            <key id="18355">PCBC-88</key>
            <summary>Add a unit/integration test validation of OBSERVE + view stale=false </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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="trond">Trond Norbye</assignee>
                                <reporter username="ingenthr">Matt Ingenthron</reporter>
                        <labels>
                    </labels>
                <created>Thu, 12 Jul 2012 00:41:55 -0500</created>
                <updated>Tue, 11 Dec 2012 19:55:29 -0600</updated>
                    <resolved>Mon, 12 Nov 2012 15:44:26 -0600</resolved>
                                            <fixVersion>1.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="43836" author="mnunberg" created="Mon, 12 Nov 2012 15:44:26 -0600"  >Effectively done in ViewSimple.inc</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9841</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-87] View error options at query time </title>
                <link>http://www.couchbase.com/issues/browse/PCBC-87</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>At view query time, we need to ensure the developer has the ability to add an &amp;quot;on_error&amp;quot; parameter with values of either &amp;quot;stop&amp;quot; or &amp;quot;continue&amp;quot;.&lt;br/&gt;
</description>
                <environment></environment>
            <key id="18354">PCBC-87</key>
            <summary>View error options at query time </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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="trond">Trond Norbye</assignee>
                                <reporter username="ingenthr">Matt Ingenthron</reporter>
                        <labels>
                    </labels>
                <created>Thu, 12 Jul 2012 00:41:31 -0500</created>
                <updated>Tue, 11 Dec 2012 19:55:28 -0600</updated>
                    <resolved>Fri, 23 Nov 2012 20:21:51 -0600</resolved>
                                            <fixVersion>1.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="38478" author="mnunberg" created="Tue, 11 Sep 2012 11:12:01 -0500"  >There is a suggested API for this in &lt;a href=&quot;http://www.couchbase.com/issues/browse/PCBC-110&quot; title=&quot;View parameters are broken&quot;&gt;&lt;strike&gt;PCBC-110&lt;/strike&gt;&lt;/a&gt; (in the php attachment)</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9842</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-86] Bucket management </title>
                <link>http://www.couchbase.com/issues/browse/PCBC-86</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>Add the necessary features to create and remove buckets. Also, add the ability to call the RESTful bucket flush.&lt;br/&gt;
</description>
                <environment></environment>
            <key id="18353">PCBC-86</key>
            <summary>Bucket management </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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="trond">Trond Norbye</assignee>
                                <reporter username="ingenthr">Matt Ingenthron</reporter>
                        <labels>
                    </labels>
                <created>Thu, 12 Jul 2012 00:40:44 -0500</created>
                <updated>Tue, 11 Dec 2012 19:55:29 -0600</updated>
                    <resolved>Mon, 3 Dec 2012 06:46:38 -0600</resolved>
                                            <fixVersion>1.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="43547" author="trond" created="Thu, 8 Nov 2012 06:07:02 -0600"  >&lt;a href=&quot;http://review.couchbase.org/#/c/22014/&quot;&gt;http://review.couchbase.org/#/c/22014/&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>9843</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-83] Highlevel synchronous mutation operations atop observe </title>
                <link>http://www.couchbase.com/issues/browse/PCBC-83</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>After &lt;a href=&quot;http://www.couchbase.com/issues/browse/PCBC-81&quot; title=&quot;User reports expiration is not working properly&quot;&gt;&lt;strike&gt;PCBC-81&lt;/strike&gt;&lt;/a&gt; is implemented, the idea here is to implement synchronous mutation and deletion operations.  They would, for example take the key/cas returned from the set and then poll in a loop until the desired state in the observe is reached.&lt;br/&gt;
&lt;br/&gt;
There are additional examples here:&lt;br/&gt;
&lt;a href=&quot;http://www.couchbase.com/wiki/display/couchbase/Observe&quot;&gt;http://www.couchbase.com/wiki/display/couchbase/Observe&lt;/a&gt;</description>
                <environment></environment>
            <key id="18350">PCBC-83</key>
            <summary>Highlevel synchronous mutation operations atop observe </summary>
                <type id="4" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/improvement.png">Improvement</type>
                                <priority id="1" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/blocker.png">Blocker</priority>
                    <status id="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="trond">Trond Norbye</assignee>
                                <reporter username="ingenthr">Matt Ingenthron</reporter>
                        <labels>
                    </labels>
                <created>Thu, 12 Jul 2012 00:39:30 -0500</created>
                <updated>Tue, 11 Dec 2012 19:55:29 -0600</updated>
                    <resolved>Mon, 3 Dec 2012 14:02:12 -0600</resolved>
                                            <fixVersion>1.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="41998" author="mjackson" created="Fri, 19 Oct 2012 18:11:30 -0500"  >WIP under review &lt;a href=&quot;http://review.couchbase.org/#/c/21677&quot;&gt;http://review.couchbase.org/#/c/21677&lt;/a&gt; (this changeset includes both 82 and 83 changes are they are closely related)</comment>
                    <comment id="44725" author="trond" created="Mon, 26 Nov 2012 10:17:29 -0600"  >&lt;a href=&quot;http://review.couchbase.org/#/c/22712&quot;&gt;http://review.couchbase.org/#/c/22712&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>9845</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-79] Tarball releases for PHP clients</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-79</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>It would be nice to have released tarballs to point for people having troubles with binary builds</description>
                <environment></environment>
            <key id="18091">PCBC-79</key>
            <summary>Tarball releases for PHP clients</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="ingenthr">Matt Ingenthron</assignee>
                                <reporter username="avsej">Sergey Avseyev</reporter>
                        <labels>
                    </labels>
                <created>Thu, 28 Jun 2012 17:03:09 -0500</created>
                <updated>Tue, 13 Nov 2012 15:08:00 -0600</updated>
                    <resolved>Tue, 13 Nov 2012 15:08:00 -0600</resolved>
                                            <fixVersion>1.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>1</watches>
                                                    <comments>
                    <comment id="43495" author="ingenthr" created="Wed, 7 Nov 2012 15:26:07 -0600"  >Trond: assigning to you to determine if still an issue and triage.</comment>
                    <comment id="43553" author="trond" created="Thu, 8 Nov 2012 06:55:17 -0600"  >This is a manual step we need to do as part of the release process (to upload the tarball).. Unfortunately we don&amp;#39;t have a gmake dist target here, so it would just be to gtar cfz up the directory (without the .git* stuff)... </comment>
                    <comment id="43555" author="trond" created="Thu, 8 Nov 2012 07:03:29 -0600"  >I guess the bug should be assigned to our RE team?</comment>
                    <comment id="43850" author="ingenthr" created="Mon, 12 Nov 2012 16:54:08 -0600"  >We don&amp;#39;t have a RE team, so we&amp;#39;re it for now.</comment>
                    <comment id="43925" author="avsej" created="Tue, 13 Nov 2012 15:08:00 -0600"  >&lt;a href=&quot;http://sdkbuilds.couchbase.com/job/sdk-repo/&quot;&gt;http://sdkbuilds.couchbase.com/job/sdk-repo/&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
artifacts are building by this job</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9849</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-73] get() method signature less optimal than it could be</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-73</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>It&amp;#39;d be great to move the $cas_token parameter to the second place as $cas_token is more likely to be used with get() than $callback. At least it would seem that way given the existence of two callback-focused/requiring functions: getDelayed and getDelayedByKey.&lt;br/&gt;
&lt;br/&gt;
Due to this already being in use, it may need some type detection so that the two parameters technically become interchangeable within the signature, but we throw a deprecation warning (starting with 1.1) that states that $cas_token should come second going forward.&lt;br/&gt;
&lt;br/&gt;
Additionally in 1.0.3, the callback for get() does not seem to be called--erroneous variable name output doesn&amp;#39;t throw any errors, and basic echo&amp;#39;s don&amp;#39;t ever &amp;quot;surface&amp;quot; into the buffer.&lt;br/&gt;
&lt;br/&gt;
Thanks.</description>
                <environment></environment>
            <key id="17794">PCBC-73</key>
            <summary>get() method signature less optimal than it could be</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="trond">Trond Norbye</assignee>
                                <reporter username="BigBlueHat">Benjamin Young</reporter>
                        <labels>
                    </labels>
                <created>Wed, 13 Jun 2012 21:15:22 -0500</created>
                <updated>Wed, 5 Dec 2012 14:34:23 -0600</updated>
                    <resolved>Wed, 5 Dec 2012 14:34:23 -0600</resolved>
                            <version>1.0.3</version>
                                <fixVersion>1.1.0</fixVersion>
                                <component>library</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="43498" author="ingenthr" created="Wed, 7 Nov 2012 15:26:07 -0600"  >Trond: assigning to you to determine if still an issue and triage.</comment>
                </comments>
                    <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>9854</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-72] getDelayed seems to return a Boolean not a &quot;string (Binary object)&quot; as the docs state</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-72</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>I&amp;#39;m not sure if this is a doc error or a code error, but the documentation for getDelayed [1] states it returns a &amp;quot;string (Binary object)&amp;quot; when in fact it returns a Boolean.&lt;br/&gt;
&lt;br/&gt;
The return of a Boolean is likely the intended response as getDelayed implies the use of a callback.&lt;br/&gt;
&lt;br/&gt;
I&amp;#39;ve marked this issue as being related to both docs &amp;amp; library, though, in case I&amp;#39;ve missed something.&lt;br/&gt;
&lt;br/&gt;
[1] &lt;a href=&quot;http://www.couchbase.com/docs/couchbase-sdk-php-1.0/api-reference-retrieve.html#table-couchbase-sdk_php_get-delayed&quot;&gt;http://www.couchbase.com/docs/couchbase-sdk-php-1.0/api-reference-retrieve.html#table-couchbase-sdk_php_get-delayed&lt;/a&gt;</description>
                <environment></environment>
            <key id="17793">PCBC-72</key>
            <summary>getDelayed seems to return a Boolean not a &quot;string (Binary object)&quot; as the docs state</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="6" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/closed.png">Closed</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="kzeller">Karen Zeller</assignee>
                                <reporter username="BigBlueHat">Benjamin Young</reporter>
                        <labels>
                    </labels>
                <created>Wed, 13 Jun 2012 21:11:30 -0500</created>
                <updated>Tue, 11 Dec 2012 19:59:32 -0600</updated>
                    <resolved>Tue, 27 Nov 2012 14:34:04 -0600</resolved>
                            <version>1.0.3</version>
                                <fixVersion>1.0.5</fixVersion>
                <fixVersion>1.1.0</fixVersion>
                                <component>docs</component>
                <component>library</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="43494" author="ingenthr" created="Wed, 7 Nov 2012 15:22:24 -0600"  >Mark: Please determine if this issue is still valid and help me triage it into the appropriate release.  I&amp;#39;ve assigned it to you for triage, not necessarily to fix it.</comment>
                    <comment id="43842" author="ingenthr" created="Mon, 12 Nov 2012 16:23:14 -0600"  >Trond: Since this may be just a matter of getting correct documentation, I&amp;#39;ve bumped the priority so we try to triage it and decide where it belongs.  Please allocate just a few minutes to it when you can.&lt;br/&gt;
&lt;br/&gt;
If it&amp;#39;s a documentation fix that&amp;#39;s needed, let&amp;#39;s pass it along to Karen.&lt;br/&gt;
&lt;br/&gt;
If you&amp;#39;re unsure what was originally intended, it may make sense to look at pecl-memcached.</comment>
                    <comment id="44836" author="trond" created="Tue, 27 Nov 2012 05:24:37 -0600"  >According to the code (and the documentation for pecl::memcached:getDelayed) it should return a boolean value.</comment>
                    <comment id="44870" author="kzeller" created="Tue, 27 Nov 2012 14:34:04 -0600"  >I think this fixes it:&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;dcall id=&amp;quot;get-delayed&amp;quot; call=&amp;quot;getDelayed&amp;quot; inherit=&amp;quot;none&amp;quot;&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;m_title&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Get a key to be fetched later&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/m_title&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;args&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;argument inherit=&amp;quot;keyn&amp;quot;/&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;argument inherit=&amp;quot;with_cas&amp;quot; optional=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;argument inherit=&amp;quot;callback&amp;quot; optional=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/args&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;	&amp;lt;return inherit=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/dcall&amp;gt;</comment>
                    <comment id="44871" author="kzeller" created="Tue, 27 Nov 2012 14:34:11 -0600"  >&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;dcall id=&amp;quot;get-delayed&amp;quot; call=&amp;quot;getDelayed&amp;quot; inherit=&amp;quot;none&amp;quot;&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;m_title&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Get a key to be fetched later&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/m_title&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;args&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;argument inherit=&amp;quot;keyn&amp;quot;/&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;argument inherit=&amp;quot;with_cas&amp;quot; optional=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;argument inherit=&amp;quot;callback&amp;quot; optional=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/args&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;	&amp;lt;return inherit=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/dcall&amp;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>9855</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-57] support errors on views</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-57</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>Views now have some options on capturing errors and stopping on errors as documented here:&lt;br/&gt;
&lt;a href=&quot;http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-writing-errors.html&quot;&gt;http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-writing-errors.html&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
The client needs to support these.</description>
                <environment></environment>
            <key id="16379">PCBC-57</key>
            <summary>support errors on views</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="mnunberg">Mark Nunberg</assignee>
                                <reporter username="ingenthr">Matt Ingenthron</reporter>
                        <labels>
                    </labels>
                <created>Thu, 22 Mar 2012 23:54:20 -0500</created>
                <updated>Tue, 11 Dec 2012 19:55:29 -0600</updated>
                    <resolved>Fri, 23 Nov 2012 20:13:41 -0600</resolved>
                                            <fixVersion>1.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="43491" author="ingenthr" created="Wed, 7 Nov 2012 15:22:23 -0600"  >Mark: Please determine if this issue is still valid and help me triage it into the appropriate release.  I&amp;#39;ve assigned it to you for triage, not necessarily to fix it.</comment>
                    <comment id="44501" author="mnunberg" created="Tue, 20 Nov 2012 20:47:50 -0600"  >We sort of have support for this. Not sure what the correct behavior should be for various view errors .. (and there is one test failing because of this...)</comment>
                    <comment id="44502" author="mnunberg" created="Tue, 20 Nov 2012 20:49:32 -0600"  >Assign to someone who can figure out what we should do here :)&lt;br/&gt;
&lt;br/&gt;
Basically, we don&amp;#39;t know if we should raise an exception (technically requesting a non-existent view is a Bad Thing, almost like a malformed SQL query, but not quite), or just return it within the JSON..</comment>
                    <comment id="44515" author="ingenthr" created="Wed, 21 Nov 2012 00:43:18 -0600"  >Well, the question is whether or not we can specify the on_error.  If we can, then this is closeable.</comment>
                    <comment id="44701" author="mnunberg" created="Fri, 23 Nov 2012 20:13:41 -0600"  >Fixed in commit cb41beb0e20be348436e5171b3bb2ba730c3063c&lt;br/&gt;
Author: Mark Nunberg &amp;lt;&lt;a href=&apos;mailto:mnunberg@haskalah.org&apos;&gt;mnunberg@haskalah.org&lt;/a&gt;&amp;gt;&lt;br/&gt;
Date:   Sat Nov 17 09:45:17 2012 -0800&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://www.couchbase.com/issues/browse/PCBC-87&quot; title=&quot;View error options at query time &quot;&gt;&lt;strike&gt;PCBC-87&lt;/strike&gt;&lt;/a&gt;, &lt;a href=&quot;http://www.couchbase.com/issues/browse/PCBC-13&quot; title=&quot;Warn for illogic view parameters&quot;&gt;&lt;strike&gt;PCBC-13&lt;/strike&gt;&lt;/a&gt;, &lt;a href=&quot;http://www.couchbase.com/issues/browse/PCBC-137&quot; title=&quot;view querying needs to be more straightforward; e.g. character strings of decimal digits are serialised over the REST API as integers in view requests&quot;&gt;&lt;strike&gt;PCBC-137&lt;/strike&gt;&lt;/a&gt;, &lt;a href=&quot;http://www.couchbase.com/issues/browse/PCBC-57&quot; title=&quot;support errors on views&quot;&gt;&lt;strike&gt;PCBC-57&lt;/strike&gt;&lt;/a&gt; - View Option Handling&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>9869</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-52] add support for unlock command</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-52</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>Couchbase server has a keyed unlock command, which goes along with the getl command.  The PHP client needs to add support for this command.  Support is being added to libcouchbase.</description>
                <environment></environment>
            <key id="16289">PCBC-52</key>
            <summary>add support for unlock command</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="trond">Trond Norbye</assignee>
                                <reporter username="ingenthr">Matt Ingenthron</reporter>
                        <labels>
                    </labels>
                <created>Sun, 11 Mar 2012 00:22:06 -0600</created>
                <updated>Tue, 4 Dec 2012 12:12:16 -0600</updated>
                    <resolved>Tue, 4 Dec 2012 12:12:16 -0600</resolved>
                                            <fixVersion>1.1.0</fixVersion>
                                <component>library</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="29270" author="avsej" created="Fri, 8 Jun 2012 04:28:42 -0500"  >Unlock command already available in libcouchbase &lt;a href=&quot;https://github.com/couchbase/libcouchbase/blob/1.1.0dp5/include/libcouchbase/couchbase.h#L305-L346&quot;&gt;https://github.com/couchbase/libcouchbase/blob/1.1.0dp5/include/libcouchbase/couchbase.h#L305-L346&lt;/a&gt;</comment>
                    <comment id="45320" author="trond" created="Tue, 4 Dec 2012 05:44:19 -0600"  >&lt;a href=&quot;http://review.couchbase.org/23028&quot;&gt;http://review.couchbase.org/23028&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>9873</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-51] Thoroughly unit-test API arguments</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-51</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>Make sure the procedural and OO interfaces work as advertise to avoid the ::increment() issue where a procedural resource was still expected.</description>
                <environment></environment>
            <key id="16259">PCBC-51</key>
            <summary>Thoroughly unit-test API arguments</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="mjackson">Michael Jackson</assignee>
                                <reporter username="jan">Jan Lehnardt</reporter>
                        <labels>
                    </labels>
                <created>Mon, 5 Mar 2012 11:48:52 -0600</created>
                <updated>Mon, 8 Oct 2012 15:59:47 -0500</updated>
                    <resolved>Mon, 8 Oct 2012 15:59:47 -0500</resolved>
                            <version>1.0</version>
                                <fixVersion>1.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="39834" author="mjackson" created="Wed, 26 Sep 2012 18:16:48 -0500"  >Mark has a changeset that will serve as a good foundation for this (&lt;a href=&quot;http://review.couchbase.org/#/c/21119/&quot;&gt;http://review.couchbase.org/#/c/21119/&lt;/a&gt; [edit: fixed link]) I think; my plan is to begin extending from that base once it is merged in.</comment>
                    <comment id="40245" author="mjackson" created="Wed, 3 Oct 2012 16:44:13 -0500"  >&lt;a href=&quot;http://review.couchbase.org/#/c/21320/&quot;&gt;http://review.couchbase.org/#/c/21320/&lt;/a&gt; contains the changes to extend and relocate the new tests (they are now the default tests, as the old tests have been completely replaced)</comment>
                    <comment id="40690" author="mjackson" created="Mon, 8 Oct 2012 15:59:47 -0500"  >Merged to master.  Seems like for now we&amp;#39;re not going to backport this to 1.0.x.</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9874</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-47] Allow to make non-persistent connections in new-style constructor</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-47</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>with new Couchbase(&amp;quot;&lt;a href=&quot;http://server:port/bucket&quot;&gt;http://server:port/bucket&lt;/a&gt;&amp;quot;) you have no way of specifying that you don&amp;#39;t want a persistent connection. You can do so with new Couchbase($server, $user, $pass, $bucket, $persistent), but it&amp;#39;d be nice to allow new Couchbase($url[, persistent = true]);&lt;br/&gt;
&lt;br/&gt;
</description>
                <environment></environment>
            <key id="16231">PCBC-47</key>
            <summary>Allow to make non-persistent connections in new-style constructor</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="5">Cannot Reproduce</resolution>
                    <security id="10011">Public</security>
                        <assignee username="mnunberg">Mark Nunberg</assignee>
                                <reporter username="jan">Jan Lehnardt</reporter>
                        <labels>
                    </labels>
                <created>Thu, 1 Mar 2012 06:29:50 -0600</created>
                <updated>Wed, 7 Nov 2012 15:51:09 -0600</updated>
                    <resolved>Wed, 7 Nov 2012 15:51:09 -0600</resolved>
                            <version>1.1.0</version>
                                <fixVersion>1.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="30505" author="laruence" created="Mon, 18 Jun 2012 22:37:23 -0500"  >yes, it should. sorry for missed that.&lt;br/&gt;
&lt;br/&gt;
I will work on it soon..&lt;br/&gt;
&lt;br/&gt;
thanks :)</comment>
                    <comment id="43493" author="ingenthr" created="Wed, 7 Nov 2012 15:22:23 -0600"  >Mark: Please determine if this issue is still valid and help me triage it into the appropriate release.  I&amp;#39;ve assigned it to you for triage, not necessarily to fix it.</comment>
                    <comment id="43506" author="mnunberg" created="Wed, 7 Nov 2012 15:51:09 -0600"  >This is either fixed or not reproducible. Connections are non-persistent by default unless otherwise specified.</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9877</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-35] Add automated cluster tests</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-35</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description></description>
                <environment></environment>
            <key id="16079">PCBC-35</key>
            <summary>Add automated cluster tests</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="mnunberg">Mark Nunberg</assignee>
                                <reporter username="jan">Jan Lehnardt</reporter>
                        <labels>
                    </labels>
                <created>Fri, 3 Feb 2012 10:56:43 -0600</created>
                <updated>Mon, 12 Nov 2012 01:50:53 -0600</updated>
                    <resolved>Mon, 12 Nov 2012 01:50:53 -0600</resolved>
                                            <fixVersion>1.0.5</fixVersion>
                <fixVersion>1.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="43507" author="ingenthr" created="Wed, 7 Nov 2012 15:51:41 -0600"  >I believe this is closeable with the new testing framework you&amp;#39;ve built, correct?  If you agree, please close.  Let&amp;#39;s look more at the roadmap on this one sometime soon.</comment>
                    <comment id="43779" author="mnunberg" created="Mon, 12 Nov 2012 01:50:39 -0600"  >Yes. We might want to make automated tests (i.e. &amp;#39;make test&amp;#39;), but there&amp;#39;s not much which is php-specific.. I&amp;#39;m imagining trond&amp;#39;s build server is sufficient as far as these things go..</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9888</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-22] running integration tests under CI</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-22</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description></description>
                <environment></environment>
            <key id="15833">PCBC-22</key>
            <summary>running integration tests under CI</summary>
                <type id="3" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/task.png">Task</type>
                                <priority id="4" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/minor.png">Minor</priority>
                    <status id="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="2">Won&apos;t Fix</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 01:19:43 -0600</created>
                <updated>Wed, 7 Nov 2012 15:52:21 -0600</updated>
                    <resolved>Wed, 7 Nov 2012 15:52:21 -0600</resolved>
                                            <fixVersion>1.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="43508" author="ingenthr" created="Wed, 7 Nov 2012 15:52:21 -0600"  >we&amp;#39;ve changed strategy on this.</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9898</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-19] generating shippable artifacts</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-19</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description></description>
                <environment></environment>
            <key id="15830">PCBC-19</key>
            <summary>generating shippable artifacts</summary>
                <type id="3" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/task.png">Task</type>
                                <priority id="4" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/minor.png">Minor</priority>
                    <status id="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</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 01:16:21 -0600</created>
                <updated>Tue, 11 Dec 2012 20:08:06 -0600</updated>
                    <resolved>Tue, 11 Dec 2012 20:08:06 -0600</resolved>
                                            <fixVersion>1.1.0</fixVersion>
                                <component>library</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="38468" author="ingenthr" created="Tue, 11 Sep 2012 10:35:51 -0500"  >This is mostly fixed through sdkbuilds jira, but there is one outstanding issue.  The generation of the build needs to install official packages or trigger the appropriate libcouchbase build first.&lt;br/&gt;
&lt;br/&gt;
Assigning to Sergey as low priority.</comment>
                    <comment id="38475" author="avsej" created="Tue, 11 Sep 2012 10:59:12 -0500"  >Assigning to mordy__ because he knows how to cook pecl extensions</comment>
                    <comment id="43845" author="ingenthr" created="Mon, 12 Nov 2012 16:31:25 -0600"  >Assigning back to Sergey (sorry) :).   I know how to cook PHP extensions which is all that&amp;#39;s needed here.  Need to integrate this with our build environment, where Sergey is the benevolent dictator (as assigned by me). </comment>
                    <comment id="43957" author="avsej" created="Wed, 14 Nov 2012 05:23:26 -0600"  >&lt;a href=&quot;http://sdkbuilds.couchbase.com/job/sdk-repo/&quot;&gt;http://sdkbuilds.couchbase.com/job/sdk-repo/&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
this job is making tarballs with binary PHP extension</comment>
                    <comment id="45846" author="ingenthr" created="Tue, 11 Dec 2012 20:08:06 -0600"  >Done for now, but needs a bit of release management review.</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9901</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-13] Warn for illogic view parameters</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-13</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>Some combinations of view parameters do not make sense e.g. group=true and group_level=N, the SDK should warn if an illogic combination is specified.</description>
                <environment></environment>
            <key id="15497">PCBC-13</key>
            <summary>Warn for illogic view parameters</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="trond">Trond Norbye</assignee>
                                <reporter username="jan">Jan Lehnardt</reporter>
                        <labels>
                    </labels>
                <created>Thu, 27 Oct 2011 06:47:02 -0500</created>
                <updated>Sat, 15 Dec 2012 13:20:39 -0600</updated>
                    <resolved>Fri, 23 Nov 2012 20:21:36 -0600</resolved>
                            <version>1.0</version>
                                <fixVersion>1.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="43497" author="ingenthr" created="Wed, 7 Nov 2012 15:26:07 -0600"  >Trond: assigning to you to determine if still an issue and triage.</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9907</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>

<item>
            <title>[PCBC-10] Enable SASL</title>
                <link>http://www.couchbase.com/issues/browse/PCBC-10</link>
                <project id="10049" key="PCBC">Couchbase PHP client library</project>
                        <description>we currently explicitly build without SASL bindings. We should look into enabling them, at least optionally.</description>
                <environment></environment>
            <key id="15395">PCBC-10</key>
            <summary>Enable SASL</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="6" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/closed.png">Closed</status>
                    <resolution id="2">Won&apos;t Fix</resolution>
                    <security id="10011">Public</security>
                        <assignee username="jan">Jan Lehnardt</assignee>
                                <reporter username="jan">Jan Lehnardt</reporter>
                        <labels>
                    </labels>
                <created>Thu, 13 Oct 2011 10:02:27 -0500</created>
                <updated>Thu, 1 Mar 2012 06:19:05 -0600</updated>
                    <resolved>Thu, 1 Mar 2012 06:18:57 -0600</resolved>
                                            <fixVersion>1.1.0</fixVersion>
                                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="22467" author="ingenthr" created="Thu, 27 Oct 2011 20:58:48 -0500"  >Primary approach for right now is to use client side moxi configured for SASL.</comment>
                    <comment id="24673" author="jan" created="Thu, 1 Mar 2012 06:18:57 -0600"  >with ext/couchbase we are already there.</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>9910</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>
</channel>
</rss>