[PCBC-253] Create docs pages for release 1.2 Created: 30/Sep/13  Updated: 07/Oct/13  Due: 01/Oct/13  Resolved: 03/Oct/13

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

Type: Task Priority: Blocker
Reporter: Brett Lawson Assignee: Amy Kurtzman
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Please create a version 1.2 on the docs site for the PHP client as we will be releasing that client version tomorrow and will need to make some docs changes.

 Comments   
Comment by Amy Kurtzman [ 02/Oct/13 ]
The pages have been created, and put in a branch called php in the https://github.com/couchbaselabs/docs-ng repository.
Comment by Brett Lawson [ 02/Oct/13 ]
Hey Amy,

The doc updates have been pushed to the PHP branch and are ready for integration. Additionally, there are Node.js docs changes which are available on the stage branch as well that should be integrated into master.

Cheers, Brett
Comment by Amy Kurtzman [ 02/Oct/13 ]
Both PHP and node.js have been merged into master. I deleted the PHP branch.
Comment by Brett Lawson [ 03/Oct/13 ]
Added and updated.




[PCBC-255] Add PHP to Api Reference list Created: 01/Oct/13  Updated: 07/Oct/13  Resolved: 03/Oct/13

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

Type: Task Priority: Blocker
Reporter: Brett Lawson Assignee: Amy Kurtzman
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Please add the PHP Autodocs to the SDK API Reference drop-down menu on the docs site.

 Comments   
Comment by Amy Kurtzman [ 07/Oct/13 ]
Added to SDK API References drop-down menu.




[PCBC-161] update tutorial to be based on sample database Created: 06/Dec/12  Updated: 10/May/13  Resolved: 10/May/13

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

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


 Description   
Update the PHP sample with a simple app that covers three things:
CRUD (just get/set is fine)
JSON (PHP has this built in)
querying views

Optionally, do this with Twitter Bootstrap (as Michael and Sergey are using). Not required. It should be a webapp though.

This should pick up after the getting started guide which Karen is updating.

 Comments   
Comment by Michael Nitschinger [ 22/Jan/13 ]
I lost track on this, but is this considered finished with my tutorial?
Comment by Trond Norbye [ 10/May/13 ]
Closing this issue with now that we have Michaels tutorial. Create a new one if we need more examples




[PCBC-49] support new stale=false parameter Created: 01/Mar/12  Updated: 24/Sep/12  Resolved: 05/Sep/12

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

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


 Description   
Starting with 2.0 DP4, the default for stale has changed to update_after and there is a new argument to the stale parameter, "false" which performs a view update before response. The client needs to support this new argument to the stale parameter.

 Comments   
Comment by Sergey Avseyev [ 10/Apr/12 ]
Looks like that PHP client isn't maintaining list of allowed options and let to build arbitrary query string for user. So this issue might be not relevant here. The libcouchbase backend just accepts string of chars for path and query string
Comment by Michael Nitschinger [ 26/Aug/12 ]
Correct, the options are just passed along with the string of the viewname. Because of that, if you want to use _all_docs with options you need to pass the options instead of the empty view string.

I think we can close this.
Comment by Matt Ingenthron [ 24/Sep/12 ]
_all_docs is not supported with Couchbase Server 2.0.
Comment by Matt Ingenthron [ 24/Sep/12 ]
Closing, as the parameters to views are freeform in PHP.




[PCBC-268] Publish docs for PHP SDK May 2014 release Created: 27/Feb/14  Updated: 16/May/14  Due: 04/Mar/14  Resolved: 16/May/14

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

Type: Task Priority: Critical
Reporter: Amy Kurtzman Assignee: Amy Kurtzman
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: 1h
Time Spent: Not Specified
Original Estimate: 1h

Attachments: Zip Archive couchbase-php-client-1.2.2.zip    

 Description   
Edit and publish guide and autodocs

 Comments   
Comment by Brett Lawson [ 11/May/14 ]
Docs attached.




[PCBC-167] Got this error "undefined symbol: php_json_encode in Unknown on line 0" in PHP when trying to use client library v1.1.1 Created: 17/Dec/12  Updated: 03/Jan/13  Resolved: 03/Jan/13

Status: Closed
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: Matt Ingenthron
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: CeontOS 5.6
PHP 5.2.17
Couchabse 1.8


 Description   
Installed fresh v1.1.1 client lib to production server and got this:
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_encode in Unknown on line 0

I already had this error, and it was fixed with loading lib after json lib. But now it not helped. It still throwing error even if couchbase.so loading after json.so

 Comments   
Comment by Trond Norbye [ 03/Jan/13 ]
AFAIK we don't support PHP 5.2. According to http://www.php.net/downloads.php 5.4 is the current stable version, and 5.3 is the old stable version.




[PCBC-146] Create a windows php-5.3.17-Win32-VC9-x86 thread-safe build of the current 1.1 tree Created: 12/Nov/12  Updated: 02/Apr/13  Resolved: 02/Apr/13

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

Type: Task Priority: Critical
Reporter: Matt Ingenthron Assignee: Mark Nunberg
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Zip Archive php-ext-couchbase-5.3.18-vc9-x86.zip     Zip Archive php-ext-couchbase-5.3.18-win32-vc9-x86.zip    

 Description   
Please create what's in the summary line, and simply attach it here.

 Comments   
Comment by Matt Ingenthron [ 12/Nov/12 ]
Please
Comment by Matt Ingenthron [ 12/Nov/12 ]
Whoops. Premature enter key.

Richard: please let us know how this binary works out for you. Thanks!
Comment by Richard Wharton [ 13/Nov/12 ]
Thanks. I am now up and running.

PHP Version => 5.3.17
Compiler => MSVC9 (Visual C++ 2008)
Thread Safety => enabled
Host => i386-pc-win32

couchbase support => enabled
couchbase.compression_factor => 1.3 => 1.3
couchbase.compression_threshold => 2000 => 2000
couchbase.compressor => none => none
couchbase.durability_default_poll_interval => 100000 => 100000
couchbase.durability_default_timeout => 4000000 => 4000000
couchbase.serializer => php => php
Comment by Mark Nunberg [ 13/Nov/12 ]
reopening to upload modified binary
Comment by Trond Norbye [ 14/Nov/12 ]
Mark: could you post information about:
1. the php source code used
2. the configure options

THat'll make it easier to reproduce the setup
Comment by Mark Nunberg [ 14/Nov/12 ]
http://windows.php.net/downloads/releases/php-5.3.18-src.zip

configure options: --disable-all --enable-cli --with-couchbase=shared --with-json (or is it --enable-json).

