[PCBC-118] add functionality to use setMulti with CAS (and individual expiry) Created: 24/Sep/12  Updated: 09/Jun/13

Status: Open
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Improvement Priority: Minor
Reporter: Mark Nunberg Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
This would need to be called setMultiEx as the key-value array passed to setMulti itself already assumes the value is the value to serialize and store on the server.

sample:

$kv = array($key => array($value, $cas, $exp));




[PCBC-15] Add compatibility layer for ext/memcache Created: 27/Oct/11  Updated: 09/Jun/13

Status: Reopened
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: New Feature Priority: Major
Reporter: Jan Lehnardt Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
implement ext/memcache's API on top of our SDK to help user migrate.

There's a reasonably complete work in progress here: https://github.com/couchbaselabs/memcache-wrapper

 Comments   
Comment by Matt Ingenthron [ 11/Dec/12 ]
Reopening, because there's a WIP but not in a release.




[PCBC-164] Streamline tests Created: 14/Dec/12  Updated: 09/Jun/13

Status: Open
Project: Couchbase PHP client library
Component/s: library
Affects Version/s: 1.1.0
Fix Version/s: None
Security Level: Public

Type: Task Priority: Critical
Reporter: Mark Nunberg Assignee: Trond Norbye
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Tests right now are much slower than they should be, which also means that running them is turning into a much bigger hassle than it should be. Here are some things to do in order to make them quicker

1) Remove OO vs non-OO tests unless behavior is known to differ:

Right now all our OO functions and non-OO functions traverse exactly the same code paths (not as previously when there would be different code paths for each).

2) Move slow tests into their own categories: Simple mutation functions should not be intermixed with long things like key durability ops. These should be in separate files -- thus also allowing us to exclude them somehow (either via make test, or through runwrap/phpunit)

3) Tests which are expected to fail or are inconclusive should be marked as such.




[PCBC-125] Tests: require get validation to also ensure CAS is expected value Created: 28/Sep/12  Updated: 09/Jun/13

Status: Open
Project: Couchbase PHP client library
Component/s: library
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Task Priority: Major
Reporter: Mark Nunberg Assignee: Trond Norbye
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified





[PCBC-101] Provide Standardized Logging Created: 24/Aug/12  Updated: 09/Jun/13

Status: Open
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Improvement Priority: Minor
Reporter: Karen Zeller Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Provides the consistent level of logging provided by other SDKs. Provide more information on configuring logging for developers.




[PCBC-102] Provide Consistent Order of Parameters Created: 24/Aug/12  Updated: 09/Jun/13

Status: Open
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Improvement Priority: Minor
Reporter: Karen Zeller Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Provide consistent, predictable order for method parameters as other SDKS.




[PCBC-96] Create compatibility layer for flags in PHP Created: 10/Aug/12  Updated: 09/Jun/13

Status: Open
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: 1.1.0
Fix Version/s: None
Security Level: Public

Type: New Feature Priority: Minor
Reporter: Matt Ingenthron Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
In PCBC-78, we'd added a simple workaround to working with JSON from multiple languages. We need a more elegant approach though, and that'd need to consider standardizing flags or some other approach. This issue will track that need.




[PCBC-24] deploying to download locations directly from CI Created: 12/Jan/12  Updated: 09/Jun/13

Status: Open
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Task Priority: Minor
Reporter: Matt Ingenthron Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The idea here is that non-releases should automatically upload deploy to one location, and releases should automatically deploy to a different location.




[PCBC-237] Docs needed for config_cache configuration Created: 06/Jun/13  Updated: 06/Jun/13

Status: Open
Project: Couchbase PHP client library
Component/s: docs
Affects Version/s: 1.1.2
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Perry Krug Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
We've been trying to push customers/users towards using the config_cache but at the moment there is fairly limited documentation and instructions on how and why to use it.

 Comments   
Comment by Trond Norbye [ 06/Jun/13 ]
You can find some info at https://github.com/couchbase/php-ext-couchbase/blob/master/example/couchbase.ini#L96

Ideally we should speed up the config retrieval in ns_server to get it on par with the normal get ops and drop the cache ;)
Comment by Perry Krug [ 06/Jun/13 ]
Unfortunately not all of our users are sophisticated enough to read the code from github and immediately know how to use everything...otherwise we wouldn't need any documentation in the first place right? :)

This needs to get added into the normal docs with detailed descriptions and examples
Comment by Matt Ingenthron [ 06/Jun/13 ]
I agree with the issue, but just want to caution you that we released the config cache option documented as experimental with known limitations. It's in production in a couple of places, but doesn't work for memcached buckets and we don't really have sufficient test coverage in the area where we have a lot of resubscribing.

