Hello Daniel,
The format of the mongo request is better I think.
But there is the following new error (with both mongo server
versions)
0(30473) ERROR: db_mongodb [mongodb_dbase.c:386]:
db_mongodb_get_columns(): field [projection] not found in
result iterator
0(30473) ERROR: db_mongodb [mongodb_dbase.c:752]:
db_mongodb_store_result(): failed to set the columns
0(30473) ERROR: db_mongodb [mongodb_dbase.c:945]:
db_mongodb_query(): failed to store result
0(30473) ERROR: db_mongodb [mongodb_dbase.c:954]:
db_mongodb_query(): failed to do the query
The pcap traces are in attachment.
Thanks !
Stéphane
On 1 March 2018 at 08:34, Daniel-Constantin Mierla
<miconda(a)gmail.com <mailto:miconda@gmail.com>> wrote:
Hello,
can you try with latest master branch or apply the patch
from the next commit to your branch?
*
<https://github.com/kamailio/kamailio/commit/d50498cf483cd22ac4e62af5aaa86fc27654f640>
If possible, test it with both mongo server versions and
if works fine with both, then I am going to backport.
Cheers,
Daniel
On 28.02.18 18:49, Stephane wrote:
Hello Daniel,
I tried with mongoc 1.8.0 (the trace I have sent) and
also mongoc 1.9.2. The result is the same : a "failed
to parse" with as indication "unrecognized field
'table_version'" when using mongo server version 3.6.2.
Both mongoc versions are running fine with a mongo
server version 3.0.15.
Kind regards,
Stephane
On 28 February 2018 at 15:25, Daniel-Constantin Mierla
<miconda(a)gmail.com <mailto:miconda@gmail.com>> wrote:
Hello,
I see in the pcap that the returned error contains:
Failed to parse: { find: "version", filter: {
table_name: "location" }, table_version: 1,
$readPreference: { mode: "secondaryPreferred" },
$db: "kamailio" }. Unrecognized field 'table_version'.
What is the version of mongoc library? I tried to
quick search on google and found a similar report :
-
https://github.com/mongodb/mongo-php-driver/issues/516
<https://github.com/mongodb/mongo-php-driver/issues/516>
On the other hand, it works with same lib but for
different versions of mongo server ... so might be
something different.
Cheers,
Daniel
On 27.02.18 11:26, Stephane wrote:
> Hello Daniel,
>
> You will find two pcap files in attachment. I am
> using the same mongoc library version in both cases.
> Let me know if you need more info.
>
> Kind regards,
> Stephane
>
> On 27 February 2018 at 09:01, Daniel-Constantin
> Mierla <miconda(a)gmail.com
> <mailto:miconda@gmail.com>> wrote:
>
> Hello,
>
> can you send here the requests sent by
> kamailio for the two mongodb versions? To
> compare and see where it can be fixed.
>
> Also, were you using the same mongoc library
> version in both cases?
>
> Cheers,
> Daniel
>
>
> On 26.02.18 12:57, Stephane wrote:
>> Hello,
>> I made some additional tests.
>> The problem is only present when kamailio is
>> facing mongo release 3.2 (or higher).
>> With mongo version 3.0 (or lower), the
>> request sent by kamailio is different: it
>> contains $query and $table_version elements
>> and mongo accepts it.
>> Kind regards,
>> Stephane
>>
>> On 23 February 2018 at 10:48, Stephane
>> <mandalavoip(a)gmail.com
>> <mailto:mandalavoip@gmail.com>> wrote:
>>
>> Hello Daniel,
>>
>> I took a pcap trace. And I see the
>> following in the answer sent by mongo
>>
>> Failed to parse: { find: "version",
>> filter: { table_name: "location" },
>> table_version: 1, $db: "kamailio",
>> $readPreference: { mode:
>> "primaryPreferred" }, $clusterTime: {
>> clusterTime: Timestamp(1519379980, 1),
>> signature: { hash: BinData(0,
>> 0000000000000000000000000000000000000000),
>> keyId: 0 } } }. Unrecognized field
>>
'table_version'.codecodeNameFailedToParseoperationTimeZ$clusterTimeXclusterTimeZsignature3hashkeyId
>>
>> Kind regards,
>> Stephane
>>
>> On 23 February 2018 at 09:39,
>> Daniel-Constantin Mierla
>> <miconda(a)gmail.com
>> <mailto:miconda@gmail.com>> wrote:
>>
>> Hello,
>>
>> I don't know if you can see the
>> result sent back by mongodb in its
>> logs, it doesn't show it there. Maybe
>> you can sniff the traffic on the
>> network and see if mongodb sends the
>> proper response back. Kamailio logs
>> like nothing was retrieved.
>>
>> Cheers,
>> Daniel
>>
>>
>> On 22.02.18 18:02, Stephane Focant wrote:
>>> Hello,
>>> I have an issue when I try to use
>>> kamailio 5.1 with usrloc and
>>> db_mongdb modules.
>>> When I try to start kamailio, I get
>>> the following error:
>>>
>>> 0(22216) DEBUG: <core> [db.c:314]:
>>> db_do_init2(): connection
>>> 0x7f735b5c4100 not found in pool
>>> 0(22216) DEBUG: db_mongodb
>>> [mongodb_connection.c:55]:
>>> db_mongodb_new_connection():
>>> connection open to:
>>> mongodb://10.0.12.149
>>>
<http://10.0.12.149>,10.0.12.150,10.0.12.151/kamailio?replicaSet=sre_location&slaveOk=true&readPreference=primaryPreferred
>>>
<http://10.0.12.151/kamailio?replicaSet=sre_location&slaveOk=true&readPreference=primaryPreferred>
>>> 0(22216) DEBUG: db_mongodb
>>> [mongodb_dbase.c:864]:
>>> db_mongodb_query(): query to
>>> collection [version]
>>> 0(22216) DEBUG: db_mongodb
>>> [mongodb_dbase.c:898]:
>>> db_mongodb_query(): query filter: {
>>> "table_name" : "location" }
>>> 0(22216) DEBUG: db_mongodb
>>> [mongodb_dbase.c:917]:
>>> db_mongodb_query(): columns filter:
>>> { "table_version" : 1 }
>>> 0(22216) DEBUG: <core>
>>> [db_res.c:120]: db_new_result():
>>> allocate 56 bytes for result set at
>>> 0x7f735b5c4450
>>> 0(22216) DEBUG: db_mongodb
>>> [mongodb_dbase.c:746]:
>>> db_mongodb_store_result(): no result
>>> from mongodb
>>> 0(22216) DEBUG: <core> [db.c:404]:
>>> db_table_version(): no row for table
>>> location found
>>> 0(22216) ERROR: <core> [db.c:450]:
>>> db_check_table_version(): invalid
>>> version 0 for table location found,
>>> expected 9 (check table structure
>>> and table "version")
>>> 0(22216) ERROR: usrloc
>>> [dlist.c:659]: register_udomain():
>>> error during table version check.
>>> 0(22216) DEBUG: <core>
>>> [db_pool.c:100]: pool_remove():
>>> removing connection from the pool
>>> 0(22216) ERROR: registrar
>>> [registrar.c:651]: domain_fixup():
>>> failed to register domain
>>> 0(22216) ERROR: <core>
>>> [core/route.c:1154]: fix_actions():
>>> fixing failed (code=-1) at
>>>
cfg:/usr/local/kamailio-5.1/etc/kamailio/kamailio.cfg:660
>>> 0(22216) ERROR: <core>
>>> [core/rvalue.c:3860]:
>>> fix_rval_expr(): failure in cfg at
>>> line: 660 col: 22
>>> 0(22216) ERROR: <core>
>>> [core/rvalue.c:3860]:
>>> fix_rval_expr(): failure in cfg at
>>> line: 660 col: 22
>>> 0(22216) ERROR: <core>
>>> [core/route.c:1154]: fix_actions():
>>> fixing failed (code=-1) at
>>>
cfg:/usr/local/kamailio-5.1/etc/kamailio/kamailio.cfg:663
>>> ERROR: error -1 while trying to fix
>>> configuration
>>> 0(22216) DEBUG: tm [t_funcs.c:85]:
>>> tm_shutdown(): start
>>> 0(22216) DEBUG: tm [t_funcs.c:88]:
>>> tm_shutdown(): emptying hash table
>>> 0(22216) DEBUG: tm [t_funcs.c:90]:
>>> tm_shutdown(): removing semaphores
>>> 0(22216) DEBUG: tm [t_funcs.c:92]:
>>> tm_shutdown(): destroying tmcb lists
>>> 0(22216) DEBUG: tm [t_funcs.c:95]:
>>> tm_shutdown(): done
>>> 0(22216) INFO: <core>
>>> [core/sctp_core.c:53]:
>>> sctp_core_destroy(): SCTP API not
>>> initialized
>>> 0(22216) DEBUG: <core>
>>> [core/mem/shm.c:261]:
>>> shm_destroy_manager(): destroying
>>> memory manager: q_malloc
>>> 0(22216) DEBUG: <core>
>>> [core/mem/q_malloc.c:1165]:
>>> qm_shm_lock_destroy(): destroying
>>> the shared memory lock
>>> 0(22216) DEBUG: <core>
>>> [core/mem/pkg.c:91]:
>>> pkg_destroy_manager(): destroying
>>> memory manager: q_malloc
>>>
>>>
>>> In mongoDB, I have the collection
>>> "version" in the db kamailio, and
>>> the entries needed for usrloc
>>> (location and location_attrs):
>>> sre_location:PRIMARY> use kamailio
>>> switched to db kamailio
>>> sre_location:PRIMARY>
>>> db.getCollection("version").find()
>>> { "_id" :
>>> ObjectId("5a8ec43c601b262bef82a595"),
>>> "table_name" : "location",
>>> "table_version" : 9 }
>>> { "_id" :
>>> ObjectId("5a8edb72a3ec40427577b8d0"),
>>> "table_name" :
"location_attrs",
>>> "table_version" : 1 }
>>>
>>>
>>> And logs in mongo show the following
>>> info when kamailio starts:
>>>
>>> 2018-02-22T17:13:02.604+0100 I
>>> NETWORK [conn90] received client
>>> metadata from 10.0.12.180:56320
>>> <http://10.0.12.180:56320> conn: {
>>> driver: { name: "mongoc", version:
>>> "1.9.2" }, os: { type:
"Linux",
>>> name: "CentOS", version: "6.9
>>> (Final)", architecture: "x86_64"
},
>>> platform: "cfg=0x1563000
>>> posix=200809 CC=GCC 4.4.7 20120313
>>> (Red Hat 4.4.7-18) CFLAGS=""
>>> LDFLAGS=""" }
>>> 2018-02-22T17:13:02.604+0100 I
>>> COMMAND [conn90] command admin.$cmd
>>> command: isMaster { isMaster: 1,
>>> client: { driver: { name: "mongoc",
>>> version: "1.9.2" }, os: { type:
>>> "Linux", name: "CentOS",
version:
>>> "6.9 (Final)", architecture:
>>> "x86_64" }, platform:
"cfg=0x1563000
>>> posix=200809 CC=GCC 4.4.7 20120313
>>> (Red Hat 4.4.7-18) CFLAGS=""
>>> LDFLAGS=""" }, compression: [],
>>> $readPreference: { mode:
>>> "secondaryPreferred" }, $db:
"admin"
>>> } numYields:0 reslen:716 locks:{}
>>> protocol:op_query 0ms
>>> 2018-02-22T17:13:02.604+0100 I
>>> COMMAND [conn90] command
>>> kamailio.$cmd command: find { find:
>>> "version", filter: { table_name:
>>> "location" }, table_version: 1, $db:
>>> "kamailio", $readPreference: { mode:
>>> "primaryPreferred" }, $clusterTime:
>>> { clusterTime: Timestamp(1519315979,
>>> 1), signature: { hash: BinData(0,
>>> 0000000000000000000000000000000000000000),
>>> keyId: 0 } } } numYields:0
>>> reslen:531 locks:{} protocol:op_msg 0ms
>>> 2018-02-22T17:13:02.605+0100 I
>>> NETWORK [conn90] end connection
>>> 10.0.12.180:56320
>>> <http://10.0.12.180:56320> (9
>>> connections now open)
>>>
>>> I probably miss something: it is not
>>> clear to me why kamailio is not able
>>> to retrieve the value of
>>> table_version for the table_name
>>> location. Any idea would be very
>>> welcome !
>>>
>>> I use mongo-c-driver 1.9.2 and
>>> mongodb 3.6
>>>
>>> Thank you.
>>> Stephane
>>>
>>>
>>> _______________________________________________
>>> Kamailio (SER) - Users Mailing List
>>> sr-users(a)lists.kamailio.org
>>> <mailto:sr-users@lists.kamailio.org>
>>>
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>
<https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
>>
>> --
>> Daniel-Constantin Mierla
>>
www.twitter.com/miconda
>> <http://www.twitter.com/miconda> --
www.linkedin.com/in/miconda
>> <http://www.linkedin.com/in/miconda>
>> Kamailio Advanced Training - March 5-7, 2018, Berlin
-
www.asipto.com <http://www.asipto.com>
>> Kamailio World Conference - May 14-16, 2018 -
www.kamailioworld.com
>> <http://www.kamailioworld.com>
>>
>>
>>
>
> --
> Daniel-Constantin Mierla
>
www.twitter.com/miconda
> <http://www.twitter.com/miconda> --
www.linkedin.com/in/miconda
> <http://www.linkedin.com/in/miconda>
> Kamailio Advanced Training - March 5-7, 2018, Berlin -
www.asipto.com <http://www.asipto.com>
> Kamailio World Conference - May 14-16, 2018 -
www.kamailioworld.com
> <http://www.kamailioworld.com>
>
>
--
Daniel-Constantin Mierla
www.twitter.com/miconda
<http://www.twitter.com/miconda> --
www.linkedin.com/in/miconda
<http://www.linkedin.com/in/miconda>
Kamailio Advanced Training - March 5-7, 2018, Berlin -
www.asipto.com
<http://www.asipto.com>
Kamailio World Conference - May 14-16, 2018 -
www.kamailioworld.com
<http://www.kamailioworld.com>
<http://www.linkedin.com/in/miconda>
Kamailio Advanced Training - March 5-7, 2018, Berlin -
<http://www.asipto.com>
Kamailio World Conference - May 14-16, 2018 -