I needed to modify the php couchbase source to compile json (changeset pending) on win32; as the normal header/config checking did not do the trick.
Comment by Trond Norbye [ 02/Apr/13 ]
This is obsolete (and a duplicate of the one we've got to support windows)




[PCBC-95] new() function docs is missing the $bucket parameter: Created: 10/Aug/12  Updated: 11/Dec/12  Resolved: 15/Nov/12

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

Type: Bug Priority: Critical
Reporter: Tim Smith (Inactive) Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Couchbase lib 1.0.4

Issue Links:
Duplicate
is duplicated by PCBC-94 new() function docs is missing the $b... Resolved

 Description   
These docs are incorrect: http://www.couchbase.com/docs/couchbase-sdk-php-1.0/api-reference-summary.html

It says: "$object->new Couchbase($url, $username, $password [, $persistent ])"

It should say

 Comments   
Comment by Tim Smith (Inactive) [ 10/Aug/12 ]
Sorry, it got submitted accidentally. It should say:

$object->new Couchbase($url [ , $username, $password, $bucket, $persistent ])

That is, all the parameters are optional after $url. And the $bucket parameter is missing in the current docs.

Comment by kzeller [ 15/Nov/12 ]
So I think this is the fix that should be applied to both 1.0 and 1.1:

    <derivative lang="php">

      <dcall call="new Couchbase" id="new_couchbase">

        <args>

          <argument inherit="url"/>

         <argument inherit="username" optional="yes"/>

         <argument inherit="password" optional="yes"/>
        
         <argument inherit="bucket" optional="yes"/>

          <argument inherit="persistent" optional="yes"/>

        </args>

      </dcall>

    </derivative>


So here is the added bucket option and the three parameters are now optional.
Comment by kzeller [ 15/Nov/12 ]
I think this is the fix for both 1.0 and 1.1:

    <derivative lang="php">

      <dcall call="new Couchbase" id="new_couchbase">

        <args>

          <argument inherit="url"/>

         <argument inherit="username" optional="yes"/>

         <argument inherit="password" optional="yes"/>
        
         <argument inherit="bucket" optional="yes"/>

          <argument inherit="persistent" optional="yes"/>

        </args>

      </dcall>

    </derivative>


So here is the added bucket option and the three parameters are now optional.




[PCBC-80] Stable binary releases depends on preview libcouchbase libraries Created: 28/Jun/12  Updated: 07/Nov/12  Resolved: 07/Nov/12

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

Type: Bug Priority: Critical
Reporter: Sergey Avseyev Assignee: Matt Ingenthron
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Looks like stable binary releases carry dependency on fresh libcouchbase builds. They should be linked against stable libcouchbase




[PCBC-72] getDelayed seems to return a Boolean not a "string (Binary object)" as the docs state Created: 13/Jun/12  Updated: 26/Aug/13  Resolved: 27/Nov/12

Status: Closed
Project: Couchbase PHP client library
Component/s: docs, library
Affects Version/s: 1.0.3
Fix Version/s: 1.1.0
Security Level: Public

Type: Bug Priority: Critical
Reporter: Benjamin Young Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
I'm not sure if this is a doc error or a code error, but the documentation for getDelayed [1] states it returns a "string (Binary object)" when in fact it returns a Boolean.

The return of a Boolean is likely the intended response as getDelayed implies the use of a callback.

I've marked this issue as being related to both docs & library, though, in case I've missed something.

[1] http://www.couchbase.com/docs/couchbase-sdk-php-1.0/api-reference-retrieve.html#table-couchbase-sdk_php_get-delayed

 Comments   
Comment by Matt Ingenthron [ 07/Nov/12 ]
Mark: Please determine if this issue is still valid and help me triage it into the appropriate release. I've assigned it to you for triage, not necessarily to fix it.
Comment by Matt Ingenthron [ 12/Nov/12 ]
Trond: Since this may be just a matter of getting correct documentation, I'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.

If it's a documentation fix that's needed, let's pass it along to Karen.

If you're unsure what was originally intended, it may make sense to look at pecl-memcached.
Comment by Trond Norbye [ 27/Nov/12 ]
According to the code (and the documentation for pecl::memcached:getDelayed) it should return a boolean value.
Comment by kzeller [ 27/Nov/12 ]
I think this fixes it:

      <dcall id="get-delayed" call="getDelayed" inherit="none">

        <m_title>
          Get a key to be fetched later
        </m_title>

        <args>

          <argument inherit="keyn"/>

          <argument inherit="with_cas" optional="yes"/>

          <argument inherit="callback" optional="yes"/>

        </args>
       <return inherit="boolean"/>
      </dcall>
Comment by kzeller [ 27/Nov/12 ]
    <dcall id="get-delayed" call="getDelayed" inherit="none">

        <m_title>
          Get a key to be fetched later
        </m_title>

        <args>

          <argument inherit="keyn"/>

          <argument inherit="with_cas" optional="yes"/>

          <argument inherit="callback" optional="yes"/>

        </args>
       <return inherit="boolean"/>
      </dcall>




[PCBC-248] Autodocs available for v1.1.5 of PHP extension Created: 24/Sep/13  Updated: 07/Oct/13  Resolved: 27/Sep/13

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

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

Attachments: Zip Archive autodocs-php-1.1.5.zip    
Issue Links:
Relates to
relates to PCBC-243 Generate autodocs for PHP Closed

 Description   
The autodocs for version 1.1.5 of the PHP extension have been generated and are attached. They should be uploaded to the autodocs site.

 Comments   
Comment by Matt Ingenthron [ 27/Sep/13 ]
http://www.couchbase.com/autodocs/couchbase-php-client-1.1.5/
Comment by Amy Kurtzman [ 07/Oct/13 ]
PHP API documentation has been uploaded.




[PCBC-234] anil Created: 14/May/13  Updated: 14/May/13  Resolved: 14/May/13

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

Type: Task Priority: Major
Reporter: Anonymous Assignee: Trond Norbye
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by kzeller [ 14/May/13 ]
error!
Comment by kzeller [ 14/May/13 ]
error!




[PCBC-205] couchbase_res->rc not set on view execute failure Created: 18/Feb/13  Updated: 02/Apr/13  Resolved: 02/Apr/13

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

Type: Task Priority: Major
Reporter: Tim Smith (Inactive) Assignee: Matt Ingenthron
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: php-ext-couchbase git master @9a301ada0bf7


 Description   
In views.c in php_couchbase_view_impl(), the couchbase_res->rc result code is last set in case the lcb_timer can't be created. But it is not set in case of any further failures in actually processing the view results.

I expect it to clear the flag (set it to LCB_SUCCESS) on success, and set it to some meaningful error code in the failure branches:

https://github.com/couchbase/php-ext-couchbase/blob/cf70968ed3f0c781e75e4cc43de6c561019b459d/views.c#L357

https://github.com/couchbase/php-ext-couchbase/blob/cf70968ed3f0c781e75e4cc43de6c561019b459d/views.c#L369


 Comments   
Comment by Trond Norbye [ 02/Apr/13 ]
the rc value is set in the callback for other errors.




[PCBC-176] move .[ch] files to src Created: 01/Jan/13  Updated: 08/Mar/13  Resolved: 08/Mar/13

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

Type: Improvement Priority: Major
Reporter: Trond Norbye Assignee: Matt Ingenthron
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The toplevel directory is getting pretty crowded and its hard to locate files.. Its easier to navigate through the stuff if they're all located in a separate directory.

 Comments   
Comment by Trond Norbye [ 08/Mar/13 ]
Seems to be hard to make it work on windows... we could leave just "one" of the files in the directory to work around the windows problems, but let's do that on a day when we don't have any better things to do...




[PCBC-169] PHP 5.2 w/ 1.1.1 client doesn't connect to "default" bucket, named bucket works OK Created: 18/Dec/12  Updated: 03/Jan/13  Resolved: 03/Jan/13

Status: Closed
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: Tim Smith (Inactive) Assignee: Matt Ingenthron
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: CentOS 5.8, PHP 5.2.17 binary from jason repo, libcouchbase 2.0.1 and friends, libevent 1.4.13, php-ext-couchbase built from git master branch (git pull; git clean -fdx; phpize; ./configure; cp modules/couchbase.so /usr/lib64/php/modules/)


 Description   
A simple test program fails when accessing the default bucket, but works OK when using a different bucket with either no password or a set password.

Telnet localhost 11211 and using get and set works OK.

Sample program is:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Couchbase Server PHP Test</title>
</head>
<body>

<p>
<?php

$cb = new Couchbase("127.0.0.1:8091", "Administrator", "password", "default");
$cb->set("a", "OSDIFOISJDFOIJ");

echo("The value for 'a' is: ");
var_dump($cb->get("a"));

?>
</p>
</body>
</html>

Changing "default" to "xyz" works (both are Couchbase buckets on the same cluster).


Failure looks like:

# php cb2.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Couchbase Server PHP Test</title>
</head>
<body>

<p>
PHP Fatal error: Uncaught exception 'CouchbaseLibcouchbaseException' with message 'Failed to store value to server: Network error' in /usr/share/nginx/html/cb2.php:13
Stack trace:
#0 /usr/share/nginx/html/cb2.php(13): Couchbase->set('a', 'OSDIFOISJDFOIJ')
#1 {main}
  thrown in /usr/share/nginx/html/cb2.php on line 13


[root@localhost html]# strace php cb2.php
execve("/usr/bin/php", ["php", "cb2.php"], [/* 22 vars */]) = 0
brk(0) = 0x1ab3f000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb80cc6000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb80cc7000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=71066, ...}) = 0
mmap(NULL, 71066, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2afb80cc8000
close(3) = 0
open("/lib64/libcrypt.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\t\240=1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=48600, ...}) = 0
mmap(0x313da00000, 2322880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x313da00000
mprotect(0x313da09000, 2093056, PROT_NONE) = 0
mmap(0x313dc08000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0x313dc08000
mmap(0x313dc0a000, 184768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x313dc0a000
close(3) = 0
open("/usr/lib64/libreadline.so.5", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\2209\201.1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=247544, ...}) = 0
mmap(0x312e800000, 2345400, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x312e800000
mprotect(0x312e835000, 2093056, PROT_NONE) = 0
mmap(0x312ea34000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x34000) = 0x312ea34000
mmap(0x312ea3c000, 2488, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x312ea3c000
close(3) = 0
open("/usr/lib64/libncurses.so.5", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\375\341?1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=380336, ...}) = 0
mmap(0x313fe00000, 2476872, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x313fe00000
mprotect(0x313fe4e000, 2097152, PROT_NONE) = 0
mmap(0x314004e000, 57344, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4e000) = 0x314004e000
mmap(0x314005c000, 2888, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x314005c000
close(3) = 0
open("/usr/lib64/libgmp.so.3", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0pr\340:1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=236392, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb80cda000
mmap(0x313ae00000, 2329440, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x313ae00000
mprotect(0x313ae38000, 2097152, PROT_NONE) = 0
mmap(0x313b038000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x38000) = 0x313b038000
close(3) = 0
open("/usr/lib64/libcurl.so.3", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \260\34061\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=252456, ...}) = 0
mmap(0x3136e00000, 2345576, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3136e00000
mprotect(0x3136e3b000, 2097152, PROT_NONE) = 0
mmap(0x313703b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3b000) = 0x313703b000
close(3) = 0
open("/usr/lib64/libbz2.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\26\240A1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=67792, ...}) = 0
mmap(0x3141a00000, 2160784, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3141a00000
mprotect(0x3141a0f000, 2093056, PROT_NONE) = 0
mmap(0x3141c0e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe000) = 0x3141c0e000
close(3) = 0
open("/lib64/libz.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\36\300-1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=85544, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb80cdb000
mmap(0x312dc00000, 2178544, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x312dc00000
mprotect(0x312dc14000, 2093056, PROT_NONE) = 0
mmap(0x312de13000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13000) = 0x312de13000
close(3) = 0
open("/lib64/libpcre.so.0", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\35@.1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=129984, ...}) = 0
mmap(0x312e400000, 2222984, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x312e400000
mprotect(0x312e41e000, 2097152, PROT_NONE) = 0
mmap(0x312e61e000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1e000) = 0x312e61e000
close(3) = 0
open("/lib64/librt.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \"@.1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=53448, ...}) = 0
mmap(0x312e400000, 2132936, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2afb80cdc000
mprotect(0x2afb80ce3000, 2097152, PROT_NONE) = 0
mmap(0x2afb80ee3000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x2afb80ee3000
close(3) = 0
open("/lib64/libresolv.so.2", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0203\24051\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=92816, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb80ee5000
mmap(0x3135a00000, 2181896, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3135a00000
mprotect(0x3135a11000, 2097152, PROT_NONE) = 0
mmap(0x3135c11000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11000) = 0x3135c11000
mmap(0x3135c13000, 6920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3135c13000
close(3) = 0
open("/lib64/libm.so.6", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`>@-1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=614992, ...}) = 0
mmap(0x312d400000, 2629816, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x312d400000
mprotect(0x312d482000, 2093056, PROT_NONE) = 0
mmap(0x312d681000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x81000) = 0x312d681000
close(3) = 0
open("/lib64/libdl.so.2", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\16\200-1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=23360, ...}) = 0
mmap(0x312d800000, 2109696, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x312d800000
mprotect(0x312d802000, 2097152, PROT_NONE) = 0
mmap(0x312da02000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x312da02000
close(3) = 0
open("/lib64/libnsl.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240@`51\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=114352, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb80ee6000
mmap(0x3135600000, 2194096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3135600000
mprotect(0x3135615000, 2093056, PROT_NONE) = 0
mmap(0x3135814000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0x3135814000
mmap(0x3135816000, 6832, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3135816000
close(3) = 0
open("/usr/lib64/libxml2.so.2", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\262\24271\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1297360, ...}) = 0
mmap(0x3137a00000, 3395512, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3137a00000
mprotect(0x3137b34000, 2093056, PROT_NONE) = 0
mmap(0x3137d33000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x133000) = 0x3137d33000
mmap(0x3137d3c000, 4024, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3137d3c000
close(3) = 0
open("/usr/lib64/libgssapi_krb5.so.2", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\222\34071\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=190976, ...}) = 0
mmap(0x3137e00000, 2283888, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3137e00000
mprotect(0x3137e2c000, 2097152, PROT_NONE) = 0
mmap(0x313802c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2c000) = 0x313802c000
close(3) = 0
open("/usr/lib64/libkrb5.so.3", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\222!71\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=613928, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb80ee7000
mmap(0x3137200000, 2706656, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3137200000
mprotect(0x3137291000, 2097152, PROT_NONE) = 0
mmap(0x3137491000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x91000) = 0x3137491000
close(3) = 0
open("/usr/lib64/libk5crypto.so.3", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260V`71\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=153720, ...}) = 0
mmap(0x3137600000, 2247528, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3137600000
mprotect(0x3137624000, 2093056, PROT_NONE) = 0
mmap(0x3137823000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x23000) = 0x3137823000
close(3) = 0
open("/lib64/libcom_err.so.2", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\n 61\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=10096, ...}) = 0
mmap(0x3136200000, 2103144, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3136200000
mprotect(0x3136202000, 2093056, PROT_NONE) = 0
mmap(0x3136401000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x3136401000
close(3) = 0
open("/lib64/libssl.so.6", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000/a91\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=315080, ...}) = 0
mmap(0x3139600000, 2407856, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3139600000
mprotect(0x3139646000, 2097152, PROT_NONE) = 0
mmap(0x3139846000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x46000) = 0x3139846000
close(3) = 0
open("/lib64/libcrypto.so.6", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\232\34551\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1367232, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb80ee8000
mmap(0x3135e00000, 3476304, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3135e00000
mprotect(0x3135f2d000, 2093056, PROT_NONE) = 0
mmap(0x313612c000, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12c000) = 0x313612c000
mmap(0x313614d000, 15184, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x313614d000
close(3) = 0
open("/usr/lib64/libidn.so.11", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p.\24061\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=204600, ...}) = 0
mmap(0x3136a00000, 2297584, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3136a00000
mprotect(0x3136a31000, 2093056, PROT_NONE) = 0
mmap(0x3136c30000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x30000) = 0x3136c30000
close(3) = 0
open("/lib64/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\332\1-1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1718232, ...}) = 0
mmap(0x312d000000, 3498328, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x312d000000
mprotect(0x312d14e000, 2093056, PROT_NONE) = 0
mmap(0x312d34d000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14d000) = 0x312d34d000
mmap(0x312d352000, 16728, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x312d352000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb80ee9000
open("/lib64/libpthread.so.0", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340W\0.1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=145872, ...}) = 0
mmap(0x312e000000, 2204528, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x312e000000
mprotect(0x312e016000, 2093056, PROT_NONE) = 0
mmap(0x312e215000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x312e215000
mmap(0x312e217000, 13168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x312e217000
close(3) = 0
open("/usr/lib64/libkrb5support.so.0", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\" 81\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=35984, ...}) = 0
mmap(0x3138200000, 2128848, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3138200000
mprotect(0x3138208000, 2093056, PROT_NONE) = 0
mmap(0x3138407000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x3138407000
close(3) = 0
open("/lib64/libkeyutils.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\n`61\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=9472, ...}) = 0
mmap(0x3136600000, 2102416, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3136600000
mprotect(0x3136602000, 2093056, PROT_NONE) = 0
mmap(0x3136801000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x3136801000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb80eea000
open("/lib64/libselinux.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340E\24041\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=95464, ...}) = 0
mmap(0x3134a00000, 2192800, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3134a00000
mprotect(0x3134a15000, 2097152, PROT_NONE) = 0
mmap(0x3134c15000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x3134c15000
mmap(0x3134c17000, 1440, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3134c17000
close(3) = 0
open("/lib64/libsepol.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@=`41\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=247496, ...}) = 0
mmap(0x3134600000, 2383168, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3134600000
mprotect(0x313463b000, 2097152, PROT_NONE) = 0
mmap(0x313483b000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3b000) = 0x313483b000
mmap(0x313483c000, 40256, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x313483c000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb80eeb000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb80eec000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb80eed000
arch_prctl(ARCH_SET_FS, 0x2afb80eecfa0) = 0
mprotect(0x312e215000, 4096, PROT_READ) = 0
mprotect(0x312d34d000, 16384, PROT_READ) = 0
mprotect(0x3135814000, 4096, PROT_READ) = 0
mprotect(0x312da02000, 4096, PROT_READ) = 0
mprotect(0x312d681000, 4096, PROT_READ) = 0
mprotect(0x3135c11000, 4096, PROT_READ) = 0
mprotect(0x2afb80ee3000, 4096, PROT_READ) = 0
mprotect(0x313dc08000, 4096, PROT_READ) = 0
mprotect(0x312ce1c000, 4096, PROT_READ) = 0
munmap(0x2afb80cc8000, 71066) = 0
set_tid_address(0x2afb80eed030) = 22680
set_robust_list(0x2afb80eed040, 0x18) = 0
futex(0x7fff57cedecc, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGRTMIN, {0x312e0053c0, [], SA_RESTORER|SA_SIGINFO, 0x312e00ebe0}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x312e0052f0, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x312e00ebe0}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=10240*1024, rlim_max=RLIM_INFINITY}) = 0
access("/etc/selinux/", F_OK) = 0
brk(0) = 0x1ab3f000
brk(0x1ab60000) = 0x1ab60000
open("/etc/selinux/config", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=511, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb80cc8000
read(3, "# This file controls the state o"..., 4096) = 511
read(3, "", 4096) = 0
close(3) = 0
munmap(0x2afb80cc8000, 4096) = 0
open("/proc/mounts", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb80cc8000
read(3, "rootfs / rootfs rw 0 0\n/dev/root"..., 1024) = 497
read(3, "", 1024) = 0
close(3) = 0
munmap(0x2afb80cc8000, 4096) = 0
rt_sigaction(SIGPIPE, {0x1, [PIPE], SA_RESTORER|SA_RESTART, 0x312d0302f0}, {SIG_DFL, [], 0}, 8) = 0
getcwd("/usr/share/nginx/html"..., 4096) = 22
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb80eee000
open("/usr/lib/locale/locale-archive", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=56430272, ...}) = 0
mmap(NULL, 56430272, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2afb80f2f000
close(3) = 0
open("/etc/localtime", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=2819, ...}) = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=2819, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb84500000
read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0"..., 4096) = 2819
lseek(3, -1802, SEEK_CUR) = 1017
read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\5\0\0\0\0"..., 4096) = 1802
close(3) = 0
munmap(0x2afb84500000, 4096) = 0
lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/kerberos", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/kerberos/sbin", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/kerberos/sbin/php", 0x7fff57ce86d0) = -1 ENOENT (No such file or directory)
lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/kerberos", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/kerberos/bin", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/kerberos/bin/php", 0x7fff57ce86d0) = -1 ENOENT (No such file or directory)
lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/local", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/local/sbin", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/local/sbin/php", 0x7fff57ce86d0) = -1 ENOENT (No such file or directory)
lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/local", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/local/bin", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/local/bin/php", 0x7fff57ce86d0) = -1 ENOENT (No such file or directory)
lstat("/sbin", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
lstat("/sbin/php", 0x7fff57ce86d0) = -1 ENOENT (No such file or directory)
lstat("/bin", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/bin/php", 0x7fff57ce86d0) = -1 ENOENT (No such file or directory)
lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/sbin", {st_mode=S_IFDIR|0755, st_size=20480, ...}) = 0
lstat("/usr/sbin/php", 0x7fff57ce86d0) = -1 ENOENT (No such file or directory)
lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/bin", {st_mode=S_IFDIR|0755, st_size=69632, ...}) = 0
lstat("/usr/bin/php", {st_mode=S_IFREG|0755, st_size=3444293, ...}) = 0
access("/usr/bin/php", X_OK) = 0
open("/usr/bin/php-cli.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/php-cli.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/bin/php.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/php.ini", O_RDONLY) = 3
lstat("/etc", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
lstat("/etc/php.ini", {st_mode=S_IFREG|0644, st_size=45804, ...}) = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff57ceb7a0) = -1 ENOTTY (Inappropriate ioctl for device)
fstat(3, {st_mode=S_IFREG|0644, st_size=45804, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb84500000
read(3, "[PHP]\n\n;;;;;;;;;;;;;;;;;;;\n; Abo"..., 8192) = 8192
read(3, "brary\n; Valid values for this op"..., 8192) = 8192
read(3, "production web sites,\n; you're s"..., 8192) = 8192
read(3, "et to 1 if running under IIS. D"..., 8192) = 8192
read(3, "istent = -1\n\n; Maximum number of"..., 8192) = 8192
read(3, "ct timeout\n;mssql.connect_timeou"..., 8192) = 4844
read(3, "", 4096) = 0
read(3, "", 8192) = 0
close(3) = 0
munmap(0x2afb84500000, 4096) = 0
open("/etc/php.d", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 3
fcntl(3, F_SETFD, FD_CLOEXEC) = 0
getdents(3, /* 7 entries */, 32768) = 216
getdents(3, /* 0 entries */, 32768) = 0
close(3) = 0
stat("/etc/php.d/dbase.ini", {st_mode=S_IFREG|0644, st_size=51, ...}) = 0
open("/etc/php.d/dbase.ini", O_RDONLY) = 3
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff57ceb7a0) = -1 ENOTTY (Inappropriate ioctl for device)
fstat(3, {st_mode=S_IFREG|0644, st_size=51, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb84500000
read(3, "; Enable dbase extension module\n"..., 8192) = 51
read(3, "", 4096) = 0
read(3, "", 8192) = 0
close(3) = 0
munmap(0x2afb84500000, 4096) = 0
stat("/etc/php.d/json.ini", {st_mode=S_IFREG|0644, st_size=49, ...}) = 0
open("/etc/php.d/json.ini", O_RDONLY) = 3
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff57ceb7a0) = -1 ENOTTY (Inappropriate ioctl for device)
fstat(3, {st_mode=S_IFREG|0644, st_size=49, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb84500000
read(3, "; Enable json extension module\ne"..., 8192) = 49
read(3, "", 4096) = 0
read(3, "", 8192) = 0
close(3) = 0
munmap(0x2afb84500000, 4096) = 0
stat("/etc/php.d/zip.ini", {st_mode=S_IFREG|0644, st_size=47, ...}) = 0
open("/etc/php.d/zip.ini", O_RDONLY) = 3
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff57ceb7a0) = -1 ENOTTY (Inappropriate ioctl for device)
fstat(3, {st_mode=S_IFREG|0644, st_size=47, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb84500000
read(3, "; Enable zip extension module\nex"..., 8192) = 47
read(3, "", 4096) = 0
read(3, "", 8192) = 0
close(3) = 0
munmap(0x2afb84500000, 4096) = 0
stat("/etc/php.d/zzz-couchbase.ini", {st_mode=S_IFREG|0644, st_size=182, ...}) = 0
open("/etc/php.d/zzz-couchbase.ini", O_RDONLY) = 3
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff57ceb7a0) = -1 ENOTTY (Inappropriate ioctl for device)
fstat(3, {st_mode=S_IFREG|0644, st_size=182, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb84500000
read(3, "; Couchbase relies on JSON, whic"..., 8192) = 182
read(3, "", 4096) = 0
read(3, "", 8192) = 0
close(3) = 0
munmap(0x2afb84500000, 4096) = 0
brk(0x1ab81000) = 0x1ab81000
brk(0x1aba2000) = 0x1aba2000
brk(0x1abc3000) = 0x1abc3000
futex(0x312da030ec, FUTEX_WAKE_PRIVATE, 2147483647) = 0
open("/usr/lib64/php/modules/dbase.so", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300'\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=145168, ...}) = 0
mmap(NULL, 2128992, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2afb84500000
mprotect(0x2afb84507000, 2097152, PROT_NONE) = 0
mmap(0x2afb84707000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x2afb84707000
close(3) = 0
open("/usr/lib64/php/modules/json.so", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\21\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=104303, ...}) = 0
mmap(NULL, 2123984, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2afb84708000
mprotect(0x2afb8470f000, 2093056, PROT_NONE) = 0
mmap(0x2afb8490e000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x2afb8490e000
close(3) = 0
open("/usr/lib64/php/modules/zip.so", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20L\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=841893, ...}) = 0
mmap(NULL, 2168952, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2afb8490f000
mprotect(0x2afb84920000, 2093056, PROT_NONE) = 0
mmap(0x2afb84b1f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x10000) = 0x2afb84b1f000
close(3) = 0
open("/usr/lib64/php/modules/couchbase.so", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\205\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=737887, ...}) = 0
mmap(NULL, 2246712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2afb84b21000
mprotect(0x2afb84b41000, 2093056, PROT_NONE) = 0
mmap(0x2afb84d40000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1f000) = 0x2afb84d40000
close(3) = 0
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=71066, ...}) = 0
mmap(NULL, 71066, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2afb84d46000
close(3) = 0
open("/usr/lib64/libcouchbase.so.2", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240+\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=118552, ...}) = 0
mmap(NULL, 2213816, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2afb84d58000
mprotect(0x2afb84d74000, 2097152, PROT_NONE) = 0
mmap(0x2afb84f74000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c000) = 0x2afb84f74000
close(3) = 0
munmap(0x2afb84d46000, 71066) = 0
futex(0x3137d3ccb8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
open("/proc/sys/crypto/fips_enabled", O_RDONLY) = 3
read(3, "0\n", 2) = 2
close(3) = 0
brk(0x1abe4000) = 0x1abe4000
brk(0x1ac05000) = 0x1ac05000
brk(0x1ac27000) = 0x1ac27000
brk(0x1ac48000) = 0x1ac48000
brk(0x1ac69000) = 0x1ac69000
open("/etc/nsswitch.conf", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=1696, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb84d46000
read(3, "#\n# /etc/nsswitch.conf\n#\n# An ex"..., 4096) = 1696
read(3, "", 4096) = 0
close(3) = 0
munmap(0x2afb84d46000, 4096) = 0
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=71066, ...}) = 0
mmap(NULL, 71066, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2afb84d46000
close(3) = 0
open("/lib64/libnss_files.so.2", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\37\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=53880, ...}) = 0
mmap(NULL, 2139432, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2afb84f75000
mprotect(0x2afb84f7f000, 2093056, PROT_NONE) = 0
mmap(0x2afb8517e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x9000) = 0x2afb8517e000
close(3) = 0
mprotect(0x2afb8517e000, 4096, PROT_READ) = 0
munmap(0x2afb84d46000, 71066) = 0
open("/etc/protocols", O_RDONLY) = 3
fcntl(3, F_GETFD) = 0
fcntl(3, F_SETFD, FD_CLOEXEC) = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=6108, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb84d46000
read(3, "# /etc/protocols:\n# $Id: protoco"..., 4096) = 4096
close(3) = 0
munmap(0x2afb84d46000, 4096) = 0
open("/etc/protocols", O_RDONLY) = 3
fcntl(3, F_GETFD) = 0
fcntl(3, F_SETFD, FD_CLOEXEC) = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=6108, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb84d46000
read(3, "# /etc/protocols:\n# $Id: protoco"..., 4096) = 4096
close(3) = 0
munmap(0x2afb84d46000, 4096) = 0
brk(0x1ac8a000) = 0x1ac8a000
brk(0x1acab000) = 0x1acab000
munmap(0x2afb80eee000, 266240) = 0
brk(0x1acee000) = 0x1acee000
open("cb2.php", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=316, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb80eee000
read(3, "<!DOCTYPE html>\n<html>\n<head>\n<m"..., 4096) = 316
lseek(3, 0, SEEK_SET) = 0
fstat(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0
fstat(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0
fstat(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb80eef000
lseek(0, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2afb80ef0000
lseek(1, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
fstat(2, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0
fstat(2, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0
lseek(2, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
getcwd("/usr/share/nginx/html"..., 4096) = 22
lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/share", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
lstat("/usr/share/nginx", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/share/nginx/html", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/share/nginx/html/cb2.php", {st_mode=S_IFREG|0644, st_size=316, ...}) = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff57ceb6a0) = -1 ENOTTY (Inappropriate ioctl for device)
read(3, "<!DOCTYPE html>\n<html>\n<head>\n<m"..., 8192) = 316
read(3, "", 4096) = 0
read(3, "", 8192) = 0
close(3) = 0
munmap(0x2afb80eee000, 4096) = 0
write(1, "<!DOCTYPE html>\n<html>\n<head>\n<m"..., 114<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Couchbase Server PHP Test</title>
</head>
<body>

<p>
) = 114
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=71066, ...}) = 0
mmap(NULL, 71066, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2afb80ef1000
close(3) = 0
open("/usr/lib64/libcouchbase_libevent.so", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\n\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=8456, ...}) = 0
mmap(NULL, 2103848, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2afb85180000
mprotect(0x2afb85182000, 2093056, PROT_NONE) = 0
mmap(0x2afb85381000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x2afb85381000
close(3) = 0
open("/usr/lib64/libevent-1.4.so.2", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 S\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=104296, ...}) = 0
mmap(NULL, 2202288, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2afb85382000
mprotect(0x2afb8539b000, 2093056, PROT_NONE) = 0
mmap(0x2afb8559a000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18000) = 0x2afb8559a000
mmap(0x2afb8559b000, 2736, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2afb8559b000
close(3) = 0
munmap(0x2afb80ef1000, 71066) = 0
clock_gettime(CLOCK_MONOTONIC, {4067255, 857211209}) = 0
clock_gettime(CLOCK_MONOTONIC, {4067255, 857249209}) = 0
getuid() = 0
geteuid() = 0
getgid() = 0
getegid() = 0
epoll_create(32000) = 3
fcntl(3, F_SETFD, FD_CLOEXEC) = 0
socketpair(PF_FILE, SOCK_STREAM, 0, [4, 5]) = 0
fcntl(4, F_SETFD, FD_CLOEXEC) = 0
fcntl(5, F_SETFD, FD_CLOEXEC) = 0
fcntl(4, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
getuid() = 0
geteuid() = 0
getgid() = 0
getegid() = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 6
fcntl(6, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
connect(6, {sa_family=AF_INET, sin_port=htons(8091), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress)
epoll_ctl(3, EPOLL_CTL_ADD, 6, {EPOLLOUT, {u32=6, u64=6}}) = 0
clock_gettime(CLOCK_MONOTONIC, {4067255, 858084209}) = 0
clock_gettime(CLOCK_MONOTONIC, {4067255, 858118209}) = 0
clock_gettime(CLOCK_MONOTONIC, {4067255, 858149209}) = 0
epoll_wait(3, {{EPOLLOUT, {u32=6, u64=6}}}, 32, 2500) = 1
clock_gettime(CLOCK_MONOTONIC, {4067255, 858217209}) = 0
connect(6, {sa_family=AF_INET, sin_port=htons(8091), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
epoll_ctl(3, EPOLL_CTL_DEL, 6, {EPOLLOUT, {u32=6, u64=6}}) = 0
epoll_ctl(3, EPOLL_CTL_ADD, 6, {EPOLLIN|EPOLLOUT, {u32=6, u64=6}}) = 0
epoll_wait(3, {{EPOLLOUT, {u32=6, u64=6}}}, 32, 2500) = 1
clock_gettime(CLOCK_MONOTONIC, {4067255, 858428209}) = 0
sendto(6, "GET /pools/default/bucketsStream"..., 111, 0, NULL, 0) = 111
epoll_ctl(3, EPOLL_CTL_DEL, 6, {EPOLLIN|EPOLLOUT, {u32=6, u64=6}}) = 0
epoll_ctl(3, EPOLL_CTL_ADD, 6, {EPOLLIN, {u32=6, u64=6}}) = 0
epoll_wait(3, {{EPOLLIN, {u32=6, u64=6}}}, 32, 2500) = 1
clock_gettime(CLOCK_MONOTONIC, {4067255, 861110209}) = 0
recvfrom(6, "HTTP/1.1 200 OK\r\nTransfer-Encodi"..., 2048, 0, NULL, NULL) = 225
epoll_wait(3, {{EPOLLIN, {u32=6, u64=6}}}, 32, 2497) = 1
clock_gettime(CLOCK_MONOTONIC, {4067255, 871991209}) = 0
recvfrom(6, "1c18\r\n{\"name\":\"default\",\"bucketT"..., 2048, 0, NULL, NULL) = 2048
recvfrom(6, "[0,1],[0,1],[0,1],[0,1],[0,1],[0"..., 2048, 0, NULL, NULL) = 2048
recvfrom(6, ",1],[0,1],[0,1],[0,1],[0,1],[1,0"..., 4096, 0, NULL, NULL) = 3113
brk(0x1ad0f000) = 0x1ad0f000
brk(0x1ad30000) = 0x1ad30000
socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 7
fcntl(7, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
connect(7, {sa_family=AF_INET, sin_port=htons(11210), sin_addr=inet_addr("10.4.2.14")}, 16) = -1 EINPROGRESS (Operation now in progress)
epoll_ctl(3, EPOLL_CTL_ADD, 7, {EPOLLOUT, {u32=7, u64=7}}) = 0
clock_gettime(CLOCK_MONOTONIC, {4067255, 878724209}) = 0
clock_gettime(CLOCK_MONOTONIC, {4067255, 878759209}) = 0
clock_gettime(CLOCK_MONOTONIC, {4067255, 878791209}) = 0
clock_gettime(CLOCK_MONOTONIC, {4067255, 878822209}) = 0
epoll_wait(3, {{EPOLLOUT, {u32=7, u64=7}}}, 32, 2500) = 1
clock_gettime(CLOCK_MONOTONIC, {4067255, 878891209}) = 0
connect(7, {sa_family=AF_INET, sin_port=htons(11210), sin_addr=inet_addr("10.4.2.14")}, 16) = 0
getsockname(7, {sa_family=AF_INET, sin_port=htons(53246), sin_addr=inet_addr("10.4.2.14")}, [9599484487629013008]) = 0
getpeername(7, {sa_family=AF_INET, sin_port=htons(11210), sin_addr=inet_addr("10.4.2.14")}, [9599484487629013008]) = 0
sendmsg(7, {msg_name(0)=NULL, msg_iov(1)=[{"\200\1\0\1\10\0\0\267\0\0\0\27\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 47}], msg_controllen=0, msg_flags=0}, 0) = 47
epoll_ctl(3, EPOLL_CTL_DEL, 7, {EPOLLOUT, {u32=7, u64=7}}) = 0
epoll_ctl(3, EPOLL_CTL_ADD, 7, {EPOLLIN, {u32=7, u64=7}}) = 0
epoll_wait(3, {{EPOLLIN, {u32=7, u64=7}}}, 32, 2500) = 1
clock_gettime(CLOCK_MONOTONIC, {4067255, 879412209}) = 0
recvmsg(7, {msg_name(0)=NULL, msg_iov(1)=[{"\35015-1\0\0\0\35015-1\0\0\0ph\315\32\0\0\0\0ph\315\32\0\0\0\0"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 0
epoll_ctl(3, EPOLL_CTL_DEL, 7, {EPOLLIN, {u32=7, u64=7}}) = 0
close(7) = 0
write(2, "PHP Fatal error: Uncaught excep"..., 320PHP Fatal error: Uncaught exception 'CouchbaseLibcouchbaseException' with message 'Failed to store value to server: Network error' in /usr/share/nginx/html/cb2.php:13
Stack trace:
#0 /usr/share/nginx/html/cb2.php(13): Couchbase->set('a', 'OSDIFOISJDFOIJ')
#1 {main}
  thrown in /usr/share/nginx/html/cb2.php on line 13
) = 320
epoll_ctl(3, EPOLL_CTL_DEL, 6, {EPOLLIN, {u32=6, u64=6}}) = 0
close(6) = 0
close(4) = 0
close(5) = 0
close(3) = 0
munmap(0x2afb85180000, 2103848) = 0
munmap(0x2afb85382000, 2202288) = 0
close(2) = 0
close(1) = 0
munmap(0x2afb80ef0000, 4096) = 0
close(0) = 0
munmap(0x2afb80eef000, 4096) = 0
munmap(0x2afb84b21000, 2246712) = 0
munmap(0x2afb84d58000, 2213816) = 0
munmap(0x2afb8490f000, 2168952) = 0
munmap(0x2afb84708000, 2123984) = 0
munmap(0x2afb84500000, 2128992) = 0
brk(0x1ac88000) = 0x1ac88000
exit_group(255) = ?
[root@localhost html]#


And successful run with "xyz":

[root@localhost html]# strace php cb2.php
execve("/usr/bin/php", ["php", "cb2.php"], [/* 22 vars */]) = 0
brk(0) = 0x8baf000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55bf37000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55bf38000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=71066, ...}) = 0
mmap(NULL, 71066, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2af55bf39000
close(3) = 0
open("/lib64/libcrypt.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\t\240=1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=48600, ...}) = 0
mmap(0x313da00000, 2322880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x313da00000
mprotect(0x313da09000, 2093056, PROT_NONE) = 0
mmap(0x313dc08000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0x313dc08000
mmap(0x313dc0a000, 184768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x313dc0a000
close(3) = 0
open("/usr/lib64/libreadline.so.5", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\2209\201.1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=247544, ...}) = 0
mmap(0x312e800000, 2345400, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x312e800000
mprotect(0x312e835000, 2093056, PROT_NONE) = 0
mmap(0x312ea34000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x34000) = 0x312ea34000
mmap(0x312ea3c000, 2488, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x312ea3c000
close(3) = 0
open("/usr/lib64/libncurses.so.5", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\375\341?1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=380336, ...}) = 0
mmap(0x313fe00000, 2476872, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x313fe00000
mprotect(0x313fe4e000, 2097152, PROT_NONE) = 0
mmap(0x314004e000, 57344, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4e000) = 0x314004e000
mmap(0x314005c000, 2888, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x314005c000
close(3) = 0
open("/usr/lib64/libgmp.so.3", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0pr\340:1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=236392, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55bf4b000
mmap(0x313ae00000, 2329440, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x313ae00000
mprotect(0x313ae38000, 2097152, PROT_NONE) = 0
mmap(0x313b038000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x38000) = 0x313b038000
close(3) = 0
open("/usr/lib64/libcurl.so.3", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \260\34061\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=252456, ...}) = 0
mmap(0x3136e00000, 2345576, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3136e00000
mprotect(0x3136e3b000, 2097152, PROT_NONE) = 0
mmap(0x313703b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3b000) = 0x313703b000
close(3) = 0
open("/usr/lib64/libbz2.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\26\240A1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=67792, ...}) = 0
mmap(0x3141a00000, 2160784, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3141a00000
mprotect(0x3141a0f000, 2093056, PROT_NONE) = 0
mmap(0x3141c0e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe000) = 0x3141c0e000
close(3) = 0
open("/lib64/libz.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\36\300-1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=85544, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55bf4c000
mmap(0x312dc00000, 2178544, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x312dc00000
mprotect(0x312dc14000, 2093056, PROT_NONE) = 0
mmap(0x312de13000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13000) = 0x312de13000
close(3) = 0
open("/lib64/libpcre.so.0", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\35@.1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=129984, ...}) = 0
mmap(0x312e400000, 2222984, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x312e400000
mprotect(0x312e41e000, 2097152, PROT_NONE) = 0
mmap(0x312e61e000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1e000) = 0x312e61e000
close(3) = 0
open("/lib64/librt.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \"@.1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=53448, ...}) = 0
mmap(0x312e400000, 2132936, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2af55bf4d000
mprotect(0x2af55bf54000, 2097152, PROT_NONE) = 0
mmap(0x2af55c154000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x2af55c154000
close(3) = 0
open("/lib64/libresolv.so.2", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0203\24051\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=92816, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55c156000
mmap(0x3135a00000, 2181896, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3135a00000
mprotect(0x3135a11000, 2097152, PROT_NONE) = 0
mmap(0x3135c11000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11000) = 0x3135c11000
mmap(0x3135c13000, 6920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3135c13000
close(3) = 0
open("/lib64/libm.so.6", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`>@-1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=614992, ...}) = 0
mmap(0x312d400000, 2629816, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x312d400000
mprotect(0x312d482000, 2093056, PROT_NONE) = 0
mmap(0x312d681000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x81000) = 0x312d681000
close(3) = 0
open("/lib64/libdl.so.2", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\16\200-1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=23360, ...}) = 0
mmap(0x312d800000, 2109696, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x312d800000
mprotect(0x312d802000, 2097152, PROT_NONE) = 0
mmap(0x312da02000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x312da02000
close(3) = 0
open("/lib64/libnsl.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240@`51\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=114352, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55c157000
mmap(0x3135600000, 2194096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3135600000
mprotect(0x3135615000, 2093056, PROT_NONE) = 0
mmap(0x3135814000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0x3135814000
mmap(0x3135816000, 6832, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3135816000
close(3) = 0
open("/usr/lib64/libxml2.so.2", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\262\24271\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1297360, ...}) = 0
mmap(0x3137a00000, 3395512, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3137a00000
mprotect(0x3137b34000, 2093056, PROT_NONE) = 0
mmap(0x3137d33000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x133000) = 0x3137d33000
mmap(0x3137d3c000, 4024, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3137d3c000
close(3) = 0
open("/usr/lib64/libgssapi_krb5.so.2", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\222\34071\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=190976, ...}) = 0
mmap(0x3137e00000, 2283888, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3137e00000
mprotect(0x3137e2c000, 2097152, PROT_NONE) = 0
mmap(0x313802c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2c000) = 0x313802c000
close(3) = 0
open("/usr/lib64/libkrb5.so.3", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\222!71\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=613928, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55c158000
mmap(0x3137200000, 2706656, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3137200000
mprotect(0x3137291000, 2097152, PROT_NONE) = 0
mmap(0x3137491000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x91000) = 0x3137491000
close(3) = 0
open("/usr/lib64/libk5crypto.so.3", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260V`71\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=153720, ...}) = 0
mmap(0x3137600000, 2247528, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3137600000
mprotect(0x3137624000, 2093056, PROT_NONE) = 0
mmap(0x3137823000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x23000) = 0x3137823000
close(3) = 0
open("/lib64/libcom_err.so.2", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\n 61\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=10096, ...}) = 0
mmap(0x3136200000, 2103144, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3136200000
mprotect(0x3136202000, 2093056, PROT_NONE) = 0
mmap(0x3136401000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x3136401000
close(3) = 0
open("/lib64/libssl.so.6", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000/a91\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=315080, ...}) = 0
mmap(0x3139600000, 2407856, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3139600000
mprotect(0x3139646000, 2097152, PROT_NONE) = 0
mmap(0x3139846000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x46000) = 0x3139846000
close(3) = 0
open("/lib64/libcrypto.so.6", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\232\34551\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1367232, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55c159000
mmap(0x3135e00000, 3476304, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3135e00000
mprotect(0x3135f2d000, 2093056, PROT_NONE) = 0
mmap(0x313612c000, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12c000) = 0x313612c000
mmap(0x313614d000, 15184, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x313614d000
close(3) = 0
open("/usr/lib64/libidn.so.11", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p.\24061\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=204600, ...}) = 0
mmap(0x3136a00000, 2297584, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3136a00000
mprotect(0x3136a31000, 2093056, PROT_NONE) = 0
mmap(0x3136c30000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x30000) = 0x3136c30000
close(3) = 0
open("/lib64/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\332\1-1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1718232, ...}) = 0
mmap(0x312d000000, 3498328, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x312d000000
mprotect(0x312d14e000, 2093056, PROT_NONE) = 0
mmap(0x312d34d000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14d000) = 0x312d34d000
mmap(0x312d352000, 16728, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x312d352000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55c15a000
open("/lib64/libpthread.so.0", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340W\0.1\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=145872, ...}) = 0
mmap(0x312e000000, 2204528, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x312e000000
mprotect(0x312e016000, 2093056, PROT_NONE) = 0
mmap(0x312e215000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x312e215000
mmap(0x312e217000, 13168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x312e217000
close(3) = 0
open("/usr/lib64/libkrb5support.so.0", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\" 81\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=35984, ...}) = 0
mmap(0x3138200000, 2128848, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3138200000
mprotect(0x3138208000, 2093056, PROT_NONE) = 0
mmap(0x3138407000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x3138407000
close(3) = 0
open("/lib64/libkeyutils.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\n`61\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=9472, ...}) = 0
mmap(0x3136600000, 2102416, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3136600000
mprotect(0x3136602000, 2093056, PROT_NONE) = 0
mmap(0x3136801000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x3136801000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55c15b000
open("/lib64/libselinux.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340E\24041\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=95464, ...}) = 0
mmap(0x3134a00000, 2192800, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3134a00000
mprotect(0x3134a15000, 2097152, PROT_NONE) = 0
mmap(0x3134c15000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x3134c15000
mmap(0x3134c17000, 1440, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3134c17000
close(3) = 0
open("/lib64/libsepol.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@=`41\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=247496, ...}) = 0
mmap(0x3134600000, 2383168, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3134600000
mprotect(0x313463b000, 2097152, PROT_NONE) = 0
mmap(0x313483b000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3b000) = 0x313483b000
mmap(0x313483c000, 40256, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x313483c000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55c15c000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55c15d000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55c15e000
arch_prctl(ARCH_SET_FS, 0x2af55c15dfa0) = 0
mprotect(0x312e215000, 4096, PROT_READ) = 0
mprotect(0x312d34d000, 16384, PROT_READ) = 0
mprotect(0x3135814000, 4096, PROT_READ) = 0
mprotect(0x312da02000, 4096, PROT_READ) = 0
mprotect(0x312d681000, 4096, PROT_READ) = 0
mprotect(0x3135c11000, 4096, PROT_READ) = 0
mprotect(0x2af55c154000, 4096, PROT_READ) = 0
mprotect(0x313dc08000, 4096, PROT_READ) = 0
mprotect(0x312ce1c000, 4096, PROT_READ) = 0
munmap(0x2af55bf39000, 71066) = 0
set_tid_address(0x2af55c15e030) = 22685
set_robust_list(0x2af55c15e040, 0x18) = 0
futex(0x7fff4ff0c2ac, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGRTMIN, {0x312e0053c0, [], SA_RESTORER|SA_SIGINFO, 0x312e00ebe0}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x312e0052f0, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x312e00ebe0}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=10240*1024, rlim_max=RLIM_INFINITY}) = 0
access("/etc/selinux/", F_OK) = 0
brk(0) = 0x8baf000
brk(0x8bd0000) = 0x8bd0000
open("/etc/selinux/config", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=511, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55bf39000
read(3, "# This file controls the state o"..., 4096) = 511
read(3, "", 4096) = 0
close(3) = 0
munmap(0x2af55bf39000, 4096) = 0
open("/proc/mounts", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55bf39000
read(3, "rootfs / rootfs rw 0 0\n/dev/root"..., 1024) = 497
read(3, "", 1024) = 0
close(3) = 0
munmap(0x2af55bf39000, 4096) = 0
rt_sigaction(SIGPIPE, {0x1, [PIPE], SA_RESTORER|SA_RESTART, 0x312d0302f0}, {SIG_DFL, [], 0}, 8) = 0
getcwd("/usr/share/nginx/html"..., 4096) = 22
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55c15f000
open("/usr/lib/locale/locale-archive", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=56430272, ...}) = 0
mmap(NULL, 56430272, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2af55c1a0000
close(3) = 0
open("/etc/localtime", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=2819, ...}) = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=2819, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55f771000
read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0"..., 4096) = 2819
lseek(3, -1802, SEEK_CUR) = 1017
read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\5\0\0\0\0"..., 4096) = 1802
close(3) = 0
munmap(0x2af55f771000, 4096) = 0
lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/kerberos", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/kerberos/sbin", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/kerberos/sbin/php", 0x7fff4ff06ab0) = -1 ENOENT (No such file or directory)
lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/kerberos", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/kerberos/bin", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/kerberos/bin/php", 0x7fff4ff06ab0) = -1 ENOENT (No such file or directory)
lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/local", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/local/sbin", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/local/sbin/php", 0x7fff4ff06ab0) = -1 ENOENT (No such file or directory)
lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/local", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/local/bin", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/local/bin/php", 0x7fff4ff06ab0) = -1 ENOENT (No such file or directory)
lstat("/sbin", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
lstat("/sbin/php", 0x7fff4ff06ab0) = -1 ENOENT (No such file or directory)
lstat("/bin", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/bin/php", 0x7fff4ff06ab0) = -1 ENOENT (No such file or directory)
lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/sbin", {st_mode=S_IFDIR|0755, st_size=20480, ...}) = 0
lstat("/usr/sbin/php", 0x7fff4ff06ab0) = -1 ENOENT (No such file or directory)
lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/bin", {st_mode=S_IFDIR|0755, st_size=69632, ...}) = 0
lstat("/usr/bin/php", {st_mode=S_IFREG|0755, st_size=3444293, ...}) = 0
access("/usr/bin/php", X_OK) = 0
open("/usr/bin/php-cli.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/php-cli.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/bin/php.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/php.ini", O_RDONLY) = 3
lstat("/etc", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
lstat("/etc/php.ini", {st_mode=S_IFREG|0644, st_size=45804, ...}) = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4ff09b80) = -1 ENOTTY (Inappropriate ioctl for device)
fstat(3, {st_mode=S_IFREG|0644, st_size=45804, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55f771000
read(3, "[PHP]\n\n;;;;;;;;;;;;;;;;;;;\n; Abo"..., 8192) = 8192
read(3, "brary\n; Valid values for this op"..., 8192) = 8192
read(3, "production web sites,\n; you're s"..., 8192) = 8192
read(3, "et to 1 if running under IIS. D"..., 8192) = 8192
read(3, "istent = -1\n\n; Maximum number of"..., 8192) = 8192
read(3, "ct timeout\n;mssql.connect_timeou"..., 8192) = 4844
read(3, "", 4096) = 0
read(3, "", 8192) = 0
close(3) = 0
munmap(0x2af55f771000, 4096) = 0
open("/etc/php.d", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 3
fcntl(3, F_SETFD, FD_CLOEXEC) = 0
getdents(3, /* 7 entries */, 32768) = 216
getdents(3, /* 0 entries */, 32768) = 0
close(3) = 0
stat("/etc/php.d/dbase.ini", {st_mode=S_IFREG|0644, st_size=51, ...}) = 0
open("/etc/php.d/dbase.ini", O_RDONLY) = 3
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4ff09b80) = -1 ENOTTY (Inappropriate ioctl for device)
fstat(3, {st_mode=S_IFREG|0644, st_size=51, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55f771000
read(3, "; Enable dbase extension module\n"..., 8192) = 51
read(3, "", 4096) = 0
read(3, "", 8192) = 0
close(3) = 0
munmap(0x2af55f771000, 4096) = 0
stat("/etc/php.d/json.ini", {st_mode=S_IFREG|0644, st_size=49, ...}) = 0
open("/etc/php.d/json.ini", O_RDONLY) = 3
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4ff09b80) = -1 ENOTTY (Inappropriate ioctl for device)
fstat(3, {st_mode=S_IFREG|0644, st_size=49, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55f771000
read(3, "; Enable json extension module\ne"..., 8192) = 49
read(3, "", 4096) = 0
read(3, "", 8192) = 0
close(3) = 0
munmap(0x2af55f771000, 4096) = 0
stat("/etc/php.d/zip.ini", {st_mode=S_IFREG|0644, st_size=47, ...}) = 0
open("/etc/php.d/zip.ini", O_RDONLY) = 3
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4ff09b80) = -1 ENOTTY (Inappropriate ioctl for device)
fstat(3, {st_mode=S_IFREG|0644, st_size=47, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55f771000
read(3, "; Enable zip extension module\nex"..., 8192) = 47
read(3, "", 4096) = 0
read(3, "", 8192) = 0
close(3) = 0
munmap(0x2af55f771000, 4096) = 0
stat("/etc/php.d/zzz-couchbase.ini", {st_mode=S_IFREG|0644, st_size=182, ...}) = 0
open("/etc/php.d/zzz-couchbase.ini", O_RDONLY) = 3
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4ff09b80) = -1 ENOTTY (Inappropriate ioctl for device)
fstat(3, {st_mode=S_IFREG|0644, st_size=182, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55f771000
read(3, "; Couchbase relies on JSON, whic"..., 8192) = 182
read(3, "", 4096) = 0
read(3, "", 8192) = 0
close(3) = 0
munmap(0x2af55f771000, 4096) = 0
brk(0x8bf1000) = 0x8bf1000
brk(0x8c12000) = 0x8c12000
brk(0x8c33000) = 0x8c33000
futex(0x312da030ec, FUTEX_WAKE_PRIVATE, 2147483647) = 0
open("/usr/lib64/php/modules/dbase.so", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300'\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=145168, ...}) = 0
mmap(NULL, 2128992, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2af55f771000
mprotect(0x2af55f778000, 2097152, PROT_NONE) = 0
mmap(0x2af55f978000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x2af55f978000
close(3) = 0
open("/usr/lib64/php/modules/json.so", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\21\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=104303, ...}) = 0
mmap(NULL, 2123984, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2af55f979000
mprotect(0x2af55f980000, 2093056, PROT_NONE) = 0
mmap(0x2af55fb7f000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x2af55fb7f000
close(3) = 0
open("/usr/lib64/php/modules/zip.so", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20L\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=841893, ...}) = 0
mmap(NULL, 2168952, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2af55fb80000
mprotect(0x2af55fb91000, 2093056, PROT_NONE) = 0
mmap(0x2af55fd90000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x10000) = 0x2af55fd90000
close(3) = 0
open("/usr/lib64/php/modules/couchbase.so", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\205\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=737887, ...}) = 0
mmap(NULL, 2246712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2af55fd92000
mprotect(0x2af55fdb2000, 2093056, PROT_NONE) = 0
mmap(0x2af55ffb1000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1f000) = 0x2af55ffb1000
close(3) = 0
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=71066, ...}) = 0
mmap(NULL, 71066, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2af55ffb7000
close(3) = 0
open("/usr/lib64/libcouchbase.so.2", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240+\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=118552, ...}) = 0
mmap(NULL, 2213816, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2af55ffc9000
mprotect(0x2af55ffe5000, 2097152, PROT_NONE) = 0
mmap(0x2af5601e5000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c000) = 0x2af5601e5000
close(3) = 0
munmap(0x2af55ffb7000, 71066) = 0
futex(0x3137d3ccb8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
open("/proc/sys/crypto/fips_enabled", O_RDONLY) = 3
read(3, "0\n", 2) = 2
close(3) = 0
brk(0x8c54000) = 0x8c54000
brk(0x8c75000) = 0x8c75000
brk(0x8c97000) = 0x8c97000
brk(0x8cb8000) = 0x8cb8000
brk(0x8cd9000) = 0x8cd9000
open("/etc/nsswitch.conf", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=1696, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55ffb7000
read(3, "#\n# /etc/nsswitch.conf\n#\n# An ex"..., 4096) = 1696
read(3, "", 4096) = 0
close(3) = 0
munmap(0x2af55ffb7000, 4096) = 0
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=71066, ...}) = 0
mmap(NULL, 71066, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2af55ffb7000
close(3) = 0
open("/lib64/libnss_files.so.2", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\37\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=53880, ...}) = 0
mmap(NULL, 2139432, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2af5601e6000
mprotect(0x2af5601f0000, 2093056, PROT_NONE) = 0
mmap(0x2af5603ef000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x9000) = 0x2af5603ef000
close(3) = 0
mprotect(0x2af5603ef000, 4096, PROT_READ) = 0
munmap(0x2af55ffb7000, 71066) = 0
open("/etc/protocols", O_RDONLY) = 3
fcntl(3, F_GETFD) = 0
fcntl(3, F_SETFD, FD_CLOEXEC) = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=6108, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55ffb7000
read(3, "# /etc/protocols:\n# $Id: protoco"..., 4096) = 4096
close(3) = 0
munmap(0x2af55ffb7000, 4096) = 0
open("/etc/protocols", O_RDONLY) = 3
fcntl(3, F_GETFD) = 0
fcntl(3, F_SETFD, FD_CLOEXEC) = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=6108, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55ffb7000
read(3, "# /etc/protocols:\n# $Id: protoco"..., 4096) = 4096
close(3) = 0
munmap(0x2af55ffb7000, 4096) = 0
brk(0x8cfa000) = 0x8cfa000
brk(0x8d1b000) = 0x8d1b000
munmap(0x2af55c15f000, 266240) = 0
brk(0x8d5e000) = 0x8d5e000
open("cb2.php", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=312, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55c15f000
read(3, "<!DOCTYPE html>\n<html>\n<head>\n<m"..., 4096) = 312
lseek(3, 0, SEEK_SET) = 0
fstat(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0
fstat(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0
fstat(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55c160000
lseek(0, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af55c161000
lseek(1, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
fstat(2, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0
fstat(2, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0
lseek(2, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
getcwd("/usr/share/nginx/html"..., 4096) = 22
lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/share", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
lstat("/usr/share/nginx", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/share/nginx/html", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/share/nginx/html/cb2.php", {st_mode=S_IFREG|0644, st_size=312, ...}) = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff4ff09a80) = -1 ENOTTY (Inappropriate ioctl for device)
read(3, "<!DOCTYPE html>\n<html>\n<head>\n<m"..., 8192) = 312
read(3, "", 4096) = 0
read(3, "", 8192) = 0
close(3) = 0
munmap(0x2af55c15f000, 4096) = 0
write(1, "<!DOCTYPE html>\n<html>\n<head>\n<m"..., 114<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Couchbase Server PHP Test</title>
</head>
<body>

<p>
) = 114
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=71066, ...}) = 0
mmap(NULL, 71066, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2af55c162000
close(3) = 0
open("/usr/lib64/libcouchbase_libevent.so", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\n\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=8456, ...}) = 0
mmap(NULL, 2103848, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2af5603f1000
mprotect(0x2af5603f3000, 2093056, PROT_NONE) = 0
mmap(0x2af5605f2000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x2af5605f2000
close(3) = 0
open("/usr/lib64/libevent-1.4.so.2", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 S\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=104296, ...}) = 0
mmap(NULL, 2202288, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2af5605f3000
mprotect(0x2af56060c000, 2093056, PROT_NONE) = 0
mmap(0x2af56080b000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18000) = 0x2af56080b000
mmap(0x2af56080c000, 2736, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2af56080c000
close(3) = 0
munmap(0x2af55c162000, 71066) = 0
clock_gettime(CLOCK_MONOTONIC, {4067299, 716999209}) = 0
clock_gettime(CLOCK_MONOTONIC, {4067299, 717037209}) = 0
getuid() = 0
geteuid() = 0
getgid() = 0
getegid() = 0
epoll_create(32000) = 3
fcntl(3, F_SETFD, FD_CLOEXEC) = 0
socketpair(PF_FILE, SOCK_STREAM, 0, [4, 5]) = 0
fcntl(4, F_SETFD, FD_CLOEXEC) = 0
fcntl(5, F_SETFD, FD_CLOEXEC) = 0
fcntl(4, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
getuid() = 0
geteuid() = 0
getgid() = 0
getegid() = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 6
fcntl(6, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
connect(6, {sa_family=AF_INET, sin_port=htons(8091), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress)
epoll_ctl(3, EPOLL_CTL_ADD, 6, {EPOLLOUT, {u32=6, u64=6}}) = 0
clock_gettime(CLOCK_MONOTONIC, {4067299, 718041209}) = 0
clock_gettime(CLOCK_MONOTONIC, {4067299, 718086209}) = 0
clock_gettime(CLOCK_MONOTONIC, {4067299, 718121209}) = 0
epoll_wait(3, {{EPOLLOUT, {u32=6, u64=6}}}, 32, 2500) = 1
clock_gettime(CLOCK_MONOTONIC, {4067299, 718202209}) = 0
connect(6, {sa_family=AF_INET, sin_port=htons(8091), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
epoll_ctl(3, EPOLL_CTL_DEL, 6, {EPOLLOUT, {u32=6, u64=6}}) = 0
epoll_ctl(3, EPOLL_CTL_ADD, 6, {EPOLLIN|EPOLLOUT, {u32=6, u64=6}}) = 0
epoll_wait(3, {{EPOLLOUT, {u32=6, u64=6}}}, 32, 2500) = 1
clock_gettime(CLOCK_MONOTONIC, {4067299, 718486209}) = 0
sendto(6, "GET /pools/default/bucketsStream"..., 107, 0, NULL, 0) = 107
epoll_ctl(3, EPOLL_CTL_DEL, 6, {EPOLLIN|EPOLLOUT, {u32=6, u64=6}}) = 0
epoll_ctl(3, EPOLL_CTL_ADD, 6, {EPOLLIN, {u32=6, u64=6}}) = 0
epoll_wait(3, {{EPOLLIN, {u32=6, u64=6}}}, 32, 2500) = 1
clock_gettime(CLOCK_MONOTONIC, {4067299, 721126209}) = 0
recvfrom(6, "HTTP/1.1 200 OK\r\nTransfer-Encodi"..., 2048, 0, NULL, NULL) = 225
epoll_wait(3, {{EPOLLIN, {u32=6, u64=6}}}, 32, 2497) = 1
clock_gettime(CLOCK_MONOTONIC, {4067299, 731696209}) = 0
recvfrom(6, "1c02\r\n{\"name\":\"xyz\",\"bucketType\""..., 2048, 0, NULL, NULL) = 2048
recvfrom(6, "],[0,1],[0,1],[0,1],[0,1],[0,1],"..., 2048, 0, NULL, NULL) = 2048
recvfrom(6, "[0,1],[1,0],[1,0],[1,0],[1,0],[1"..., 4096, 0, NULL, NULL) = 3091
brk(0x8d7f000) = 0x8d7f000
brk(0x8da0000) = 0x8da0000
socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 7
fcntl(7, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
connect(7, {sa_family=AF_INET, sin_port=htons(11210), sin_addr=inet_addr("10.4.2.14")}, 16) = -1 EINPROGRESS (Operation now in progress)
epoll_ctl(3, EPOLL_CTL_ADD, 7, {EPOLLOUT, {u32=7, u64=7}}) = 0
clock_gettime(CLOCK_MONOTONIC, {4067299, 737521209}) = 0
clock_gettime(CLOCK_MONOTONIC, {4067299, 737655209}) = 0
clock_gettime(CLOCK_MONOTONIC, {4067299, 737786209}) = 0
clock_gettime(CLOCK_MONOTONIC, {4067299, 737916209}) = 0
epoll_wait(3, {{EPOLLOUT, {u32=7, u64=7}}}, 32, 2500) = 1
clock_gettime(CLOCK_MONOTONIC, {4067299, 738187209}) = 0
connect(7, {sa_family=AF_INET, sin_port=htons(11210), sin_addr=inet_addr("10.4.2.14")}, 16) = 0
getsockname(7, {sa_family=AF_INET, sin_port=htons(53248), sin_addr=inet_addr("10.4.2.14")}, [6944348624503439376]) = 0
getpeername(7, {sa_family=AF_INET, sin_port=htons(11210), sin_addr=inet_addr("10.4.2.14")}, [6944348624503439376]) = 0
sendmsg(7, {msg_name(0)=NULL, msg_iov(1)=[{"\200 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 24}], msg_controllen=0, msg_flags=0}, 0) = 24
epoll_ctl(3, EPOLL_CTL_DEL, 7, {EPOLLOUT, {u32=7, u64=7}}) = 0
epoll_ctl(3, EPOLL_CTL_ADD, 7, {EPOLLIN, {u32=7, u64=7}}) = 0
epoll_wait(3, {{EPOLLIN, {u32=7, u64=7}}}, 32, 2500) = 1
clock_gettime(CLOCK_MONOTONIC, {4067299, 739578209}) = 0
recvmsg(7, {msg_name(0)=NULL, msg_iov(1)=[{"\201 \0\0\0\0\0\0\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0PLAIN\0\0\0"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 29
sendmsg(7, {msg_name(0)=NULL, msg_iov(1)=[{"\200!\0\5\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0PLAIN\0xy"..., 40}], msg_controllen=0, msg_flags=0}, 0) = 40
recvmsg(7, {msg_name(0)=NULL, msg_iov(1)=[{"\201!\0\0\0\0\0\0\0\0\0\r\0\0\0\0\0\0\0\0\0\0\0\0Authenti"..., 16384}], msg_controllen=0, msg_flags=0}, 0) = 37
sendmsg(7, {msg_name(0)=NULL, msg_iov(1)=[{"\200\1\0\1\10\0\0\267\0\0\0\27\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 47}], msg_controllen=0, msg_flags=0}, 0) = 47
recvmsg(7, {msg_name(0)=NULL, msg_iov(1)=[{"\201\1\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\2I\367Authenti"..., 16384}], msg_controllen=0, msg_flags=0}, 0) = 24
recvmsg(7, 0x7fff4ff09230, 0) = -1 EAGAIN (Resource temporarily unavailable)
write(1, "The value for 'a' is: ", 22The value for 'a' is: ) = 22
epoll_ctl(3, EPOLL_CTL_DEL, 7, {EPOLLIN, {u32=7, u64=7}}) = 0
epoll_ctl(3, EPOLL_CTL_ADD, 7, {EPOLLIN|EPOLLOUT, {u32=7, u64=7}}) = 0
clock_gettime(CLOCK_MONOTONIC, {4067299, 741458209}) = 0
clock_gettime(CLOCK_MONOTONIC, {4067299, 741598209}) = 0
clock_gettime(CLOCK_MONOTONIC, {4067299, 741730209}) = 0
clock_gettime(CLOCK_MONOTONIC, {4067299, 741860209}) = 0
epoll_wait(3, {{EPOLLOUT, {u32=7, u64=7}}}, 32, 2500) = 1
clock_gettime(CLOCK_MONOTONIC, {4067299, 742117209}) = 0
sendmsg(7, {msg_name(0)=NULL, msg_iov(1)=[{"\200\0\0\1\0\0\0\267\0\0\0\1\2\0\0\0\0\0\0\0\0\0\0\0a", 25}], msg_controllen=0, msg_flags=0}, 0) = 25
epoll_ctl(3, EPOLL_CTL_DEL, 7, {EPOLLIN|EPOLLOUT, {u32=7, u64=7}}) = 0
epoll_ctl(3, EPOLL_CTL_ADD, 7, {EPOLLIN, {u32=7, u64=7}}) = 0
epoll_wait(3, {{EPOLLIN, {u32=7, u64=7}}}, 32, 2500) = 1
clock_gettime(CLOCK_MONOTONIC, {4067299, 742885209}) = 0
recvmsg(7, {msg_name(0)=NULL, msg_iov(1)=[{"\201\0\0\0\4\0\0\0\0\0\0\22\2\0\0\0\0\0\0\0\0\2I\367\0\0\0\0OSDI"..., 16384}], msg_controllen=0, msg_flags=0}, 0) = 42
recvmsg(7, 0x7fff4ff09590, 0) = -1 EAGAIN (Resource temporarily unavailable)
write(1, "string(14) \"", 12string(14) ") = 12
write(1, "OSDIFOISJDFOIJ", 14OSDIFOISJDFOIJ) = 14
write(1, "\"\n", 2"
) = 2
write(1, "</p>\n</body>\n</html>\n", 21</p>
</body>
</html>
) = 21
epoll_ctl(3, EPOLL_CTL_DEL, 6, {EPOLLIN, {u32=6, u64=6}}) = 0
close(6) = 0
epoll_ctl(3, EPOLL_CTL_DEL, 7, {EPOLLIN, {u32=7, u64=7}}) = 0
close(7) = 0
close(4) = 0
close(5) = 0
close(3) = 0
munmap(0x2af5603f1000, 2103848) = 0
munmap(0x2af5605f3000, 2202288) = 0
close(2) = 0
close(1) = 0
munmap(0x2af55c161000, 4096) = 0
close(0) = 0
munmap(0x2af55c160000, 4096) = 0
munmap(0x2af55fd92000, 2246712) = 0
munmap(0x2af55ffc9000, 2213816) = 0
munmap(0x2af55fb80000, 2168952) = 0
munmap(0x2af55f979000, 2123984) = 0
munmap(0x2af55f771000, 2128992) = 0
brk(0x8cf8000) = 0x8cf8000
exit_group(0) = ?
[root@localhost html]#



 Comments   
Comment by Trond Norbye [ 03/Jan/13 ]
we don't support PHP 5.2. According to http://php.net/downloads.php the current stable php version is 5.4, and the old stable version is 5.3.




[PCBC-156] PHP GA Content Created: 04/Dec/12  Updated: 10/Jan/13  Resolved: 10/Jan/13

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

Type: Epic Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Epic Status: Done

 Description   
1. Release Notes - prio two.
- Incidents under PCBC: http://www.couchbase.com/issues/secure/ReleaseNote.jspa?projectId=10049&version=10242
- Matt will have some more items to add.
- .net and Java - check out look at front matter, especially java

2. Getting Starting: at develop/php/next - top prio.
 -- create content in getting-started.xml
 - grab subset and put into Drupal, renumber
 - Matt to get me Drupal access
 - Get the install from the develop page on PHP from. Matt - will send.
 - Model the content after Ruby 1.2 for install: develop/ruby/next
- Model the "try it out" after .net at develop/net/next to introduce JSON

3. note API methods signatures put by MC


**(Item still outstanding - Beer App in PHP should be available as of week of 12/10)
4. Tutorial: Priority 3. Issue is webchat
-Beer app in .net, ruby, and java
-Reuse two-phase commit? No.
-Leave existing Webchat application up for now
-Matt is talking to Trond about minimal crud and views. Check in with Matt











 Comments   
Comment by kzeller [ 06/Dec/12 ]
After you log in, you'll have a black bar across the top for some
administrative kinds of capabilities. Don't worry about that too much.
Mostly, you'll want to head to:
http://www.couchbase.com/develop/php/next

When you're there, you'll be able to edit the page. Go here: http://www.couchbase.com/user

IMPORTANT!! Make sure any edits are done as a revision. We always have
review before publishing. In this case, we can probably publish straight
away, but you'll still want review.

Notes:
modeled after the ruby page for steps 0 & 1 since the steps are similar
modeled after the .NET page for step 2 where it covers bootstrapping,
basic CRUD, introduces JSON and using JSON, then introduces views


****Add info about removing old C library before you get new one....)
Comment by kzeller [ 10/Jan/13 ]
completed end of december
Comment by kzeller [ 10/Jan/13 ]
completed end of december




[PCBC-157] Todos for GA PHP Content Created: 04/Dec/12  Updated: 12/Dec/12  Resolved: 05/Dec/12

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

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

Attachments: GZip Archive php-ext-couchbase-1.1.0-dp4-76-g2f51ee9-MacOS-x86_64.tar.gz    

 Description   
-Send Karen .tar of latest stable pre-GA install
-Setup Karen on Drupal
-Code snippets (CRUD example and views example) from Trond.

 Comments   
Comment by Matt Ingenthron [ 05/Dec/12 ]
Sent items one and three via email. Also, some time back I'd sent you a pointer to some of the tests, which is another good reference for examples. That's https://github.com/couchbase/php-ext-couchbase/tree/master/tests

Tests are named after what they're testing, so if you want to see a get test...
Comment by Matt Ingenthron [ 05/Dec/12 ]
sent details on editing the getting started on the website.
Comment by James Mauss [ 11/Dec/12 ]
This is a pre-release version of the php client for mac, not final GA




[PCBC-152] Release notes needed in 1.1.6 Created: 30/Nov/12  Updated: 13/Mar/14  Resolved: 13/Mar/14

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

Type: Bug Priority: Major
Reporter: Perry Krug Assignee: Matt Ingenthron
Resolution: Fixed 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 :)
Comment by Brett Lawson [ 13/Mar/14 ]
Closed due to being absurdly old. All recent releases correctly specify release notes.




[PCBC-151] support PHP 5.4 Created: 29/Nov/12  Updated: 02/Apr/13  Resolved: 02/Apr/13

Status: Closed
Project: Couchbase PHP client library
Component/s: library
Affects Version/s: 1.0.4, 1.1.0-dp5
Fix Version/s: None
Security Level: Public

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


 Description   
Owing to changes in PHP API versions, we'll need to rebuild/retest the extension for PHP 5.4. We'll track that in this issue.

A workaround for now would be to download the PHP 1.0.6 source, build, test and release. Source is available from:
https://github.com/couchbase/php-ext-couchbase/archive/1.0.6.tar.gz

The included README covers how to build/test. It does require a php development environment

 Comments   
Comment by Matt Ingenthron [ 29/Nov/12 ]
See also comments in PCBC-112.
Comment by Matt Ingenthron [ 11/Dec/12 ]
Talked to PHP core contributor Pierre Joye today.

To do this correctly, PHP must be rebuilt for each Major.Minor release and each nts/ts. It must also be built per architecture.

From the discussion:

hi Pierre! question for you, if we build our PECL extension against 5.3, we need to rebuild against 5.4, right? ingenthr @ 9:06

ingenthr, yes, and for each you also need ts and nts Pierre @ 9:06
ingenthr, I would do it for 5.5 too while being at it, always good to be in line 9:06
 
so, rebuild for each ts and nts, and each major.minor, huh? ingenthr @ 9:07

yes Pierre @ 9:07
they are usually binary incompatible, while being API compatible 9:07
ABI no, API yes 9:07
 
you're referring to between ts and nts? ingenthr @ 9:08
okay, so…. what we're doing right now is just wrong 9:09
 
morning mordy_ @ 9:09

ingenthr, x.y.z > x.y.z+1 API and ABI compatible Pierre @ 9:29
ingenthr, x.y.z > x.y+1.z+1 API compatible and ABI not compatible 9:30
 
whew mordy_ @ 9:30

ingenthr, x.y.z > x+1.y.z End of the world as we know it Pierre @ 9:30

err Pierre @ 9:30

ingenthr, x.y.z > x.y+1.z API compatible and ABI not compatible Pierre @ 9:30

good morning mordy_ ingenthr @ 9:30

so patch level doesn't break ABI, minor level does mordy_ @ 9:30

ABI breakages only need recompilation, sometimes with some #ifdef Pierre @ 9:31

thanks Pierre, is there a primary source for this? I just know I'm going to have to explain this one a lot. and I'd searched, but it's a hard thing to search for ingenthr @ 9:31

ingenthr: i pretty much believe we've been working on this premise already mordy_ @ 9:32

ingenthr, https://wiki.php.net/rfc/releaseprocess Pierre @ 9:32

Comment by Matt Ingenthron [ 11/Dec/12 ]
The updated source tarball is available from:

https://github.com/couchbase/php-ext-couchbase/archive/1.1.0.tar.gz

This can be built (instructions in the readme) on PHP 5.4 or 5.5, with nts/ts.
Comment by makeawish [ 11/Jan/13 ]
Matt,

will you guys in the very near future release/ make avail a PHP client library which will support 5.4 ? Also it
might be helpful to update the docs to reflect that the current one does not support 5.4, i says 5.3 or higher
Comment by Perry Krug [ 20/Feb/13 ]
Matt, can we get a release assigned to this?
Comment by Matt Ingenthron [ 20/Feb/13 ]
Will do when I can assign appropriate resources.
Comment by Trond Norbye [ 02/Apr/13 ]
Our download page contains betas for windows on 5.4, and the "prebuilt" versions for the other os's contains the version the os use..




[PCBC-90] Updated screencast for /develop pages Created: 12/Jul/12  Updated: 07/Nov/12  Resolved: 07/Nov/12

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

Type: Improvement Priority: Major
Reporter: Matt Ingenthron Assignee: Matt Ingenthron
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Create an updated screencast to ship with the new 2.0 developer SDKs




[PCBC-65] Implement getResultMessage() Created: 10/May/12  Updated: 08/Jun/12  Resolved: 08/Jun/12

Status: Closed
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: 1.0.3, 1.1.0-dp1
Fix Version/s: 1.0.4, 1.1.0-dp2
Security Level: Public

Type: New Feature Priority: Major
Reporter: Jan Lehnardt (Inactive) Assignee: Jan Lehnardt (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by Jan Lehnardt (Inactive) [ 10/May/12 ]
In the meantime, users can use:


function couchbase_getResultMessage($code)
{
    switch ($code) {
    case LIBCOUCHBASE_SUCCESS:
        return "Success";
    case LIBCOUCHBASE_KEY_ENOENT:
        return "No such key";
    case LIBCOUCHBASE_E2BIG:
        return "Object too big";
    case LIBCOUCHBASE_ENOMEM:
        return "Out of memory";
    case LIBCOUCHBASE_KEY_EEXISTS:
        return "Key exists (with a different CAS value)";
    case LIBCOUCHBASE_EINVAL:
        return "Invalid arguments";
    case LIBCOUCHBASE_NOT_STORED:
        return "Not stored";
    case LIBCOUCHBASE_DELTA_BADVAL:
        return "Not a number";
    case LIBCOUCHBASE_NOT_MY_VBUCKET:
        return "The vbucket is not located on this server";
    case LIBCOUCHBASE_AUTH_ERROR:
        return "Authentication error";
    case LIBCOUCHBASE_AUTH_CONTINUE:
        return "Continue authentication";
    case LIBCOUCHBASE_ERANGE:
        return "Invalid range";
    case LIBCOUCHBASE_UNKNOWN_COMMAND:
        return "Unknown command";
    case LIBCOUCHBASE_NOT_SUPPORTED:
        return "Not supported";
    case LIBCOUCHBASE_EINTERNAL:
        return "Internal error";
    case LIBCOUCHBASE_EBUSY:
        return "Too busy. Try again later";
    case LIBCOUCHBASE_ETMPFAIL:
        return "Temporary failure. Try again later";
    case LIBCOUCHBASE_LIBEVENT_ERROR:
        return "Problem using libevent";
    case LIBCOUCHBASE_NETWORK_ERROR:
        return "Network error";
    case LIBCOUCHBASE_UNKNOWN_HOST:
        return "Unknown host";
    case LIBCOUCHBASE_ERROR:
        return "Generic error";
    case LIBCOUCHBASE_PROTOCOL_ERROR:
        return "Protocol error";
    case LIBCOUCHBASE_ETIMEDOUT:
        return "Operation timed out";
    case LIBCOUCHBASE_CONNECT_ERROR:
        return "Connection failure";
    case LIBCOUCHBASE_BUCKET_ENOENT:
        return "No such bucket";
    default:
        return "Unknown error.. are you sure libcouchbase gave you that?";
    }
}
Comment by Jan Lehnardt (Inactive) [ 18/May/12 ]
A patch is in review at http://review.couchbase.org/#change,16182




[PCBC-63] Silent hang with wrong moxi port Created: 16/Apr/12  Updated: 25/Jul/12  Resolved: 25/Jul/12

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

Type: Bug Priority: Major
Reporter: Volker Mische Assignee: Jan Lehnardt (Inactive)
Resolution: Cannot Reproduce Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Very old PHP SDK version
./cluster_run

Attachments: File moxiportbug.php    

 Description   
I've started a cluster with ./cluster_run.
When I run the attached script, it silently hangs, as it can't connect to moxi (it's the wrong port (12001). Run it with strace to see the problem. When you comment in the line with the correct port (12002), it works well.

I think the SDK should yell out loud if it can't connect to moxi.

I'm not sure if the bug still exists, as I'm using a very old version of the SDK.

 Comments   
Comment by Volker Mische [ 25/Jul/12 ]
The bug report is based on an out-dated version of the SDK, things have changed dramatically since then.




[PCBC-62] client reports wrong version from PHPINFO Created: 11/Apr/12  Updated: 20/Apr/12  Resolved: 20/Apr/12

Status: Closed
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: 1.0, 1.0.1
Fix Version/s: 1.0.2
Security Level: Public

Type: Bug Priority: Major
Reporter: Michael Steuer Assignee: Sergey Avseyev
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
After installation of the extension, phpinfo() (and php -i) report the wrong version of the extension. This should probably be tag based.

 Comments   
Comment by Jan Lehnardt (Inactive) [ 20/Apr/12 ]
This is fixed in the new release at http://www.couchbase.com/develop/php/current




[PCBC-61] Couchbase PHP vs ext/memcached compatibility Created: 02/Apr/12  Updated: 10/May/12  Resolved: 10/May/12

Status: Closed
Project: Couchbase PHP client library
Component/s: library
Affects Version/s: 1.0
Fix Version/s: 1.0.3
Security Level: Public

Type: Bug Priority: Major
Reporter: Perry Krug Assignee: Jan Lehnardt (Inactive)
Resolution: Fixed Votes: 0
Labels: customer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File test.out     File test.php    

 Description   
Here is a sample script that demonstrates the problem:

<?php

// configure Memcached to talk to bejc bucket
$mc = new Memcached();
$mc->addServer("mem1-bjb.test.vte.customer.com", 11214);
// configure Couchbase to talk to becj bucket
$cb = new Couchbase("mem1-bjb.test.vte.customer.com:8091", "", "", "bejc");

echo "Setting testKeyOne with Memcached\n";
$mc->set("testKeyOne", "testValueOne");

echo "Getting testKeyOne with Memcached\n";
var_dump($mc->get("testKeyOne"));

echo "Getting testKeyOne with Couchbase\n";
var_dump($cb->get("testKeyOne"));

echo "----------\n";

echo "Setting testKeyTwo with Couchbase\n";
$cb->set("testKeyTwo", "testValueTwo");

echo "Getting testKeyTwo with Couchbase\n";
var_dump($cb->get("testKeyTwo"));

echo "Getting testKeyTwo with Memcached\n";
var_dump($mc->get("testKeyTwo"));

?>

You need to have a Couchbase server setup with a Couchbase bucket type. Alter server names and ports/buckets to match your setup.

Save the script in a file called test.php and then run it: php test.php

The output should look something like the following:

Setting testKeyOne with Memcached
Getting testKeyOne with Memcached
string(12) "testValueOne"
Getting testKeyOne with Couchbase
int(0)
----------
Setting testKeyTwo with Couchbase
Getting testKeyTwo with Couchbase
string(12) "testValueTwo"
Getting testKeyTwo with Memcached
NULL

The script requires the Couchbase PHP library and the Memcached library to be installed.

On Debian/Ubuntu you can install the Memcached library by running:

apt-get install php5-memcached

Because of the size of our code base we need to slowly migrate to the Couchbase library so interoperability is needed. For example while we may update the actual game code to use Couchbase it might take us a while to update the CS Tools that we use to solve customer problems.

 Comments   
Comment by Sergey Avseyev [ 24/Apr/12 ]
The script which tests new compatibility patch
Comment by Sergey Avseyev [ 24/Apr/12 ]
I've made a patch which fixes compatibility http://review.couchbase.org/15133

But there are features which implemented in memcached but missing in the couchbase extension. like igbinary serializer
Comment by Jan Lehnardt (Inactive) [ 24/Apr/12 ]
@Sergey, The patch looks good, just, as noted on gerrit, it makes test/010.phpt fail.

We deliberately didn't implement all the serialisation methods from ext/memcached, including igbianry. If they are requested, we are happy to look into adding them :)
Comment by Perry Krug [ 24/Apr/12 ]
Thanks guys, can I send something back to the customer to have them verify?
Comment by Matt Ingenthron [ 26/Apr/12 ]
Verification supplied via email.




[PCBC-60] how to provide redundancy with setting up client not clear Created: 26/Mar/12  Updated: 26/Aug/13  Resolved: 07/Nov/12

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

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


 Description   
A user says they could not determine how to set up the PHP client for failover per the docs. I think that means there is confusion about what is actually happening when setting up the URLs.

From the user:
i didn't find anything in the examples about adding multiple servers kelye @ 2:19
like new Couchbase ('10.1.1.1:1121, 10.1.1.2:1121'. .. etc 2:19
for failover 2:19

I've explained things, but perhaps we need to do more at the documentation level?

 Comments   
Comment by Sergey Avseyev [ 10/Apr/12 ]
Currently PHP client uses libcouchbase as the backend. And there are two points where it can load the list of backup URLs.

1. Creation of the connection. https://github.com/couchbase/libcouchbase/blob/master/include/libcouchbase/couchbase.h#L72-L76
This means that you can specify a list of the nodes, where first will be used for immediate connection, others for list of the backup nodes.

2. On cluster upgrade, each time cluster push updated configuration, the connection instances save list of the known nodes, and if the initial node fails, it picks next from that list.

In PHP client you can just use host parameter to pass the list of the nodes




[PCBC-59] Undefined Index from existing keys in getMulti result Created: 23/Mar/12  Updated: 12/Aug/12  Resolved: 12/Aug/12

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

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


 Description   
Bug reporter is noticing some strange behavior from the getMulti function: keys which exist and are visible when print_r'ing the response give an undefined index error when reporter tries to access them.

Full details are in http://www.couchbase.com/forums/thread/php-undefined-index-existing-keys-getmulti-result

 Comments   
Comment by greg schoen [ 29/Mar/12 ]
I just noticed this issue as well when trying to switch over from Memcache to Couchbase. I came up with the following hack until it is corrected in the library.

$get = $couchbase->getMulti($keys);

foreach($get as $k => $v)
{
$hack_array[$k] = $v;
}
$get = $hack_array;

It's interesting to note that you can iterate through the array with a foreach and setting it into a new array lets you access the values.
Comment by Matt Ingenthron [ 20/Jul/12 ]
I think this is something at the extension level. Asking Laruence to have a look.
Comment by Matt Ingenthron [ 10/Aug/12 ]
Discussion with Laruence indicates that it was a libcouchbase bug which has been fixed. We'll add the referenced test to the suite and verify that it works with the latest libcouchbase.
Comment by Matt Ingenthron [ 12/Aug/12 ]
Update: it was actually a bug fixed in the extension now verified. This was actually fixed in 1.0.4 and this issue is a dupe of PCBC-66 (now, anyway).




[PCBC-56] Couchbase.so - prepend/append integer subsequently only returns last value on "get" Created: 22/Mar/12  Updated: 08/Jun/12  Resolved: 08/Jun/12

Status: Closed
Project: Couchbase PHP client library
Component/s: library
Affects Version/s: 1.0
Fix Version/s: 1.0.3, 1.1.0-dp1
Security Level: Public

Type: Bug Priority: Major
Reporter: Michael Steuer Assignee: Sergey Avseyev
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: OS X 10.7, PHP 5.3.8, Apache 2.2.21, Couchbase.so 1.0.0, Couchbase Server 1.8.0


 Description   
Using couchbase.so, when I prepend or append an integer to an existing integer value, and subsequently "get" that key, only the most recently appended/prepended value is returned instead of the entire value of the key. Using the console I can verify that the actual server held value for the key is correct, it's just couchbase.so that doesn't return the correct value on "get". This problem seems to be isolated to integer values (which is why it hasn't been caught by your PHP Tests, which only tests string value appending/prepending).

Example PHP:

if(!$cb->get("Test6")) {
$cb->add("Test6",rand());
}
$cb->prepend("Test6", rand().",");
echo "<pre>";
$vars = $cb->get("Test6");
print_r($vars);

only outputs a single value, no matter how often you reload and re-execute...

However, when you check via console:


get Test6
VALUE Test6 1 41
1407971623,1474693532,101417852,331145725
END
get Test6
VALUE Test6 1 41
1407971623,1474693532,101417852,331145725
END
get Test6
VALUE Test6 1 230
1582106666,1487511791,1969168774,1956718300,643137240,1558088382,719325115,1737977192,922644553,1697835667,363523321,175374370,2004964137,92468065,1381011077,1588161021,1237581990,31693720,1407971623,1474693532,101417852,331145725
END

See also http://www.couchbase.com/forums/thread/php-ext-get-after-prepend-or-append-only-returns-last-value-prependedappended


 Comments   
Comment by Matt Ingenthron [ 10/Apr/12 ]
Please try to identify the cause.
Comment by Sergey Avseyev [ 10/Apr/12 ]
Actually this behaviour is OK:

1) the server isn't aware about your data formats, it just concatenating binary streams
2) you have chosen "," separator for values and I considering it is quite freeform, what are you expecting to get in the following values:
  - 111,,3333
  - aaa,1111
  and so on. What I'm trying to say is that this issue should be considered as a feature request. Because when you set the value first time, the client detected that you are setting integer value and selected appropriate flags combination for future get (to convert it back into integer). If you are trying to implement lists, you should split and convert them explicitly and set back after update (here you can use CAS value for optimistic lock). BTW there is nice article about implementing Set structure on application side using append, prepend operations: http://dustin.github.com/2011/02/17/memcached-set.html

Another case is do not do guessing of types like the php-memcached client does (and this client too). In ruby client I have only three data modes and all of them won't cause any problems:
  - PLAIN mode, is just a bytestream, it is handy for implementing custom data structures or performing specific server-side operations like append
  - DOCUMENT mode, when all values should be primitives which can be encoded into JSON automatically by using parser, arrays, hashes, strings, numbers. Obviously append/prepend could break this format
  - MARSHAL mode, this is standard serialization mechanism, I guess such a thing is available in almost any language. In this mode more values could be serialized transparently (comparing to DOCUMENT mode).

The layout above shows how easily to avoid issues with guessing values. But implementing them here of course will break compatibility here. So regarding the issue topic: yes, it is possible to implement such parser, but in this case the library will be in charge of the format rules (separators, empty values etc.)
Comment by Michael Steuer [ 11/Apr/12 ]
Shouldn't an append that I suppose changes the data type reset the flags on the client? Ie. I set 123 and then append "abc". I don't see how it's a feature that when I get that key, I don't get the server value but some assumption of the client as to what the server value should be? If an append can change the nature of a value, which it can, then it should also be able to change the client's perception of that value.

I still think that when your client does NOT return the actual server value for a key, for whatever reason, it is a bug, not a feature. When I issue get(Key1), I should get the server value of Key1...

Comment by Michael Steuer [ 11/Apr/12 ]
Aside from that, thanks for the link re Set structure... good write up
Comment by Sergey Avseyev [ 11/Apr/12 ]
No, memcached protocol doesn't allow to pass flags with append/prepend commands.

Compare https://github.com/membase/memcached/blob/engine/include/memcached/protocol_binary.h#L385-L390 to https://github.com/membase/memcached/blob/engine/include/memcached/protocol_binary.h#L302-L315
Comment by Sergey Avseyev [ 11/Apr/12 ]
> I still think that when your client does NOT return the actual server value for a key, for whatever reason, it is a bug, not a feature. When I issue get(Key1), I should get the server value of Key1...

You are right, but php-couchbase (like php-memcached) has chosen the way with encoding datatypes in flags (not only serialization formats). In ruby client there is an option which allow to force serialization format (useful to workaround getting data in heterogeneous environments where another lib could write JSON without setting flags). I think adding such option here will be good compromise.

In your case the GET function just reads only the first integer up to the comma (with atol), because it knows from flags that initial value was the integer.
Comment by Jan Lehnardt (Inactive) [ 18/Apr/12 ]
Just a heads up: I'm in the final stages of making a release with the fix. Thanks for your support and patience! :)




[PCBC-54] Couchbase.so intermittently returns incorrect value for integer values Created: 22/Mar/12  Updated: 20/Apr/12  Resolved: 20/Apr/12

Status: Closed
Project: Couchbase PHP client library
Component/s: library
Affects Version/s: 1.0, 1.0.1
Fix Version/s: 1.0.2
Security Level: Public

Type: Bug Priority: Major
Reporter: Michael Steuer Assignee: Matt Ingenthron
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: OS X 10.7, PHP 5.3.8, Apache 2.2.21, Couchbase.so 1.0.0, Couchbase Server 1.8.0

Issue Links:
Duplicate
is duplicated by PCBC-55 Couchbase.so - prepend/append integer... Resolved

 Description   
See http://www.couchbase.com/forums/thread/php-ext-incorrect-data-returned


I'm setting various integers to different keys. When I subsequently get them, the couchbase.so result "mixes" the values. I can verify via the command line that the values are set correctly, but they're not the same as what couchbase.so returns to me.

PHP Example:
$cb->set("userid", 642349292);
$cb->set("productid", 5);
$user_id = $cb->get("userid");
echo $user_id."\n";
$pid = $cb->get("productid");
echo $pid."\n";

This outputs:
642349292
542349292

On the command line however:
get userid
VALUE userid 1 9
642349292
END
get productid
VALUE productid 1 1
5
END

I can "work around" this (and the other issue), by setting integers as strings, but something is clearly the matter with couchbase.so.

If I set the integers as strings, like this:

$cb->set("userid", "642349292");
$cb->set("productid", "5");
$user_id = $cb->get("userid");
echo $user_id."\n";
$pid = $cb->get("productid");
echo $pid."\n";

the subsequent output is correct:

642349292
5


 Comments   
Comment by Matt Ingenthron [ 10/Apr/12 ]
Please try to identify the cause.
Comment by Sergey Avseyev [ 10/Apr/12 ]
There was issue in converting numbers to strings. In memcached extensions the developers just set last byte to zero, but it is generally illegal operation. The best solution will be safe function which accepts buffer length as the parameter. I cannot find the one in php header, so my solution is to copy the value into the local memory, set zero byte and convert it to the number

http://review.couchbase.org/14741 fix is here, it will be merged right after pass the review. Please reopen this issue if there will be better fix
Comment by Sergey Avseyev [ 10/Apr/12 ]
I don't know in what release this fix will go. Therefore I cannot resolve it yet
Comment by Michael Steuer [ 11/Apr/12 ]
Thanks for setting the fix version Matt. When is 1.0.2 expected to be released? The fact that the extension does not return values correctly (for ints anyways) seems like a pretty high priority issue? ;)
Comment by Matt Ingenthron [ 11/Apr/12 ]
Yes, we agree, it's a major issue. We'll look to get a release out immediately, but want to work with you to verify the fix first.
Comment by Michael Steuer [ 11/Apr/12 ]
Happy to help verifying... Feel free to reach out directly via email...
Comment by Sergey Avseyev [ 11/Apr/12 ]
The fix is published on github https://github.com/couchbase/php-ext-couchbase

Could you try to build the master version and confirm the problem is fixed, so that we can close the issue?
Comment by Matt Ingenthron [ 11/Apr/12 ]
Actually Sergey, we'll send Michael a built binary.
Comment by Michael Steuer [ 11/Apr/12 ]
I already rebuilt and tested the same case as described above.

It now returns the correct data..

$cb->set("userid", 642349292);
$cb->set("productid", 5);
$user_id = $cb->get("userid");
echo $user_id."\n";
$pid = $cb->get("productid");
echo $pid."\n";

---- OUTPUT ----
642349292
5

Comment by Michael Steuer [ 11/Apr/12 ]
By the way, separate issue and I'm happy to file a ticket if you want - the extension doesn't report its version correctly in PHPINFO. Both 1.0.1 and the 1.0.2 I just built report their version as 1.0.0 in phpinfo()
Comment by Jan Lehnardt (Inactive) [ 20/Apr/12 ]
Fixed, latest downloads are here: http://www.couchbase.com/develop/php/current




[PCBC-50] Issue getting integer from php client Created: 02/Mar/12  Updated: 08/Jun/12  Resolved: 08/Jun/12

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

Type: Bug Priority: Major
Reporter: Mike Wiederhold Assignee: Jan Lehnardt (Inactive)
Resolution: Fixed Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
http://www.couchbase.com/forums/thread/cannot-retrieve-integer-value-correctly-php

 Comments   
Comment by Michael Steuer [ 22/Mar/12 ]
+1 on this issue... I'm experiencing several integer related issues that are likely related to this one. Please see:

http://couchbase.com/issues/browse/PCBC-54
http://couchbase.com/issues/browse/PCBC-56
Comment by Michael Steuer [ 29/Mar/12 ]
Anybody here? Issues in this project have not been responded to since about a month ago... Is this project still alive?
Comment by Matt Ingenthron [ 09/Apr/12 ]
The project is definitely alive. Apologies for the delay. We'll make sure we get these triaged and responded to accordingly.




[PCBC-48] Implement view() Created: 01/Mar/12  Updated: 08/Jun/12  Resolved: 08/Jun/12

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

Type: New Feature Priority: Major
Reporter: Jan Lehnardt (Inactive) Assignee: Jan Lehnardt (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
For 1.1.0 we will need a new function/method view()

$result = couchbase_view(string, $handle, string $design_doc_name, string $view_name[, array $options]);
$result = Couchbase::view(string $design_doc_name, string $view_name[, array $options]);

Result should be an iterator that we can loop over like this:

while($row = $result->fetch_row) {

}

or

foreach($result AS $key, $value) {

}

Ideally, this fetches results as they are requested from PHP.

$options is an associative array that just passes on any k/v pairs that one can specify on a CouchDB view: http://wiki.apache.org/couchdb/HTTP_view_API#Querying_Options

For testing, see the test cases in https://github.com/couchbaselabs/php-couchbase/blob/master/test/CouchbaseTest.php
(test data in https://github.com/couchbaselabs/php-couchbase/blob/master/test/lib.php) we need that at least.

On the libcouchbase side, check examples/couchview.c how to query the view.






[PCBC-46] make sure crasher is actually fixed Created: 24/Feb/12  Updated: 08/Jun/12  Resolved: 08/Jun/12

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

Type: Bug Priority: Major
Reporter: Jan Lehnardt (Inactive) Assignee: Jan Lehnardt (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Sent by Chad Kouse, potentially out of what libvbuckt/libevent/libcouchbase/php-ext-couchbase combo. I think we fixed one of those early on after the beta release though.

#0 0x00007fffeb57d027 in event_pending () from /usr/lib/libevent-1.4.so.2
#1 0x00007fffeb792f33 in ?? () from /usr/lib/libcouchbase_libevent.so.1
#2 0x00007ffff3c761be in php_couchbase_store_impl (ht=<value optimized out>, return_value=0x105c410,
    return_value_ptr=<value optimized out>, this_ptr=<value optimized out>, return_value_used=<value optimized out>,
    op=<value optimized out>, multi=0, oo=1)
    at /home/jenkins/workspace/php-ext-couchbase-multi/platform/ubuntu-x64-sdk-builder.couchbaseqe.com/couchbase.c:1826
#3 0x00007ffff3c769ee in zim_couchbase_set (ht=0, return_value=0x7, return_value_ptr=0x0, this_ptr=0x7ffff536dcaa,
    return_value_used=17352768)
    at /home/jenkins/workspace/php-ext-couchbase-multi/platform/ubuntu-x64-sdk-builder.couchbaseqe.com/couchbase.c:2343
#4 0x00000000006e7faa in ?? ()
#5 0x00000000006bf0b0 in execute ()
#6 0x0000000000696afd in zend_execute_scripts ()
#7 0x00000000006426f8 in php_execute_script ()
#8 0x00000000007280c6 in ?? ()
#9 0x00007ffff52a5c4d in __libc_start_main () from /lib/libc.so.6
#10 0x000000000042c6f9 in _start ()

 Comments   
Comment by Jan Lehnardt (Inactive) [ 08/Jun/12 ]
haven't seen this for quite some time.




[PCBC-41] _get_impl segfaults Created: 09/Feb/12  Updated: 01/Mar/12  Resolved: 01/Mar/12

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

Type: Bug Priority: Major
Reporter: Jan Lehnardt (Inactive) Assignee: Xinchen Hui
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Sometimes, functions/methods calling get or getMulti segfault. if I run make test a few times I can get it to fail at least once.

Here's the backtrace:

(gdb) bt
#0 0x0000000107b6c1cb in _zval_dtor_func ()
#1 0x0000000107ba3adf in ZEND_ASSIGN_SPEC_CV_CONST_HANDLER ()
#2 0x0000000107bd0b5d in execute ()
#3 0x0000000107b631da in zend_call_function ()
#4 0x000000010854ca68 in php_couchbase_get_impl () at couchbase.c:829
#5 0x0000000107bd0480 in zend_do_fcall_common_helper_SPEC ()
#6 0x0000000107bd0b5d in execute ()
#7 0x0000000107b6c6d9 in zend_execute_scripts ()
#8 0x0000000107b1d03e in php_execute_script ()
#9 0x0000000107be6cd8 in main ()


 Comments   
Comment by Xinchen Hui [ 19/Feb/12 ]
I really can't reproduce this.....
Comment by Jan Lehnardt (Inactive) [ 22/Feb/12 ]
Got an updated bt here:
(gdb) bt
#0 0x000000010ecb8680 in _zend_mm_free_canary_int ()
#1 0x000000010ec83321 in _efree ()
#2 0x000000010ec9c244 in _zval_dtor_func ()
#3 0x000000010ed015dd in zend_assign_to_variable ()
#4 0x000000010ecd41bb in ZEND_ASSIGN_SPEC_CV_CONST_HANDLER ()
#5 0x000000010ed013cd in execute ()
#6 0x000000010ec93273 in zend_call_function ()
#7 0x000000010f67e908 in php_couchbase_get_impl () at couchbase.c:831
#8 0x000000010ed00cf0 in zend_do_fcall_common_helper_SPEC ()
#9 0x000000010ed013cd in execute ()
#10 0x000000010ec9c799 in zend_execute_scripts ()
#11 0x000000010ec4d222 in php_execute_script ()
#12 0x000000010ed17602 in main ()
Comment by Jan Lehnardt (Inactive) [ 24/Feb/12 ]
The above bt's are on Mac OS X. I'm getting this one here on linux using PHP 5.3.6, although not on the ec2 machine provided, but I think it's the same cause.

The test that makes this fail is get() ing a nonexistent key with a callback.

(gdb) bt
#0 0x00000000006b6f23 in ?? ()
#1 0x00000000006968b5 in _zval_dtor_func ()
#2 0x000000000070701a in ?? ()
#3 0x00000000006bd1eb in execute ()
#4 0x000000000068acc1 in zend_call_function ()
#5 0x00002ae81539e28d in php_couchbase_get_impl (ht=<optimized out>, return_value=0x1a14ae8, this_ptr=0x0,
    multi=0, oo=0, return_value_ptr=<optimized out>, return_value_used=<optimized out>)
    at /home/jan/src/php-ext-couchbase/couchbase.c:1456
#6 0x000000000070c3fd in ?? ()
#7 0x00000000006bd1eb in execute ()
#8 0x0000000000698850 in zend_execute_scripts ()
#9 0x00000000006458f3 in php_execute_script ()
#10 0x000000000042c53e in ?? ()
#11 0x00002ae8147a030d in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
#12 0x000000000042c58d in _start ()




[PCBC-40] Migrating from ext/memcache to ext/couchbase (no d) Created: 09/Feb/12  Updated: 01/Mar/12  Resolved: 01/Mar/12

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

Type: Task Priority: Major
Reporter: Jan Lehnardt (Inactive) Assignee: Jan Lehnardt (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Write a migration guide form ext/memcache (no d) to ext/couchbase

Explain the API differences and reasoning and show examples on what a user would need to do to migrate existing code.

If possible, provide a script that makes migration easier, either by bulk-changing the existing code through safe transformations or a wrapper class that maps semantics.

 Comments   
Comment by Jan Lehnardt (Inactive) [ 01/Mar/12 ]
https://github.com/couchbase/docs/pull/48




[PCBC-39] Migrating from ext/memcached to ext/couchbase Created: 09/Feb/12  Updated: 01/Mar/12  Resolved: 01/Mar/12

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

Type: Task Priority: Major
Reporter: Jan Lehnardt (Inactive) Assignee: Jan Lehnardt (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Write a migration guide form ext/memcached to ext/couchbase

Explain the API differences and reasoning and show examples on what a user would need to do to migrate existing code.

If possible, provide a script that makes migration easier, either by bulk-changing the existing code through safe transformations or a wrapper class that maps semantics.

 Comments   
Comment by Jan Lehnardt (Inactive) [ 14/Feb/12 ]
Progress:

 - pinged MC on how to create a new tutorial page.
 - started collecting API differences.
Comment by Jan Lehnardt (Inactive) [ 01/Mar/12 ]
https://github.com/couchbase/docs/pull/48




[PCBC-32] Test compat with ext/memcache[d] stored values Created: 30/Jan/12  Updated: 08/Jun/12  Resolved: 08/Jun/12

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

Type: Improvement Priority: Major
Reporter: Jan Lehnardt (Inactive) Assignee: Jan Lehnardt (Inactive)
Resolution: Fixed Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
http://couchbase.com/forums/thread/php-couchbase-ext-cannot-read-data-set-memcached-ext-both-ascii-and-binary-and-memcache-ext reports:

> Then checking if couchbase will be able to read data previously set by memcached-1.0.2 (both ascii and binary) or memcache-3.0.6 extensions it always fails with:
PHP Warning: Couchbase::get(): unknown payload type ...

 Comments   
Comment by işbaran akçayır [ 11/Apr/12 ]
Hello,

We too can't use new client because of this compatibility issue, are there any plans in near future for a workaround ?




[PCBC-31] test 026 fails Created: 18/Jan/12  Updated: 01/Mar/12  Resolved: 01/Mar/12

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

Type: Bug Priority: Major
Reporter: Jan Lehnardt (Inactive) Assignee: Xinchen Hui
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
tests/026.php fails every time.

It seems that the final callbacks are either never called or never waited for.

cat tests/026.log

---- EXPECTED OUTPUT
string(0) ""
string(5) "Array"
string(6) "prefix"
bool(true)
bool(true)
bool(true)
bool(true)
Array
(
    [foo] => dummy
    [bar] => dummy
)
Array
(
    [key] => foo
    [value] => dummy
)
Array
(
    [key] => bar
    [value] => dummy
)
---- ACTUAL OUTPUT
string(0) ""
string(5) "Array"
string(6) "prefix"
bool(true)
bool(true)
bool(true)
bool(true)
---- FAILED



 Comments   
Comment by Xinchen Hui [ 30/Jan/12 ]
I can not reproduce this on that box ( ec2-176-34-8-204.ap-northeast-1.compute.amazonaws.com )




[PCBC-26] getting started is also on the web page Created: 12/Jan/12  Updated: 01/Mar/12  Resolved: 01/Mar/12

Status: Closed
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: Matt Ingenthron Assignee: Jan Lehnardt (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
A subset of the main getting started guide, including a code example, should also be on the main web page for the PHP client library.

 Comments   
Comment by Jan Lehnardt (Inactive) [ 01/Mar/12 ]
I disagree, we should very prominently link to the getting started guide, I've done so.




[PCBC-27] getting started screencast is available Created: 12/Jan/12  Updated: 26/Aug/13  Resolved: 07/Nov/12

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

Type: New Feature Priority: Major
Reporter: Matt Ingenthron Assignee: Matt Ingenthron
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified





[PCBC-20] building under CI Created: 12/Jan/12  Updated: 11/Aug/12  Resolved: 11/Aug/12

Status: Closed
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: Jan Lehnardt (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
New CI environment is Jenkins. Matt can provide details on setup.




[PCBC-23] building shippable artifacts under CI Created: 12/Jan/12  Updated: 07/Nov/12  Resolved: 07/Nov/12

Status: Closed
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: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified





[PCBC-21] running unit tests under CI Created: 12/Jan/12  Updated: 11/Aug/12  Resolved: 11/Aug/12

Status: Closed
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: Jan Lehnardt (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified





[PCBC-18] does not work against PHP 5.2 Created: 07/Dec/11  Updated: 01/Mar/12  Resolved: 01/Mar/12

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

Type: Bug Priority: Major
Reporter: Matt Ingenthron Assignee: Jan Lehnardt (Inactive)
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: [ingenthr@centos52lmA php-couchbase-memcached]$ cat /etc/issue
CentOS release 5.5 (Final)
Kernel \r on an \m

[ingenthr@centos52lmA php-couchbase-memcached]$ php --version
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/memcached.so' - /usr/lib64/php/modules/memcached.so: undefined symbol: empty_fcall_info in Unknown on line 0
PHP 5.2.10 (cli) (built: Sep 20 2010 13:41:02)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies


 Description   
[ingenthr@centos52lmA php-couchbase-memcached]$ php test.php PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/memcached.so' - /usr/lib64/php/modules/memcached.so: undefined symbol: empty_fcall_info in Unknown on line 0
PHP Fatal error: Class 'Memcached' not found in /home/ingenthr/rightscale/php-couchbase-memcached/test.php on line 2

Doing some searches indicates this may be an issue with php 5.2 I'll double check to be sure I have the right package, but I think this should work.

 Comments   
Comment by Jan Lehnardt (Inactive) [ 01/Mar/12 ]
with ext/couchbase we are already there.




[PCBC-16] Enable Binary protocol by default. Created: 31/Oct/11  Updated: 01/Mar/12  Resolved: 01/Mar/12

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

Type: Bug Priority: Major
Reporter: Jan Lehnardt (Inactive) Assignee: Jan Lehnardt (Inactive)
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by Jan Lehnardt (Inactive) [ 01/Mar/12 ]
with ext/couchbase we are already there.




[PCBC-12] Create PHP Query server Created: 27/Oct/11  Updated: 08/Jun/12  Resolved: 08/Jun/12

Status: Closed
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 (Inactive) Assignee: Jan Lehnardt (Inactive)
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Currently only JavaScript is supported as a language to write views. PHP Developers would be more comfortable using PHP, we should bundle a PHP query server with Couchbase.

There's a start at: https://github.com/janl/couchdb/commits/php-query-server2

 Comments   
Comment by Jan Lehnardt (Inactive) [ 08/Jun/12 ]
Not gonna happen




[PCBC-11] Allow design docs in other languages than JavaScript Created: 27/Oct/11  Updated: 08/Jun/12  Resolved: 08/Jun/12

Status: Closed
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 (Inactive) Assignee: Jan Lehnardt (Inactive)
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Currently, only JavaScript design docs are supported. We should make the SDK read the Couchbase configuration and allow for other languages when other query severs are enabled.

 Comments   
Comment by Matt Ingenthron [ 27/Oct/11 ]
I'm fuzzy on what this one is. Accessing views and view responses are orthogonal to defining them, right?

I'm sure there's an answer, I just need to learn what it is. :)
Comment by Sergey Avseyev [ 10/Apr/12 ]
The libcouchbase accepts just byte stream for body https://github.com/couchbase/libcouchbase/blob/1.1.0dp/src/couch.c#L373-L374

This allows to PUT design document written in any language, supported by server. Also the implementation language isn't reflected on view execution. As soon server will be able to run map/reduce in any language apart from javascript, all client (at least based on libcouchbase) will be able to create/update/delete and execute them.
Comment by Jan Lehnardt (Inactive) [ 08/Jun/12 ]
Not gonna happen




[PCBC-10] Enable SASL Created: 13/Oct/11  Updated: 01/Mar/12  Resolved: 01/Mar/12

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

Type: Improvement Priority: Major
Reporter: Jan Lehnardt (Inactive) Assignee: Jan Lehnardt (Inactive)
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
we currently explicitly build without SASL bindings. We should look into enabling them, at least optionally.

 Comments   
Comment by Matt Ingenthron [ 27/Oct/11 ]
Primary approach for right now is to use client side moxi configured for SASL.
Comment by Jan Lehnardt (Inactive) [ 01/Mar/12 ]
with ext/couchbase we are already there.




[PCBC-136] PHP client needs to move to later libcouchbase2 API Created: 18/Oct/12  Updated: 23/Oct/12  Resolved: 22/Oct/12

Status: Closed
Project: Couchbase PHP client library
Component/s: None
Affects Version/s: 1.1.0-dp4
Fix Version/s: 1.1.0-dp5
Security Level: Public

Type: Bug Priority: Major
Reporter: Matt Ingenthron Assignee: Sergey Avseyev
Resolution: Fixed Votes: 2
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
With the current PHP extension and the newly updated libcouchbase, bug reporter sees:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/couchbase.so' - /usr/lib64/php/modules/couchbase.so: undefined symbol: lcb_set_view_complete_callback in Unknown on line 0

It looks like we changed this on September 26, so we'll need to update the PHP client.

 Comments   
Comment by Matt Ingenthron [ 18/Oct/12 ]
Sergey, since you'd made the change in libcouchbase, can you look at this?
Comment by Paul B [ 20/Oct/12 ]
Having the same issue.
Comment by Matt Ingenthron [ 21/Oct/12 ]
I think we'll try to get a new release out for this on the 22nd, sorry for the trouble.
Comment by Matt Ingenthron [ 21/Oct/12 ]
I believe Trond has a fix for this here: http://review.couchbase.org/#/c/21812/
Comment by Paul B [ 23/Oct/12 ]
Hi guys, ok so I update and now I am getting the following error:

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_encode in Unknown on line 0

Thank you.
Comment by Paul B [ 23/Oct/12 ]
Ah sorry, it was due to this issue --> http://www.couchbase.com/forums/thread/couchbaseso-undefined-symbol-phpjsonencode-unknown-line-0

All good now. Thank you!!




[PCBC-116] Incompatibility between 1.0.3 and 1.0.5 Created: 20/Sep/12  Updated: 24/Sep/12  Resolved: 24/Sep/12

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

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


 Description   
So I've been able to put together a good test case...

Here's what I did:
1. switch back to SDK 1.0.3
2. set a serialized array with 1.0.3
3. switch back to SDK 1.0.5
4. try to retrieve the serialized object with 1.0.5.
5. notice the described behavior above.

Here's a full break down:

*** REPLACE 1.0.5 with 1.0.3 and restart Apache ***

MICHAEL'S MACBOOK PRO /usr/lib/php/extensions/no-debug-non-zts-20090626: ll
total 2632
drwxr-xr-x 13 root wheel 442 Sep 19 17:05 .
drwxr-xr-x 4 root wheel 136 Jun 20 17:08 ..
-rw-r--r-- 1 mssteuer wheel 173216 Mar 12 2012 apc.so
-rwxr-xr-x@ 1 mssteuer wheel 73520 Sep 19 17:06 couchbase.so
-rwxr-xr-x 1 mssteuer wheel 62812 Apr 11 12:14 couchbase.so.101
-rwxr-xr-x 1 mssteuer wheel 62836 Jul 2 15:43 couchbase.so.102
-rwxr-xr-x@ 1 root wheel 62836 Sep 19 17:05 couchbase.so.103
-rw-r--r-- 1 mssteuer wheel 67428 Sep 12 2011 memcache.so
-rw-r--r-- 1 mssteuer wheel 64120 Sep 12 2011 memcached.so
-rw-r--r-- 1 mssteuer wheel 467912 Jan 7 2012 mongo.so
-rwxr-xr-x 1 mssteuer wheel 57312 Jul 14 10:47 phpcups.so
-rw-r--r-- 1 mssteuer wheel 70148 Mar 23 17:47 ssh2.so
-rwxr-xr-x 1 root wheel 202672 Sep 19 14:59 xdebug.so
MICHAEL'S MACBOOK PRO /usr/lib/php/extensions/no-debug-non-zts-20090626: sudo cp couchbase.so couchbase.so.105
Password:
MICHAEL'S MACBOOK PRO /usr/lib/php/extensions/no-debug-non-zts-20090626: sudo cp couchbase.so.103 couchbase.so
MICHAEL'S MACBOOK PRO /usr/lib/php/extensions/no-debug-non-zts-20090626: sudo apachectl restart

*** EXECUTE PHP BELOW TO SET SERIALIZED ARRAY WITH 1.0.3 ***

echo "<pre>";
$cb = Zend_Registry::get("couchbase");

$testarray = array(
"stringvalue" => "blabla",
"intvalue" => 1234,
"arrvalue" => array(
"stringvalue" => "hello world",
"intvalue" => 98765,
),
"boolvalue" => true,
"float" => 1.239393
);

try {
$cb->set("cbtest", $testarray);
echo "Result Code:\n";
print_r($cb->getResultCode());
} catch(Exception $e) {
echo $e->getMessage();
}

*** THIS PRINTS OUT THE RESULT BELOW ***

Result Code:
0

*** TELNET TO COUCHBASE TO CONFIRM DATA IS SET ***

MICHAEL'S MACBOOK PRO /usr/lib/php/extensions/no-debug-non-zts-20090626: telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.
get cbtest
VALUE cbtest 31 185
a:5:{s:11:"stringvalue";s:6:"blabla";s:8:"intvalue";i:1234;s:8:"arrvalue";a:2:{s:11:"stringvalue";s:11:"hello world";s:8:"intvalue";i:98765;}s:9:"boolvalue";b:1;s:5:"float";d:1.239393;}
END
quit
Connection closed by foreign host.

*** REPLACE 1.0.3 with 1.0.5 and restart Apache ***

MICHAEL'S MACBOOK PRO /usr/lib/php/extensions/no-debug-non-zts-20090626: sudo cp couchbase.so.105 couchbase.so
MICHAEL'S MACBOOK PRO /usr/lib/php/extensions/no-debug-non-zts-20090626: sudo apachectl restart

*** EXECUTE PHP BELOW TO TRY AND RETRIEVE ARRAY FROM COUCHBASE, NOW USING 1.0.5 ***

echo "<pre>";
$cb = Zend_Registry::get("couchbase");

$result = $cb->get("cbtest");
print_r($result);

*** $result IS NULL AND THE "UNKNOWN PAYLOAD" AND "FAILED TO GET VALUE" WARNINGS ARE OBSERVED IN THE LOGS ***

[Thu Sep 20 11:33:55 2012] [error] [client 127.0.0.1] PHP Warning: Couchbase::get(): unknown payload type in /Users/mssteuer/Documents/_Titan/XAPI/trunk/application/controllers/TestController.php on line 809
[Thu Sep 20 11:33:55 2012] [error] [client 127.0.0.1] PHP Stack trace:
[Thu Sep 20 11:33:55 2012] [error] [client 127.0.0.1] PHP 1. {main}() /Users/mssteuer/Documents/_Titan/XAPI/trunk/index.php:0
[Thu Sep 20 11:33:55 2012] [error] [client 127.0.0.1] PHP 2. Zend_Application->run() /Users/mssteuer/Documents/_Titan/XAPI/trunk/index.php:6
[Thu Sep 20 11:33:55 2012] [error] [client 127.0.0.1] PHP 3. Zend_Application_Bootstrap_Bootstrap->run() /Users/mssteuer/Documents/_Titan/XAPI/trunk/library/Zend/Application.php:366
[Thu Sep 20 11:33:55 2012] [error] [client 127.0.0.1] PHP 4. Zend_Controller_Front->dispatch() /Users/mssteuer/Documents/_Titan/XAPI/trunk/library/Zend/Application/Bootstrap/Bootstrap.php:97
[Thu Sep 20 11:33:55 2012] [error] [client 127.0.0.1] PHP 5. Zend_Controller_Dispatcher_Standard->dispatch() /Users/mssteuer/Documents/_Titan/XAPI/trunk/library/Zend/Controller/Front.php:954
[Thu Sep 20 11:33:55 2012] [error] [client 127.0.0.1] PHP 6. Zend_Controller_Action->dispatch() /Users/mssteuer/Documents/_Titan/XAPI/trunk/library/Zend/Controller/Dispatcher/Standard.php:295
[Thu Sep 20 11:33:55 2012] [error] [client 127.0.0.1] PHP 7. TestController->testcbAction() /Users/mssteuer/Documents/_Titan/XAPI/trunk/library/Zend/Controller/Action.php:513
[Thu Sep 20 11:33:55 2012] [error] [client 127.0.0.1] PHP 8. Couchbase->get() /Users/mssteuer/Documents/_Titan/XAPI/trunk/application/controllers/TestController.php:809
[Thu Sep 20 11:33:55 2012] [error] [client 127.0.0.1] PHP Warning: Couchbase::get(): Failed to get a value from server: Generic error in /Users/mssteuer/Documents/_Titan/XAPI/trunk/application/controllers/TestController.php on line 809
[Thu Sep 20 11:33:55 2012] [error] [client 127.0.0.1] PHP Stack trace:
[Thu Sep 20 11:33:55 2012] [error] [client 127.0.0.1] PHP 1. {main}() /Users/mssteuer/Documents/_Titan/XAPI/trunk/index.php:0
[Thu Sep 20 11:33:55 2012] [error] [client 127.0.0.1] PHP 2. Zend_Application->run() /Users/mssteuer/Documents/_Titan/XAPI/trunk/index.php:6
[Thu Sep 20 11:33:55 2012] [error] [client 127.0.0.1] PHP 3. Zend_Application_Bootstrap_Bootstrap->run() /Users/mssteuer/Documents/_Titan/XAPI/trunk/library/Zend/Application.php:366
[Thu Sep 20 11:33:55 2012] [error] [client 127.0.0.1] PHP 4. Zend_Controller_Front->dispatch() /Users/mssteuer/Documents/_Titan/XAPI/trunk/library/Zend/Application/Bootstrap/Bootstrap.php:97
[Thu Sep 20 11:33:55 2012] [error] [client 127.0.0.1] PHP 5. Zend_Controller_Dispatcher_Standard->dispatch() /Users/mssteuer/Documents/_Titan/XAPI/trunk/library/Zend/Controller/Front.php:954
[Thu Sep 20 11:33:55 2012] [error] [client 127.0.0.1] PHP 6. Zend_Controller_Action->dispatch() /Users/mssteuer/Documents/_Titan/XAPI/trunk/library/Zend/Controller/Dispatcher/Standard.php:295
[Thu Sep 20 11:33:55 2012] [error] [client 127.0.0.1] PHP 7. TestController->testcbAction() /Users/mssteuer/Documents/_Titan/XAPI/trunk/library/Zend/Controller/Action.php:513
[Thu Sep 20 11:33:55 2012] [error] [client 127.0.0.1] PHP 8. Couchbase->get() /Users/mssteuer/Documents/_Titan/XAPI/trunk/application/controllers/TestController.php:809

*** TELNET INTO COUCHBASE AGAIN TO VERIFY DATA IS STILL PRESENT (IE. IT WASN'T A MISS) ***

MICHAEL'S MACBOOK PRO /usr/lib/php/extensions/no-debug-non-zts-20090626: telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.
get cbtest
VALUE cbtest 31 185
a:5:{s:11:"stringvalue";s:6:"blabla";s:8:"intvalue";i:1234;s:8:"arrvalue";a:2:{s:11:"stringvalue";s:11:"hello world";s:8:"intvalue";i:98765;}s:9:"boolvalue";b:1;s:5:"float";d:1.239393;}
END

*** THEN, I RE-SET THE SAME ARRAY USING 1.0.5 (SAME PHP CODE AS ABOVE) ***

*** GET VALUE FROM COUCHBASE TO COMPARE ***

get cbtest
VALUE cbtest 4 185
a:5:{s:11:"stringvalue";s:6:"blabla";s:8:"intvalue";i:1234;s:8:"arrvalue";a:2:{s:11:"stringvalue";s:11:"hello world";s:8:"intvalue";i:98765;}s:9:"boolvalue";b:1;s:5:"float";d:1.239393;}
END

*** CONCLUSION ***
The value looks the same, however this one has a "4" flag instead of a "31" flag above... Not sure what that means, but likely the cause of the issue.

 Comments   
Comment by Michael Nitschinger [ 20/Sep/12 ]
Since we're just passing it through libcouchbase and the serialized php array is the same - could it be possible that this is an incompatibility in libcouchbase?
Comment by Perry Krug [ 20/Sep/12 ]
Anything's possible ;-) Adding Trond to have a look...
Comment by Perry Krug [ 20/Sep/12 ]
Trond, can you take a look at this as well? I'm getting the libcouchbase versioning from the customer now...
Comment by Matt Ingenthron [ 20/Sep/12 ]
Mike: can you please see if you can reproduce this and possibly identify the cause? I don't see any reason flags should have changed.
Comment by Perry Krug [ 20/Sep/12 ]
I'm still waiting on response from the customer, but it might be that they are NOT upgrading libcouchbase between these steps...would that be required? If not, then it's definitely in the PHP library right?
Comment by Michael Jackson [ 20/Sep/12 ]
For what it's worth, on the 1.0.x branch of the php-ext, git diff fc6ff727aed5190b1844eab75143cccedf52c3c0..62456429138522f15f6f42b0fad28d74a77d5cfb should show a complete diff between 1.0.3 release revision and 1.0.5.

The only part of that diff that I see that interacts with flag at all is something involving preserving order on multi-gets (changeset 37a567f4 from May 17th by Jan L.), and that's just using flag as part of a calculation rather than modifying it (and the test code above does not seem to involve a multi-get in any case). So I don't see a smoking gun per se in the diff.

Using the 1.0.3 release with cb server 1.8 and libcouchbase 1.0.4-1 on my test zone, after executing the testing code above (slight modification to directly connect instead of retrieving something from ZF's registry), I get data which seems to match the format reported for 1.0.5 above:
get cbtest
VALUE cbtest 4 185
a:5:{s:11:"stringvalue";s:6:"blabla";s:8:"intvalue";i:1234;s:8:"arrvalue";a:2:{s:11:"stringvalue";s:11:"hello world";s:8:"intvalue";i:98765;}s:9:"boolvalue";b:1;s:5:"float";d:1.239393;}
END

And the same with 1.0.5 (had to patch in one extra rev here for tsrm_ls to get it to build with my debug php, but that should not affect anything).
Comment by Michael Jackson [ 20/Sep/12 ]
(I'm assigning this back to you Perry, as I'm not sure who might best be the recipient. If you need more help debugging from the php-ext side I'll be happy to help as I can.)
Comment by Matt Ingenthron [ 20/Sep/12 ]
Michael: to be clear, sounds like you couldn't reproduce it?
Comment by Matt Ingenthron [ 24/Sep/12 ]
Assigning to Mike just to check to see about repro
Comment by Matt Ingenthron [ 24/Sep/12 ]
Recent discussion indicates could not repro on a couple platforms, but Mark is going to try under valgrind. Assigning to him.
Comment by Mark Nunberg [ 24/Sep/12 ]
I have so far not been able to get valgrind to complain about anything (I've tested both on OS X and Linux with the ext versions specified).. except when I serialize with JSON and use compression (in which case it returns with an error before it actually sets the key on the server).

However the key to the problem is the flags value. We should never be getting 31 (first five bits set) for flags under PHP. The first five bits represent the value type, and there is no value for 31 (maximum it seems is 6).

I do see errors when doing compression (See PCBC-111). Can you tell me if your apache is configured to use customized compression or serialization mechanisms (it seems it isn't.. but it's worthwhile checking..)
Comment by Perry Krug [ 24/Sep/12 ]
Before into back to the customer, can you confirm that you executed the code that he provided which is supposed to reproduce the issue reliably?
Comment by Mark Nunberg [ 24/Sep/12 ]
I've tested this from the command line on Linux and OS X with the libcouchbase and extension versions described.. I've also tested it using apache and php5.4 on debian (I have not had the opportunity to do so on OS X).

I'm 99% sure that there is memory corruption is the culprit, but unfortunately I have not been able to reproduce this using a variety of configurations, unless he has a non-default serialization or compression enabled (which does not seem to be the case).

How is he constructing the Couchbase object, and what does it do until it reaches that point which is pasted in the code? It's quite obvious from the stack trace that this isn't a 'simple' PHP script, and that there is some more machinery involved when initially constructing the Couchbase object.
Comment by Perry Krug [ 24/Sep/12 ]
Thanks Mordechai, asking him now.

Can you clarify for me what the expected flags are for 1.0.3 and 1.0.5 on a serialized array?
Comment by Perry Krug [ 24/Sep/12 ]
From the customer:


Here's how the couchbase object is instantiated in our Zend Framework Bootstrap.php:

// couchbase
$couchbase = $this->getOption("couchbase");
if($couchbase) {
$hosts = explode(",", $couchbase["host"]);
foreach($hosts as $key => $host) {
$hosts[$key] = $host . ":" . $couchbase["port"];
}
shuffle($hosts);
$hoststring = implode(";", $hosts);
$cb = new Couchbase($hoststring, $couchbase['username'], $couchbase['password'], $couchbase['bucket']);
Zend_Registry::set("couchbase", $cb);
} else {
Zend_Registry::set("couchbase", null);
}

(the couchbase ini config below):

couchbase.host = "ec2-23-23-179-50.compute-1.amazonaws.com,ec2-23-23-179-51.compute-1.amazonaws.com,ec2-23-23-179-52.compute-1.amazonaws.com,ec2-23-21-229-162.compute-1.amazonaws.com,ec2-23-21-229-186.compute-1.amazonaws.com,ec2-23-21-229-188.compute-1.amazonaws.com"
couchbase.port = 8091
couchbase.username = ******
couchbase.password = ****************
couchbase.bucket = default
----------------------


Is that enough?
Comment by Perry Krug [ 24/Sep/12 ]
Screenshot of his PHP info: http://support.couchbase.com/attachments/token/njmhbuo4i63mlop/?name=Screen+Shot+2012-09-24+at+12.11.52+PM.png
Comment by Perry Krug [ 24/Sep/12 ]
Note the 1.0.2...is that how the version was reported?
Comment by Mark Nunberg [ 24/Sep/12 ]
Then he is in fact using v1.0.2, not v1.0.3 as originally claimed.

Quickly looking at the commit for 1.0.3 (i.e. changes between 1.0.2 and 1.0.3) I see significant modification of the flag values. Basically 1.0.3 will set the flag to PHP's internal type code, whereas 1.0.3 and onwards use pecl-memcached style extension flags. See PCBC-61.

In short, the versions are incompatible, and 1.0.2 is broken. Unfortunately there is no nice way to have a mixed-mode client setting (i the user is daring enough, he can copy the old flag code from 1.0.2+ and paste it in the newer version..) and the design of the old flag mechanism was inherently flawed (and not compatible with memcached either).
Comment by Perry Krug [ 24/Sep/12 ]
Thanks Mordechai, I'm checking with the customer again. Is there any sort of addition we could make to 1.0.5+ to make it backwards compatible with 1.0.2?
Comment by Perry Krug [ 24/Sep/12 ]
Okay, we can stand down on this...customer was only testing on a dev environment which was 1.0.2. All prod is 1.0.3 so we shouldn't have any issue.

Thanks for everyone's help.
Comment by Mark Nunberg [ 24/Sep/12 ]
It can be possible to some extent. Let me write a simple patch against 1.0.5 and check it out. I'm not sure if we'd want to place it directly in 1.0.5.. but that is more a question for Matt.
Comment by Matt Ingenthron [ 24/Sep/12 ]
Closing this, as 1.0.2 is long ago and this affects primarily a dev environment which can (and should) upgrade.




[PCBC-107] Document 'rest' args for increment/decrement Created: 02/Sep/12  Updated: 02/Sep/12  Resolved: 02/Sep/12

Status: Closed
Project: Couchbase PHP client library
Component/s: docs
Affects Version/s: 1.1.0-dp2
Fix Version/s: None
Security Level: Public

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


 Description   
There are other arguments such as initial and expiry used in the tests and actually implemented, but they are not documented anywhere.

(Additionally, I see there's a "do create" option for arithmetic in the PHP library. PHP is capable of distinguishing between a 'NULL'-like value and '0', so this argument should not be needed..)

 Comments   
Comment by Mark Nunberg [ 02/Sep/12 ]
duplicate of pcbc-105




[PCBC-81] User reports expiration is not working properly Created: 05/Jul/12  Updated: 26/Aug/13  Resolved: 18/Sep/12

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

Type: Bug Priority: Major
Reporter: Mike Wiederhold Assignee: Michael Jackson
Resolution: Cannot Reproduce Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
http://www.couchbase.com/forums/thread/recent-issues-couchbase-eviction-php-sessions-and-expired-keys

 Comments   
Comment by Mark Nunberg [ 18/Sep/12 ]
The user states that the pecl-memcached extension is being used. Expiration seems to work with php-ext-couchbase, so I'm closing this.




[PCBC-78] PHP value compression incompatible with Java/.NET Created: 26/Jun/12  Updated: 10/Aug/12  Resolved: 10/Aug/12

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

Type: Bug Priority: Major
Reporter: Tim Smith (Inactive) Assignee: Matt Ingenthron
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
A customer has reported a bug in Couchbase's PHP client code. The code referred to is actually a compiled C module that PHP talks to. This bug is related to uncompressed JSON content originating from Java/.NET/ETC clients.

Background: When attempting to test PHP fetching of JAVA-originating JSON content from Couchbase, he received errors from the C code that initiates decompression of Couchbase payloads.

After introducing a hack to simply ignore decompression and after fixing a string length bug, everything worked fine.

Here's where the problem lies and what he did. (Note: All those fprintf() calls are his, and the whitespace formatting problems are due to e-mail loss):

Line 680 of "couchbase.c"

static int php_couchbase_zval_from_payload(zval *value, char *payload, size_t payload_len, unsigned int flags, int serializer TSRMLS_DC) /* {{{ */ {
int compressor;
zend_bool payload_emalloc = 0;
#ifdef HAVE_COMPRESSION
char *buffer = NULL;
#endif

fprintf(stdout, "C Code: Entering php_couchbase_zval_from_payload: line 687\n");
fprintf(stdout, "C Code: Raw Payload: %s: line 688\n", payload);

if (payload == NULL && payload_len > 0) {
php_error_docref(NULL TSRMLS_CC, E_WARNING,
"could not handle non-existing value of length %zu", payload_len);
return 0;
} else if (payload == NULL) {
if ((flags & 127) == IS_BOOL) {
ZVAL_FALSE(value);
} else {
ZVAL_EMPTY_STRING(value);
}
return 1;
}

if ((compressor = COUCHBASE_GET_COMPRESSION(flags))) { #ifdef HAVE_COMPRESSION
size_t len, length;
zend_bool decompress_status = 0;
/* This is copied from pecl-memcached */
////memcpy(&len, payload, sizeof(size_t));
len = strlen(payload);
compressor = 123;

fprintf(stdout, "C Code: Attempting to allocate memory bytes: %i: line 711\n", len+1);
buffer = emalloc(len + 1);

////payload_len -= sizeof(size_t);
////payload += sizeof(size_t);
length = len;

switch (compressor) {
case 123:
////Hack job
decompress_status = 1;
length = len;
memcpy(buffer, payload, len + 1);
fprintf(stdout, "\n\nHack fix on line 758:\n\n%s\n\n", buffer);

break;
case COUCHBASE_COMPRESSION_FASTLZ:
#ifdef HAVE_COMPRESSION_FASTLZ
decompress_status = ((length = fastlz_decompress(payload, payload_len, buffer, len)) > 0);
#else
php_error_docref(NULL TSRMLS_CC, E_WARNING, "could not decompress value, no fastlz lib support");
return 0;
#endif
break;
case COUCHBASE_COMPRESSION_ZLIB:
#ifdef HAVE_COMPRESSION_ZLIB
decompress_status = (uncompress((Bytef *)buffer, &length, (Bytef *)payload, payload_len) == Z_OK);
/* Fall back to 'old style decompression' */
if (!decompress_status) {
unsigned int factor = 1, maxfactor = 16;
int status;

do {
length = (unsigned long)payload_len * (1 << factor++);
buffer = erealloc(buffer, length + 1);
memset(buffer, 0, length + 1);
status = uncompress((Bytef *)buffer, (uLongf *)&length, (const Bytef *)payload, payload_len);
} while ((status == Z_BUF_ERROR) && (factor < maxfactor));

if (status == Z_OK) {
decompress_status = 1;
}
}



I believe the ideal mode would be that all Couchbase-supplied clients will default to using compatible methods for storing and retrieving values. Same compression thresholds, and same compression algorithms, by default. That way all of our products will work with each other.

All Couchbase client libraries should have documentation saying how to be compatible with old memcached clients from that language platform that may use a different algorithm. For example, the PHP client should describe what options to set in order to be able to read values from the pecl-memcached extension. That way, upgrading to the Couchbase library will allow readiing data that was saved from an older version. This should be under an "Compatibility with [the non-Couchbase library]" section, and referenced from the "Ugrade" pages as well.


 Comments   
Comment by Matt Ingenthron [ 26/Jun/12 ]
We would like to iterate all of the Couchbase Client libraries forward to use, where possible, common flags to understand data types. There are legacies we will be living with for some time though, so it won't be an overnight transition. Each client library picked flags for itself, without coordination. We'll standardize flags in a future release, but then we'll still have to be able to switch between the two.

The PHP client is supposed to be compatible with pecl-memcached, including compression, out of the box other than where noted in documentation. If there are parts we're missing, we need to file documentation bugs.
Comment by Matt Ingenthron [ 26/Jun/12 ]
See also PCBC-77
Comment by Matt Ingenthron [ 10/Aug/12 ]
Added as a good approach for now. We need to come up with a better approach and that's covered in PCBC-97
Comment by Matt Ingenthron [ 10/Aug/12 ]
Correction, that's covered in PCBC-96. :)




[PCBC-77] client should not decompress an already uncompressed array Created: 25/Jun/12  Updated: 26/Jun/12  Resolved: 26/Jun/12

Status: Closed
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: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
There appear to be some issues with flags and compression as covered in this topic in the forums:
http://www.couchbase.com/forums/thread/cross-platform-read-and-write-couchbase

 Comments   
Comment by Matt Ingenthron [ 26/Jun/12 ]
This now duplicates PCBC-78, which has more information.




[PCBC-76] Segfaults on view loading Created: 25/Jun/12  Updated: 12/Mar/13  Resolved: 12/Mar/13

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

Type: Bug Priority: Major
Reporter: Michael Nitschinger Assignee: Trond Norbye
Resolution: Fixed Votes: 0
Labels: view
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Couchbase Server 2.0 (You are running version 2.0.0 community edition (build-722)) - latest DP release
php-ext-couchbase 1.1.0-dp2
libcouchbase 1.1.0dp6-85 throgh deb repo

Running Ubuntu 12.04


 Description   
Problem Description:
--------------------
The given PHP script was expected to run perfectly fine, instead segfaults.

Version in Use:
---------------
Couchbase Server 2.0 (You are running version 2.0.0 community edition (build-722)) - latest DP release
php-ext-couchbase 1.1.0-dp2
libcouchbase 1.1.0dp6-85 throgh deb repo

The View:
---------
function (doc) {
  if(doc.type == 'session') {
    emit(doc._id, null);
  }
}

Calling PHP Script:
-------------------
<?php
$cb = new Couchbase('127.0.0.1:8091', 'default');
$cb->view('dev_sessions', 'active');
?>

Error Message:
--------------
php: contrib/http_parser/http_parser.c:422: parse_url_char: Assertion `!((*__ctype_b_loc ())[(int) ((ch))] & (unsigned short int) _ISspace)' failed.
Aborted (core dumped)

GDB Backtrace:
--------------

#0 0xb7fdd424 in __kernel_vsyscall ()
#1 0xb78041ef in __GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2 0xb7807835 in __GI_abort () at abort.c:91
#3 0xb77fd095 in __assert_fail_base (fmt=0xb79368b8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
    assertion=0xb7042710 "!((*__ctype_b_loc ())[(int) ((ch))] & (unsigned short int) _ISspace)",
    file=0xb70426ec "contrib/http_parser/http_parser.c", line=422, function=0xb7042f60 "parse_url_char") at assert.c:94
#4 0xb77fd147 in __GI___assert_fail (assertion=0xb7042710 "!((*__ctype_b_loc ())[(int) ((ch))] & (unsigned short int) _ISspace)",
    file=0xb70426ec "contrib/http_parser/http_parser.c", line=422, function=0xb7042f60 "parse_url_char") at assert.c:103
#5 0xb703e97f in ?? () from /usr/lib/libcouchbase.so.1
#6 0xb7041015 in ?? () from /usr/lib/libcouchbase.so.1
#7 0xb70337da in libcouchbase_make_couch_request () from /usr/lib/libcouchbase.so.1
#8 0xb73bcb45 in php_couchbase_view_impl (ht=<optimized out>, return_value=0xb779563c, this_ptr=0xb7798e70, oo=1,
    return_value_ptr=<optimized out>, return_value_used=<optimized out>)
    at /home/michael/Downloads/php-ext-couchbase/couchbase.c:2563
#9 0x083d2a85 in execute_internal (execute_data_ptr=0xb741c883, return_value_used=-1216896628)
    at /build/buildd/php5-5.4.4/Zend/zend_execute.c:1480
#10 0xb741c883 in xdebug_execute_internal (current_execute_data=0xb777a18c, return_value_used=1)
    at /build/buildd/xdebug-2.2.0/build-php5/xdebug.c:1482
#11 0x083d1898 in zend_do_fcall_common_helper_SPEC (execute_data=0xb777a18c) at /build/buildd/php5-5.4.4/Zend/zend_vm_execute.h:644
#12 0x0838d605 in execute (op_array=0xb741c491) at /build/buildd/php5-5.4.4/Zend/zend_vm_execute.h:410
#13 0xb741c491 in xdebug_execute (op_array=0xb77991fc) at /build/buildd/xdebug-2.2.0/build-php5/xdebug.c:1390
#14 0x083d1be2 in zend_do_fcall_common_helper_SPEC (execute_data=0xb777a030) at /build/buildd/php5-5.4.4/Zend/zend_vm_execute.h:669
#15 0x0838d605 in execute (op_array=0xb741c491) at /build/buildd/php5-5.4.4/Zend/zend_vm_execute.h:410
#16 0xb741c491 in xdebug_execute (op_array=0xb7794adc) at /build/buildd/xdebug-2.2.0/build-php5/xdebug.c:1390
#17 0x083244b9 in zend_execute_scripts (type=0, retval=0xbfffe124, file_count=0) at /build/buildd/php5-5.4.4/Zend/zend.c:1279
#18 0x082bda3e in php_execute_script (primary_file=0xbfffe124) at /build/buildd/php5-5.4.4/main/main.c:2473
#19 0x083d4593 in do_cli (argc=0, argv=0xbffff4c5) at /build/buildd/php5-5.4.4/sapi/cli/php_cli.c:988
#20 0x0806aefe in main (argc=2, argv=0xbffff344) at /build/buildd/php5-5.4.4/sapi/cli/php_cli.c:1361

 Comments   
Comment by Matt Ingenthron [ 02/Jul/12 ]
Laruence: Can you have a quick look at this? Is this something simple?
Comment by Matt Ingenthron [ 02/Jul/12 ]
Another note from a user:
i'm gonna guess that's what's really happening is a buffer overrun somewhere else which then clobbers' http_parser's internal state
because i've been using http_parser for a long time and i've never seen it crap like that
Comment by Michael Nitschinger [ 03/Aug/12 ]
I think this can be closed, it works with a recent build of php-ext-couchbase with the latest libcouchbase (also, this ticket was opened against the unstable branch and it will be fixed for the final relase).
Comment by Sergey Avseyev [ 12/Mar/13 ]
Looks like it still relevant

<jgillmanjr> Greetings. I'm not sure if this would be the place to get further information, but when trying to make a view call using the PHP client, I get this as an error: php: contrib/http_parser/http_parser.c:422: parse_url_char: Assertion `!((*__ctype_b_loc ())[(int) ((ch))] & (unsigned short int) _ISspace)' failed.
<jgillmanjr> Googling only shows a bug thread that indicates this has been resolved. I'm running the 2.0.4 version of the library and just recompiled the latest source version of the php client

"php -i" output (http://dpaste.org/WGcNG/raw/)
couchbase

couchbase support => enabled
version => 1.1.2
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.durability_default_poll_interval => 100000 => 100000
couchbase.durability_default_timeout => 40000000 => 40000000
couchbase.serializer => php => php
couchbase.view_timeout => 75 => 75

php code (http://dpaste.org/WCs3Z/raw/)
<?php
        $cb = new Couchbase("couchbase1:8091", "customer_mrc", "customer_mrc", "customer_mrc");

        $view = $cb->view("mrc", "Index Latest MRC");

        print_r($view);
?>
Comment by Sergey Avseyev [ 12/Mar/13 ]
I think it because view named with spaces "Index Latest MRC"
Comment by Sergey Avseyev [ 12/Mar/13 ]
closing this back. I've created another ticket PCBC-211




[PCBC-71] implement addserver() Created: 08/Jun/12  Updated: 26/Aug/13  Resolved: 06/Sep/12

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

Type: Bug Priority: Major
Reporter: Perry Krug Assignee: Jan Lehnardt (Inactive)
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Just opening a bug since I didn't see one already...there's currently no "supported" way to add multiple servers to the Couchbase PHP client instance

 Comments   
Comment by Michael Nitschinger [ 29/Aug/12 ]
This should be supported through libcouchbase.

You can pass in more nodes as "node1:port;node2:port;node3:port".

If you like to work with arrays:

$servers = array('node1:port', 'node2:port');
$cb = new Couchbase(join(';', $servers));

Comment by Mark Nunberg [ 06/Sep/12 ]
This is now possible through the ';'-delimited string, or the array constructor option. Once the client is connected, it learns about other servers from the REST JSON stream..




[PCBC-9] [ext/couchbase] make mget/mtouch multi-key aware Created: 06/Sep/11  Updated: 01/Mar/12  Resolved: 01/Mar/12

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

Type: Improvement Priority: Major
Reporter: Jan Lehnardt (Inactive) Assignee: Jan Lehnardt (Inactive)
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Currently mget and mtouch only take a single key argument although the underlying implementation (and names!) suggest that multiple keys can be specified.

 Comments   
Comment by Jan Lehnardt (Inactive) [ 01/Mar/12 ]
with ext/couchbase we are already there.




[PCBC-8] [ext/couchbase] Implement ext/memcache and ext/memcached APIs on top of ext/couchbase Created: 05/Sep/11  Updated: 01/Mar/12  Resolved: 01/Mar/12

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

Type: Improvement Priority: Major
Reporter: Jan Lehnardt (Inactive) Assignee: Jan Lehnardt (Inactive)
Resolution: Fixed Votes: 0
Labels: ext/couchbase
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
We should implement compatibility layers for users of the existing ext/memcache (http://de2.php.net/memcache) and ext/memcached (http://de2.php.net/memcached) PHP extensions.



 Comments   
Comment by Jan Lehnardt (Inactive) [ 01/Mar/12 ]
We wrote a migration guide instead




[PCBC-7] [ext/couchbase] Implement couchbase_api.php Created: 05/Sep/11  Updated: 01/Mar/12  Resolved: 01/Mar/12

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

Type: Improvement Priority: Major
Reporter: Jan Lehnardt (Inactive) Assignee: Jan Lehnardt (Inactive)
Resolution: Won't Fix Votes: 0
Labels: ext/couchbase
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Currently only a small subset of couchbase_api.php is implemented.

Track progress of the full implementation in this ticket.

 Comments   
Comment by Jan Lehnardt (Inactive) [ 01/Mar/12 ]
with ext/couchbase we are already there.




[PCBC-3] Valid JSON detected as invalid Created: 16/Aug/11  Updated: 17/Aug/11  Resolved: 17/Aug/11

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

Type: Bug Priority: Major
Reporter: Volker Mische Assignee: Jan Lehnardt (Inactive)
Resolution: Cannot Reproduce Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Debian testing/unstable hybrid, PHP 5.3.6-13 with Suhosin-Patch (cli) (built: Jul 4 2011 12:42:46,

Attachments: File jsonbug.php    

 Description   
Valid JSON ends up in Couchbase as attachment as it is considered invalid.

 Comments   
Comment by Jan Lehnardt (Inactive) [ 17/Aug/11 ]
Can't reproduce on Mac OS X:

> cat jsonbug.php
<?php
   error_erporting(E_ALL);
    require("Couchbase.php");

    $cb = new Couchbase;
    $cb->addCouchbaseServer("localhost", 12001, 9500, null, 9000);

    $json = '{ "properties": { "FID": "48319", "NAME": "Cypress Slough", "CLASS": "Stream", "COUNTY": "Miller" }}';
    var_dump($json);
    $uid = uniqid();
    var_dump($uid);
    var_dump($cb->set($uid, $json));
    $result = $cb->get($uid);
// echo "Stored: " . $uid . ': ' . $result;
    var_dump($result);
?>

> php -d extension=./memcached.so jsonbug.php
string(100) "{ "properties": { "FID": "48319", "NAME": "Cypress Slough", "CLASS": "Stream", "COUNTY": "Miller" }}"
string(13) "4e4b808907f27"
bool(true)
string(100) "{ "properties": { "FID": "48319", "NAME": "Cypress Slough", "CLASS": "Stream", "COUNTY": "Miller" }}"


Volker, can you use the slightly modified script I used and show me your exact invocation, the result and your `php -i` output?
Comment by Jan Lehnardt (Inactive) [ 17/Aug/11 ]
We tracked this down to an incompatible memcached.so file. Using the bundled one makes this work.
Comment by Volker Mische [ 17/Aug/11 ]
The incompatible on is on Debian testing/unstable.

php5-memcached: 1.0.2-1+b1 0

From phpinfo():
memcached support => enabled
Version => 1.0.2
libmemcached version => 0.44
Session support => yes
igbinary support => no




[PCBC-243] Generate autodocs for PHP Created: 06/Aug/13  Updated: 07/Oct/13  Resolved: 24/Sep/13

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

Type: Task Priority: Minor
Reporter: Amy Kurtzman Assignee: Amy Kurtzman
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 4h
Time Spent: Not Specified
Original Estimate: 4h

Issue Links:
Relates to
relates to PCBC-248 Autodocs available for v1.1.5 of PHP ... Closed

 Description   
Research tools for generating API documentation for PHP client that can be put up on http://www.couchbase.com/autodocs/.

 Comments   
Comment by Dipti Borkar [ 07/Aug/13 ]

File for the current release:
https://raw.github.com/couchbase/php-ext-couchbase/1.1.5/example/couchbase-api.php
Comment by Brett Lawson [ 24/Sep/13 ]
See PCBC-248
Comment by Amy Kurtzman [ 07/Oct/13 ]
PHP API reference has been uploaded.




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

Status: Closed
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 (Inactive) Assignee: Unassigned
Resolution: Fixed 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 kzeller [ 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 (Inactive) [ 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
Comment by kzeller [ 23/Jul/13 ]
Added:
http://www.couchbase.com/communities/php/getting-started




[PCBC-200] Docs: Documented supported versions of PHP Created: 11/Feb/13  Updated: 14/May/13  Resolved: 14/May/13

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

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


 Description   
Previous pages of the /develop/PHP/current mentioned support for a specific PHP version. There is no mention of that now.

Does that imply that any version of PHP will work with any of our supported libraries? If yes, let's please be specific about that. If no, can we please detail which PHP version is supported for each OS?

 Comments   
Comment by Trond Norbye [ 02/Apr/13 ]
Can you update the documentation on the site that the currently supported versions is PHP 5.3 and newer.
Comment by kzeller [ 14/May/13 ]
confirmed/updated

getting-started.xml:47: <para> PHP 5.3 and above installed. For more information, see <ulink
tutorial.xml:43: PHP 5.3 or later: The PHP SDK itself requires 5.3 or later,

appears:

http://www.couchbase.com/docs/couchbase-sdk-php-1.1/getting-started.html
http://www.couchbase.com/docs/couchbase-sdk-php-1.1/tutorial.html
Comment by kzeller [ 14/May/13 ]
confirmed/updated

getting-started.xml:47: <para> PHP 5.3 and above installed. For more information, see <ulink
tutorial.xml:43: PHP 5.3 or later: The PHP SDK itself requires 5.3 or later,

appears:

http://www.couchbase.com/docs/couchbase-sdk-php-1.1/getting-started.html
http://www.couchbase.com/docs/couchbase-sdk-php-1.1/tutorial.html




[PCBC-193] Missing tag in github for 1.1.2 Created: 01/Feb/13  Updated: 15/Apr/13  Resolved: 15/Apr/13

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

Type: Bug Priority: Minor
Reporter: James Mauss Assignee: Matt Ingenthron
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The current 1.1.2 release was never tagged in github. Prior releases up to 1.1.1 have all been tagged, but 1.1.2 is not tagged.

 Comments   
Comment by Matt Ingenthron [ 15/Apr/13 ]
Fixed some time ago: https://github.com/couchbase/php-ext-couchbase/tree/1.1.2




[PCBC-135] Wrong parameter description for delete() Created: 08/Oct/12  Updated: 26/Aug/13  Resolved: 27/Nov/12

Status: Closed
Project: Couchbase PHP client library
Component/s: docs
Affects Version/s: 1.0, 1.1.0-dp4
Fix Version/s: 1.1.0
Security Level: Public

Type: Bug Priority: Minor
Reporter: Dan Andersen Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The docs API for the delete method says: ( http://www.couchbase.com/docs/couchbase-sdk-php-1.1/api-reference-update.html#table-couchbase-sdk_php_delete )

$object->delete($key [, $expiry ])

But the expire should actually be cas, as in the source https://github.com/couchbase/php-ext-couchbase/blob/master/couchbase.c#L401


 Comments   
Comment by Matt Ingenthron [ 08/Oct/12 ]
Please update this in both the 1.0 and 1.1 SDK docs.
Comment by kzeller [ 27/Nov/12 ]
Should be fixed with this change, I think:

      <argument inherit="cas" optional="yes"/>
Comment by kzeller [ 27/Nov/12 ]
should be the fix:

      <argument inherit="cas" optional="yes"/>




Generated at Fri Aug 22 02:20:03 CDT 2014 using JIRA 5.2.4#845-sha1:c9f4cc41abe72fb236945343a1f485c2c844dac9.