Still, this is better than the alternative behavior (making ns_server keel over from lots of HTTP connections).

We'll document it, but it'll have to hold that experimental/known limitations for a bit.




[PCBC-152] Release notes needed fro 1.0.6 Created: 30/Nov/12  Updated: 06/Jun/13

Status: Open
Project: Couchbase PHP client library
Component/s: docs
Affects Version/s: 1.0.6, 1.1.1, 1.1.2
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Perry Krug Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
As with Ruby, PHP 1.0.5 and 1.0.6 are marked as "unreleased" in Jira yet have been avialable for d/l. Release notes needed for 1.0.6

 Comments   
Comment by Perry Krug [ 28/May/13 ]
Matt, I'm seeing more releases of the PHP library (including 1.0.6, 1.1.1 and 1.1.2) that do not have release notes yes online.
Comment by Perry Krug [ 06/Jun/13 ]
Customers are seeing 1.1.5 available on PECL but no release notes after 1.1.0
Comment by Trond Norbye [ 06/Jun/13 ]
The release notes is in the release bundle from pecl :)




[PCBC-238] Docs: need examples of API calls, expected usage, expected return values Created: 06/Jun/13  Updated: 06/Jun/13

Status: Open
Project: Couchbase PHP client library
Component/s: docs
Affects Version/s: 1.1.2
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Perry Krug Assignee: Trond Norbye
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
All of the pages under:
http://www.couchbase.com/docs/couchbase-sdk-php-1.1/api-reference-connection.html
http://www.couchbase.com/docs/couchbase-sdk-php-1.1/api-reference-store.html
http://www.couchbase.com/docs/couchbase-sdk-php-1.1/api-reference-retrieve.html
http://www.couchbase.com/docs/couchbase-sdk-php-1.1/api-reference-update.html
http://www.couchbase.com/docs/couchbase-sdk-php-1.1/api-reference-stats.html
http://www.couchbase.com/docs/couchbase-sdk-php-1.1/php-api-reference-view.html

Are pretty empty with regards to how to use these operations within PHP code, what to expect as the return codes/values, how to handle errors, etc.




[PCBC-223] Docs: Instructions to find php.ini incorrect Created: 22/Apr/13  Updated: 06/Jun/13

Status: Open
Project: Couchbase PHP client library
Component/s: docs
Affects Version/s: 1.1.2
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Perry Krug Assignee: Karen Zeller
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
http://www.couchbase.com/develop/php/current

"You will add the couchbase.so extension to your php.ini file. To find where your php.inifile is, try php -i | grep extension_dir or look at your <?php phpinfo() ?> output. Edit your php.ini to include these two lines:"

Not correct..."extension_dir" should be "Configuration" and there should be another set of instructions for finding the extension directory

 Comments   
Comment by Karen Zeller [ 24/Apr/13 ]
Looks like this is broken again despite the info on JSON library for linux. Do you have the correct way to do this?
Comment by Trond Norbye [ 06/Jun/13 ]
Perry is right here. If you read the sentence it tells you how to locate your php.ini file, but the grep there tells you where the _extensions_ are installed.

The correct entry should look like something like:

trond@ok> php -i | grep Configuration
Configuration File (php.ini) Path => /etc
Loaded Configuration File => (none)

and as you see on the first line of output there it prints out the correct value.
Comment by Perry Krug [ 06/Jun/13 ]
Yes, and then there should be another set of instructions on how to find the extension_dir.




[PCBC-93] Support for HipHop Created: 08/Aug/12  Updated: 24/May/13

Status: Open
Project: Couchbase PHP client library
Component/s: library
Affects Version/s: 1.1.0-dp1
Fix Version/s: None
Security Level: Public

Type: Improvement Priority: Minor
Reporter: Perry Krug Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
https://github.com/facebook/hiphop-php/wiki/

According to Sergey we need at least write adapter code for it: https://github.com/facebook/hiphop-php/pull/244/files

 Comments   
Comment by Matt Ingenthron [ 25/Oct/12 ]
Hiphop mostly helps with CPU bound PHP, so it wouldn't provide any benefit to our exension, but it would be required by someone who wanted to use our extension with hiphop. Moving to 1.2 for tracking.
Comment by Matt Ingenthron [ 24/May/13 ]
This is not planned any time soon.




[PCBC-235] Documentation: Document how to install our SDK with PEAR Created: 21/May/13  Updated: 23/May/13

