Re: PHP failed connecting to mongodb after upgrade pecl-mongo from 1.3.7 to 1.4.5
| From: | Aziz Saleh | Date: | Tue, 18 Feb 2014 17:14:59 +0000 |
| Subject: | Re: PHP failed connecting to mongodb after upgrade pecl-mongo from 1.3.7 to 1.4.5 | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-322926@lists.php.net to get a copy of this message | ||
On Mon, Feb 17, 2014 at 11:31 PM, Chaoshu SHA <shachaoshu@gmail.com> wrote:
> here is the log messages, and pecl-mongo version info,
>
> ----
>
> php > $m = new MongoClient("192.168.1.112");
> PHP Notice: PARSE INFO: Parsing 192.168.1.112 in php shell code on line
> 1
> PHP Stack trace:
> PHP 1. {main}() php shell code:0
> PHP 2. MongoClient->__construct() php shell code:1
> PHP Notice: PARSE INFO: - Found node: 192.168.1.112:27017 in php shell
> code on line 1
> PHP Stack trace:
> PHP 1. {main}() php shell code:0
> PHP 2. MongoClient->__construct() php shell code:1
> PHP Notice: PARSE INFO: - Connection type: STANDALONE in php shell code
> on line 1
> PHP Stack trace:
> PHP 1. {main}() php shell code:0
> PHP 2. MongoClient->__construct() php shell code:1
> PHP Notice: CON INFO: mongo_get_read_write_connection: finding a
> STANDALONE connection in php shell code on line 1
> PHP Stack trace:
> PHP 1. {main}() php shell code:0
> PHP 2. MongoClient->__construct() php shell code:1
> PHP Notice: CON INFO: connection_create: creating new connection for
> 192.168.1.112:27017 in php shell code on line 1
> PHP Stack trace:
> PHP 1. {main}() php shell code:0
> PHP 2. MongoClient->__construct() php shell code:1
> PHP Notice: CON INFO: stream_connect: Not establishing SSL for
> 192.168.1.112:27017 in php shell code on line 1
> PHP Stack trace:
> PHP 1. {main}() php shell code:0
> PHP 2. MongoClient->__construct() php shell code:1
> PHP Notice: CON INFO: get_server_flags: start in php shell code on
> line 1
> PHP Stack trace:
> PHP 1. {main}() php shell code:0
> PHP 2. MongoClient->__construct() php shell code:1
> PHP Notice: CON FINE: send_packet: read from header: 36 in php shell
> code on line 1
> PHP Stack trace:
> PHP 1. {main}() php shell code:0
> PHP 2. MongoClient->__construct() php shell code:1
> PHP Notice: CON FINE: send_packet: data_size: 95 in php shell code on
> line 1
> PHP Stack trace:
> PHP 1. {main}() php shell code:0
> PHP 2. MongoClient->__construct() php shell code:1
> PHP Notice: CON FINE: get_server_flags: setting maxBsonObjectSize to
> 16777216 in php shell code on line 1
> PHP Stack trace:
> PHP 1. {main}() php shell code:0
> PHP 2. MongoClient->__construct() php shell code:1
> PHP Notice: CON FINE: get_server_flags: setting maxMessageSizeBytes
> to 48000000 in php shell code on line 1
> PHP Stack trace:
> PHP 1. {main}() php shell code:0
> PHP 2. MongoClient->__construct() php shell code:1
> PHP Notice: CON INFO: get_server_flags: found server type: UNKNOWN?
> in php shell code on line 1
> PHP Stack trace:
> PHP 1. {main}() php shell code:0
> PHP 2. MongoClient->__construct() php shell code:1
> PHP Notice: CON WARN: server_flags: error while getting the server
> configuration 192.168.1.112:27017: get_server_flags: got unknown node
> type in php shell code on line 1
> PHP Stack trace:
> PHP 1. {main}() php shell code:0
> PHP 2. MongoClient->__construct() php shell code:1
> PHP Notice: CON WARN: Couldn't connect to '192.168.1.112:27017':
> get_server_flags: got unknown node type in php shell code on line 1
> PHP Stack trace:
> PHP 1. {main}() php shell code:0
> PHP 2. MongoClient->__construct() php shell code:1
> PHP Notice: REPLSET FINE: finding candidate servers in php shell code on
> line 1
> PHP Stack trace:
> PHP 1. {main}() php shell code:0
> PHP 2. MongoClient->__construct() php shell code:1
> PHP Notice: REPLSET FINE: - all servers in php shell code on line 1
> PHP Stack trace:
> PHP 1. {main}() php shell code:0
> PHP 2. MongoClient->__construct() php shell code:1
> PHP Notice: REPLSET FINE: filter_connections: adding connections: in php
> shell code on line 1
> PHP Stack trace:
> PHP 1. {main}() php shell code:0
> PHP 2. MongoClient->__construct() php shell code:1
> PHP Notice: REPLSET FINE: filter_connections: done in php shell code on
> line 1
> PHP Stack trace:
> PHP 1. {main}() php shell code:0
> PHP 2. MongoClient->__construct() php shell code:1
> PHP Notice: REPLSET FINE: limiting by seeded/discovered servers in php
> shell code on line 1
> PHP Stack trace:
> PHP 1. {main}() php shell code:0
> PHP 2. MongoClient->__construct() php shell code:1
> PHP Notice: REPLSET FINE: limiting by seeded/discovered servers: done in
> php shell code on line 1
> PHP Stack trace:
> PHP 1. {main}() php shell code:0
> PHP 2. MongoClient->__construct() php shell code:1
> PHP Notice: REPLSET FINE: limiting by credentials in php shell code on
> line 1
> PHP Stack trace:
> PHP 1. {main}() php shell code:0
> PHP 2. MongoClient->__construct() php shell code:1
> PHP Notice: REPLSET FINE: limiting by credentials: done in php shell code
> on line 1
> PHP Stack trace:
> PHP 1. {main}() php shell code:0
> PHP 2. MongoClient->__construct() php shell code:1
> PHP Warning: Uncaught exception 'MongoConnectionException' with message
> 'Failed to connect to: 192.168.1.112:27017: get_server_flags: got unknown
> node type' in php shell code:1
> Stack trace:
> #0 php shell code(1): MongoClient->__construct('192.168.1.112')
> #1 {main}
> thrown in php shell code on line 1
> php >
>
> ----
>
> mongo
>
> MongoDB Support => enabled
> Version => 1.4.5
> SSL Support => enabled
> Streams Support => enabled
>
> ----
>
> in my case, the "192.168.1.112" mongo server is a *slave* instance in a
> master/slave configuration. after checking the pecl-mongo source code, I
> believe this exception is caused due to change in function
> mongo_connection_get_server_flags() of mongo-php-driver/mcon/connections.c
>
> does there anyone have encountered the same problem?
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
This error happens when your php mongo driver doesn't match that of the
mongo instance you are running on, looking at the driver (L540):
https://github.com/mongodb/mongo-php-driver/blob/master/mcon/connections.c#L540
You might have to downgrade, or hack the driver to include your flag (not
sure what that would be) as a "secondary" flag for your slave.
Aziz