Status: Open
Project: Couchbase PHP client library
Component/s: docs
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Improvement Priority: Minor
Reporter: Tug Grall Assignee: Karen Zeller
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Based on a community feedback it is possible and easy to install Couchbase PHP SDK with Pear, it could be interested to add that as part of our documentation to let the developer chose the type of install (manual, pecl, pear, ...)

You can find the steps here:
http://www.couchbase.com/forums/thread/php-sdk-install-pear


 Comments   
Comment by Trond Norbye [ 21/May/13 ]
Please assign it back to me if you need more information.
Comment by Karen Zeller [ 22/May/13 ]
Have we verified ourselves that this works?
Comment by Trond Norbye [ 22/May/13 ]
Hey Tug, can you verify it?
Comment by Tug Grall [ 23/May/13 ]
I have not I would prefer to have a "PHP" Expert like Mike doing it, assigning the task to him.
Comment by Michael Nitschinger [ 23/May/13 ]
to be clear here, the SDK can be installed through pecl. pear is for userlevel libraries!
Comment by Michael Nitschinger [ 23/May/13 ]
quick update: pecl install couchbase works, but the version it shows is 1.1.4-dp inside php -i ..
Comment by Trond Norbye [ 23/May/13 ]
That was another bug we've already fixed :)
Comment by Trond Norbye [ 23/May/13 ]
It is verified by Michael




[PCBC-233] build php 1.1.5 for windows Created: 14/May/13  Updated: 14/May/13

Status: Open
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Task Priority: Major
Reporter: Matt Ingenthron Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Zip Archive php_couchbase-1.1.5-53-nts-vc9-x86.zip     Zip Archive php_couchbase-1.1.5-53-ts-vc9-x86.zip     Zip Archive php_couchbase-1.1.5-54-nts-vc9-x86.zip     Zip Archive php_couchbase-1.1.5-54-ts-vc9-x86.zip    

 Description   
Since we've released 1.1.5, we need to get some builds of that for Windows.




[PCBC-53] include windows in release Created: 22/Mar/12  Updated: 13/May/13

Status: Open
Project: Couchbase PHP client library
Component/s: docs, library
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Matt Ingenthron Assignee: Trond Norbye
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Once libcouchbase is in a release for Windows, there should be a PHP release to go along with it.

 Comments   
Comment by Matt Ingenthron [ 07/Nov/12 ]
Trond: assigning to you to determine if still an issue and triage.
Comment by Karen Zeller [ 04/Dec/12 ]
Added to RN: PHP SDK depends on Couchbase C SDK, which is not yet available on Windows. Therefore the PHP SDK is also
not on this platform.




[PCBC-69] Add Pagination to the new 1.1.0 line. Created: 17/May/12  Updated: 13/May/13

Status: Open
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: 1.1.0-dp1
Fix Version/s: None
Security Level: Public

Type: New Feature Priority: Major
Reporter: Jan Lehnardt Assignee: Trond Norbye
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
We should bake in pagination into ext/couchbase

$result = $cb->view("ddoc", "viewname");
$pager = $result->getPager($rowsPerPage = 10);
foreach($pager->nextPage() AS $page) {
  foreach($page->rows AS $row) {
    var_dump($row);
  }
}


 Comments   
Comment by Matt Ingenthron [ 07/Nov/12 ]
This should be implemented along with "logical" include_docs support.

The idea behind logical include_docs is that when fetching a non-reduced view, if the user specifies include_docs, there is a way to access the document when iterating over the results.

I'm relatively sure this may require further discussion. Grab me when you're ready to have a look at this issue.




[PCBC-225] Failure to load JSON module, even with workaround provided via instructions Created: 23/Apr/13  Updated: 07/May/13

Status: Open
Project: Couchbase PHP client library
Component/s: docs, library
Affects Version/s: 1.1.2
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Perry Krug Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
On a Centos 5.8 system, I am unable to follow our instructions (http://www.couchbase.com/develop/php/current) to success.

After setting everything up, I get the following error about JSON:
NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/couchbase.so' - /usr/lib64/php/modules/couchbase.so: undefined symbol: php_json_decode in Unknown on line 0

This is even after I put the json.so as an extension in the PHP.ini file.

php -i shows the proper JSON related output:
~ $ php -i | grep json
json
json support => enabled
json version => 1.2.1

I will note that installing via the new PECL method helps to resolve this, but you still get the error if you don't include json.so in the php.ini file.

 Comments   
Comment by Sharon Barr [ 23/Apr/13 ]
The user is using PHP 5.4.11 and was following the steps on http://eugenioz.blogspot.com/2013/01/installing-php-54-couchbase-server-20.html
Comment by Matt Ingenthron [ 23/Apr/13 ]
Note that installing from PECL isn't for a release yet. We do have a snapshot up there though, but that needs to be installed through:

sudo pecl install channel://pecl.php.net/couchbase-1.1.4
Comment by Perry Krug [ 26/Apr/13 ]
Any progress on figuring out what was going wrong with this server?
Comment by Perry Krug [ 07/May/13 ]
Any comment/progress on this issue?
Comment by Matt Ingenthron [ 07/May/13 ]
sorry, not at the moment. I did try to ssh to the server at one point, but I think I was too late.

Can you identify where the user got the php 5.4.11? I can try that on my centos system to see if I can identify the source of the issue.
Comment by Perry Krug [ 07/May/13 ]
I'm not sure where Sharon's user got php 5.4.11 from, but this is the PHP54 package I had installed on the RightScale system that had this issue reproduced:
[root@ip-10-197-24-67 ~]# yum info php54
Loaded plugins: security
Excluding Packages from none
Finished
Available Packages
Name : php54
Arch : x86_64
Version : 5.4.4
Release : 1.ius.el5
Size : 3.1 M
Repo : rightscale-epel
Summary : PHP scripting language for creating dynamic web sites
URL : http://www.php.net/
License : PHP
Description: PHP is an HTML-embedded scripting language. PHP attempts to make it
           : easy for developers to write dynamically generated web pages. PHP
           : also offers built-in database integration for several commercial
           : and non-commercial database management systems, so writing a
           : database-enabled webpage with PHP is fairly simple. The most common
           : use of PHP coding is probably as a replacement for CGI scripts.
           :
           : The php package contains the module which adds support for the PHP
           : language to Apache HTTP Server.


What else do you need in order to identify, reproduce and resolve this?




[PCBC-227] setMulti doesn't support pure digit key Created: 30/Apr/13  Updated: 03/May/13

Status: Open
Project: Couchbase PHP client library
Component/s: library
Affects Version/s: 1.1.2, 1.1.4
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Knee Oh Assignee: Trond Norbye
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Ubuntu 12.04 / Apache 2 / PHP5 / libcouchbase - 2.0.5


 Description   
This bug didn't exist in 1.1.0dp5, but I've seen it before in php-memcached. The issue is when issuing a setMulti() array into CB it doesn't like it if the key is not a string.

$key = 12345
$value = 67890

$value = json_encode($value);
$array[$key] = $value;

$cb_obj->setMulti($array,$expire);

PHP Fatal error: Uncaught exception 'CouchbaseIllegalKeyException' with message 'Invalid key specified (not a string)'

test2.php(67): Couchbase->setMulti(Array, 604800)

The reference bug for php-memcached is: https://bugs.php.net/bug.php?id=59016

After experiencing the issue there I recompiled their newest version and it fixed the problem. I'm not sure if you can dovetail off of that work or not.

 Comments   
Comment by Knee Oh [ 30/Apr/13 ]
I forgot to mention, I'm loading a memcached bucket not a CB bucket.
Comment by Mark Nunberg [ 01/May/13 ]
So the problem is here:

https://github.com/couchbase/php-ext-couchbase/blob/9c1842fd5fd5c3e776ea85d85db1f7d5d5430c11/store.c#L673

Should look something like:
https://github.com/couchbase/php-ext-couchbase/blob/9c1842fd5fd5c3e776ea85d85db1f7d5d5430c11/store.c#L189

The latter is smart enough to convert 'LONG' keys into strings, whereas the former just blindly complains.
Comment by Knee Oh [ 02/May/13 ]
Additional testing yields that even if I force the key to a string like strval($key); , if the string is purely digits the library will still complain.
Comment by Mark Nunberg [ 03/May/13 ]
http://paste.scsys.co.uk/245952

I'd submit it to gerrit, but it appears to be down today.
Comment by Trond Norbye [ 03/May/13 ]
I've already got stuff for this but report in my repo.. it would probably be more efficient to synchronize with the people assigned to the bug reports before doing stuff...




[PCBC-226] Key limit in view Queries and likely other SDK calls Created: 29/Apr/13  Updated: 29/Apr/13

Status: Open
Project: Couchbase PHP client library
Component/s: library
Affects Version/s: 1.1.2
Fix Version/s: None
Security Level: Public

Type: Task Priority: Major
Reporter: Robert Dominy Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Mac OS X, CentOS


 Description   
I'm querying a view using the PHP SDK using the view method, $object->view($ddocname [, $viewname ] [, $viewoptions ]), and finding that when I pass in a certain number of keys in the viewoptions param, the method silently fails and just returns null. It appears that 164 keys is OK, but 179 is not. I didn't see documentation indicating a key limit and would expect an error if there were.
Here's the call:
// 179 keys breaks, 164 OK
$result = $this->cb->view(self::VIEW_DAP,'modelcount',array('keys' => $keys,
'group_level' => 2,
'group' => true,
'skip' => 0)

Here's a link to the forum thread I created:
http://www.couchbase.com/forums/thread/key-limit-view-queries

As you'll see in the responses, this is probably a much more general issue that the PHP SDK uses GET calls that have a string length limit. It seems that the SDK should either use POSTs to avoid the limit or document the size limits in the documentation.




[PCBC-220] error with "default" bucket. named bucket work OK: CouchbaseLibcouchbaseException Failed to get a value from server: Network error. Created: 13/Apr/13  Updated: 22/Apr/13

Status: Open
Project: Couchbase PHP client library
Component/s: library
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: thanhbv Assignee: Trond Norbye
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: centos 6.4 x86_64. php-fpm 5.4.13-1.el6.remi.x86_64


 Description   
php-ext-couchbase version: https://github.com/couchbase/php-ext-couchbase/commit/ff2ed89c6255a2f364640b62d9930732ce597075

duplicates to #PCBC-169, but with php 5.4

I use php-fpm 5.4.13-1.el6.remi.x86_64 ( with nginx-1.3.15-1.el6.ngx.x86_64).
It work OK yesterday. But today: CouchbaseLibcouchbaseException Failed to get a value from server: Network error.

  $bk = isset($_GET['bk'])? $_GET['bk'] : 'default';
  $cb = new Couchbase("$host:8091", 'user', 'password', $bk);
  $a = $cb->get('aaa'); //-> error here

Error with /test.php (& /test.php?bk=default). But OK with /test.php?bk=mybk

After: # service php-fpm restart
Then all (with 'default' & with named bucket) test OK.

I can not reproduce this error now.

 Comments   
Comment by thanhbv [ 15/Apr/13 ]
yesterday, I update:
php-fpm-5.4.14-1.el6.remi.x86_64, php-ext-couchbase 0f54569ebe34a80e225b85c7dcb5813ed86e351e
tested OK.

Now, the same error as above occur. After restart service php-fpm => OK

Note:
I run php-fpm (with couchbase ext) on a VMWare virtual machine and couchbase server 2.0.1 (enterprise edition build-170) on a physical machine.
The VM is sometime suspended, sometime NOT connect to the server. (But when I run test, of course 2 machine is connected)
Comment by Matt Ingenthron [ 15/Apr/13 ]
I suspect the network connection is getting dropped because of the idling time.

Trond: do we need to worry about reconnect?

Thanhbv: do you use persistent connections? What does your constructor for the client look like?
Comment by Trond Norbye [ 16/Apr/13 ]
I don't think you can use persistent connections in a configuration where you suspend and resume the vm so we won't look into this if thats the case. What is the output from the couchbase section of "php -i" ?
Comment by thanhbv [ 22/Apr/13 ]
Yes, I think it use persistent connection.
phpinfo():
_______________
couchbase
couchbase support enabled
version 1.1.4dp1
libcouchbase version 2.0.5
json support yes
fastlz support yes
zlib support yes

Directive Local Value Master Value
couchbase.compression_factor 1.3 1.3
couchbase.compression_threshold 2000 2000
couchbase.compressor none none
couchbase.config_cache /var/cache/cb /var/cache/cb
couchbase.durability_default_poll_interval 100000 100000
couchbase.durability_default_timeout 40000000 40000000
couchbase.instance.persistent On On
couchbase.restflush On On
couchbase.serializer json_array json_array
couchbase.view_timeout 75 75
_______________

thank you.




[PCBC-224] Document installation instructions for Windows with Apache instead of IIS Created: 22/Apr/13  Updated: 22/Apr/13

Status: Open
Project: Couchbase PHP client library
Component/s: docs
Affects Version/s: 1.1.2
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Perry Krug Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified





[PCBC-222] couchbase.default_prefix setting in PHP.ini Created: 22/Apr/13  Updated: 22/Apr/13

Status: Open
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Improvement Priority: Minor
Reporter: jtulach Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
It will be nice to have couchbase.default_prefix setting in PHP.ini to set default value of couchbase_res->prefix_key in new connections.




[PCBC-221] PHP Couchbase persistent connections shares more than expected Created: 22/Apr/13  Updated: 22/Apr/13

Status: Open
Project: Couchbase PHP client library
Component/s: library
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: jtulach Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
PHP Couchbase persistent connection shares all option settings (serializer, compression, prefix_key) and keeps that settings across multiple requests. This is not an expected behaviour.
 
Code:
 
<?php
 $cb1 = new Couchbase("http://192.168.0.180/default");
 $cb2 = new Couchbase("http://192.168.0.180/default");

$cb1->setOption(COUCHBASE_OPT_PREFIX_KEY,'cb1');
 $cb2->setOption(COUCHBASE_OPT_PREFIX_KEY,'cb2');
 
$cb1->set('val1','v1', 60);
 $cb2->set('val2','v2', 60);
 ?>
 
will store following keys:
 
cb2_val1
 cb2_val2
 
Moreover if you execute right after previous request following code (in another script):
 
<?php
 $cb = new Couchbase("http://192.168.0.180/default");
 $cb->set('val3','v3', 60);
 ?>
 
the code stores key:
 
cb2_val3
 
If you turn off the persistent connections, you will get more consistent results:
 
cb1_val1
 cb2_val2
 val3
 
The problem is that whole _php_couchbase_res structure is shared when using persistent connection. Possible change is to duplicate this structure in php_couchbase_create_impl. But resource destructors should be modified according to this change.





[PCBC-184] It would be nice to support the flags sections for the memcache extension Created: 22/Jan/13  Updated: 16/Apr/13

Status: Open
Project: Couchbase PHP client library
Component/s: library
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Improvement Priority: Major
Reporter: Trond Norbye Assignee: Trond Norbye
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by Simon Gavin [ 22/Jan/13 ]
I believe this is related to PCBC-180
Comment by Matt Ingenthron [ 15/Apr/13 ]
Trond is this related to PCBC-180? In other words, is this more than an improvement?
Comment by Trond Norbye [ 16/Apr/13 ]
The intention of this RFE is to fall back to try to use the flag values as specified in the memcache extension if we fail to deserialize with the currently used flag values.




[PCBC-190] Need documentation on timeouts available for PHP Created: 29/Jan/13  Updated: 16/Apr/13

Status: Open
Project: Couchbase PHP client library
Component/s: docs, library
Affects Version/s: 1.1.2
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Perry Krug Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
This link: http://www.couchbase.com/docs/couchbase-devguide-1.8/about-client-timeouts.html, states that there aren't any timeouts available for PHP

The PHP docs don't describe any.

However, I know that the underlying libcouchbase exposes at least one basic request timeout setting so either the PHP library needs some help exposing that, or it already does and we need to document it.

 Comments   
Comment by Matt Ingenthron [ 15/Apr/13 ]
Trond: Could you please review the existing documentation, recommend where we should put this information, then write up a draft and assign it back to me? Then I can review and get it over to Karen.

Let's try to do this one very soon.
Comment by Trond Norbye [ 16/Apr/13 ]
    /**
     * Retrieve the current operation timeout.
     *
     * @return integer The currently used timeout specified in usec
     */
    function getTimeout() {

    }

    /**
     * Specify an operation timeout.
     *
     * The operation timeout is the time it takes from the command is sent
     * to the cluster and the result should be returned back.
     *
     * @param integer $timeout the new operation timeout specified in usec
     */
    function setTimeout($timeout) {

    }

The keyDurability methods have a timeout parameter, and the view have the connection_timeout parameter one may set.
Comment by Perry Krug [ 16/Apr/13 ]
Thanks Trond. A few more questions:

-This bug was specifically requested for PHP...can you provide documentation on how to exercise those timeouts through PHP?
-And is there a separate timeout associated with the initial connection to 8091?
-Is there any logic/handling of a case where the comet stream becomes un responsive but is not actually reset?




[PCBC-197] different parameter order for incremement Created: 05/Feb/13  Updated: 16/Apr/13

Status: Open
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Trond Norbye Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
From IRC:

lachlan: can the latest php sdk (couchbase.so) still to be a drop in replacement for php memcached?
[2:39pm] trondn: lachlan: it is supposed to be compatible, but the constructor/factory methods are named differently etc..
[2:39pm] lachlan: reason I ask is the different order of parameters for increment() between memcached and couchbase sdk
[2:39pm] lachlan: Memcached::increment ( string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] )
[2:39pm] lachlan: Couchbase - $object->increment($key [, $offset ] [, $create ] [, $expiry ] [, $initial ])
[2:39pm] trondn: hmm.. I guess that's a bug...
[2:40pm] trondn: let me file that one...
[2:40pm]

 Comments   
Comment by Trond Norbye [ 16/Apr/13 ]
This will result in an API breakage... What should we do?




[PCBC-180] PHP Warning: Couchbase::get() could not decompress value (bad content) Created: 17/Jan/13  Updated: 16/Apr/13

Status: Open
Project: Couchbase PHP client library
Component/s: library
Affects Version/s: 1.1.1
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Critical
Reporter: Andrey Nikishaev Assignee: Trond Norbye
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: CentOS 5.6
Linux CentOS-56-64-minimal 2.6.18-308.16.1.el5 #1 SMP Tue Oct 2 22:01:43 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
PHP 5.2.17
Coucbase 1.8


 Description   
Forum thread with bug history
http://www.couchbase.com/forums/thread/php-warning-couchbaseget-could-not-decompress-value-bad-content

 Comments   
Comment by Trond Norbye [ 16/Apr/13 ]
Could you post some code sample I could use to reproduce the error? What kind of data are you storing, do you encode them in any special way etc?




[PCBC-202] Missing documentations how to setup php client on windows 7 Created: 12/Feb/13  Updated: 02/Apr/13

Status: Open
Project: Couchbase PHP client library
Component/s: docs
Affects Version/s: 1.1.2
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Minor
Reporter: Ilan Katz Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: windows
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by Ilan Katz [ 12/Feb/13 ]
There are no explanations in the following link http://www.couchbase.com/develop/php/current
Comment by Trond Norbye [ 02/Apr/13 ]
Windows is currently not a "supported" platform. see PCBC-53




[PCBC-189] [Better sample needed] Code sample of PHP Get and Lock Created: 28/Jan/13  Updated: 26/Mar/13

Status: Open
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Improvement Priority: Major
Reporter: Karen Zeller Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
One of our users asked for a code example demonstrating Get and Lock in PHP for the Developer Guide.

 Comments   
Comment by Matt Ingenthron [ 28/Jan/13 ]
A code sample can be found here:
https://github.com/couchbase/php-ext-couchbase/blob/master/tests/Get.inc#L301

The description says in the developer guide? Do you want this there or in the API reference? In any event, I'm passing it back to you to update the appropriate document.
Comment by Karen Zeller [ 29/Jan/13 ]
It was specifically asked for the Dev Guide, but if it makes more sense, I can just add the cross reference from there to the actual example in the PHP area.
Comment by Karen Zeller [ 30/Jan/13 ]
Note to self, this is a test case with assertions vs. example of when to use in sample application.....
Comment by Karen Zeller [ 26/Mar/13 ]
Dependancies/Blockers:

-Reviewed code with Technical Support (Perry)

-Need a better PHP Get and Lock code sample. Should demonstrate Get and Lock in sample application context.
-Need information on why get and lock suited for the context.
Comment by Karen Zeller [ 26/Mar/13 ]
See blockers on sample and information.




[PCBC-207] Support to Spatial Views in PHP SDK Created: 28/Feb/13  Updated: 01/Mar/13

Status: Open
Project: Couchbase PHP client library
Component/s: library
Affects Version/s: 1.1.2
Fix Version/s: None
Security Level: Public

Type: New Feature Priority: Major
Reporter: Tug Grall Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The release 1.1.2 does not allow developer to call Spatial Views.

We need to implement it for future release

 Comments   
Comment by Matt Ingenthron [ 01/Mar/13 ]
Note that this may be a while, as spatial support is still experimental at this stage. Best approach at the moment is to use the REST API directly as documented.




[PCBC-201] Docs: Reference installation Created: 11/Feb/13  Updated: 11/Feb/13

Status: Open
Project: Couchbase PHP client library
Component/s: docs
Affects Version/s: 1.1.2
Fix Version/s: None
Security Level: Public

Type: Improvement Priority: Major
Reporter: Perry Krug Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Customers have lots of choices at their fingertips, and many of those choices will result in a non-functioning installation, or at least a lot of time spent figuring out what the right pieces are.

Can we please provide as much details as possible about a reference installation that we can be sure will work for a customer who is just getting started? This is outside of our support for any one operatin system, but more about telling the customer "if you install with these versions and packages, this code will work"

-OS
-"language" version (PHP 5.x, etc)
-other packages/modules required and/or tested with




[PCBC-199] Docs: Add link to more code examples Created: 11/Feb/13  Updated: 11/Feb/13

Status: Open
Project: Couchbase PHP client library
Component/s: docs
Affects Version/s: 1.1.2
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Perry Krug Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
https://github.com/couchbaselabs/DeveloperDay/tree/master/PHP




[PCBC-196] Error handling documentation Created: 05/Feb/13  Updated: 05/Feb/13

Status: Open
Project: Couchbase PHP client library
Component/s: docs
Affects Version/s: 1.1.2
Fix Version/s: None
Security Level: Public

Type: Improvement Priority: Major
Reporter: Perry Krug Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Please create some documentation specifying possible error/failures to operations, what they "look" like in the logs/exceptions/stack traces and what our recommendation is on how to handle them.

i.e. tmp_oom, timeouts (connection/operation/java-internal/etc), "get miss" (it's technically a failure, let's make it overly obvious what it means), CAS failure, add() failure, replace() failure,

Some of this should be covered in the API reference, but this bug is specifically for a single page where this information is aggregated that a customer/user could read about how to handle errors.




[PCBC-195] Write the Getting Started with PHP on Linux section of the essentials guide Created: 04/Feb/13  Updated: 04/Feb/13

Status: Open
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Task Priority: Major
Reporter: MC Brown Assignee: Michael Nitschinger
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Write the Getting started with PHP on Linux (Redhat and Debian) section of the Essentials Guide

Needs to cover:

Installation of the PHP Couchbase extensions and pre-requisites
Writing your first (small) app using Couchbase and PHP

Submissions should be to MC, either through the couchbase/docs repo, or direct to MC in whatever format suits. Must include both the text and images.




[PCBC-185] Create an example to show how to use the getAndLock feature Created: 22/Jan/13  Updated: 22/Jan/13

Status: Open
Project: Couchbase PHP client library
Component/s: docs
Affects Version/s: 1.1.2
Fix Version/s: None
Security Level: Public

Type: Improvement Priority: Major
Reporter: Tug Grall Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
It will be useful for user to see how to use the getAndLock function in PHP here:
https://github.com/couchbase/php-ext-couchbase/tree/master/example

 Comments   
Comment by Tug Grall [ 22/Jan/13 ]
Coming from the community: http://www.couchbase.com/forums/thread/php-examples-code-getandlock-and-view




[PCBC-182] Update the documentation to show when a parameter is a copy or a reference Created: 17/Jan/13  Updated: 18/Jan/13

Status: Open
Project: Couchbase PHP client library
Component/s: docs
Affects Version/s: 1.1.2
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Tug Grall Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
When I look at the PHP core documentation I see when a parameter is a reference or not. (so we should review all our function documentation)

For example if you look at:
http://www.php.net/sort

Not only I know the type but also when it is a reference it is mentionned as &$array

I think we should do the same in our documentation, when I see our API with cas, for example:
http://www.couchbase.com/docs/couchbase-sdk-php-1.1/api-reference-retrieve-get.html#table-couchbase-sdk_php_get

it is not clear to me.



 Comments   
Comment by Trond Norbye [ 18/Jan/13 ]
As a workaround for now you should include couchbase-api.php in your project and have your IDE give you code completion ;)




[PCBC-179] Couchbase PHP client library v1.1.1 returns random integer on get request Created: 09/Jan/13  Updated: 17/Jan/13

Status: Open
Project: Couchbase PHP client library
Component/s: library
Affects Version/s: 1.1.1
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Andrey Nikishaev Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: CentOS 5.6
Linux CentOS-56-64-minimal 2.6.18-308.16.1.el5 #1 SMP Tue Oct 2 22:01:43 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
PHP 5.2.17
Coucbase 1.8


 Description   
Forum thread with bug history
http://www.couchbase.com/forums/thread/couchbase-php-client-library-v1-1-1-returns-random-integer-get-request


 Comments   
Comment by Andrey Nikishaev [ 17/Jan/13 ]
if before broken get request make another request to non-existing key, then all be fine. this is hot fix for those who also has such problem.




[PCBC-171] Package build scripts don't build source correctly Created: 27/Dec/12  Updated: 27/Dec/12

Status: Open
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Matt Ingenthron Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The prefix is missing the trailing slash, so the source packages are prefixed incorrectly.




[PCBC-162] include_docs support missing Created: 11/Dec/12  Updated: 11/Dec/12

Status: Open
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Jeff Minard Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
viewopts.c appears to be missing include_docs as a valid parameter for the array values that get passed in for a view.

 Comments   
Comment by Jeff Minard [ 11/Dec/12 ]
I just added

# git diff
diff --git a/viewopts.c b/viewopts.c
index 612559d..4b9ce0f 100644
--- a/viewopts.c
+++ b/viewopts.c
@@ -54,6 +54,7 @@ static view_param Recognized_View_Params[] = {
        { "startkey", jval_param_handler },
        { "startkey_docid", string_param_handler },
        { "debug", bool_param_handler },
+ { "include_docs", bool_param_handler },
        { NULL, NULL }
 };


And it seems to work just fine.




Generated at Wed Jun 19 07:15:01 CDT 2013 using JIRA 5.2.4#845-sha1:c9f4cc41abe72fb236945343a1f485c2c844dac9.