[SR-Users] kamailio does not start with db_mongdb and usrloc

Stephane mandalavoip at gmail.com
Wed Feb 28 18:49:05 CET 2018


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 at 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
> 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 at 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 at 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'.code
>>> codeNameFailedToParseoperationTimeZ$clusterTimeXclusterTimeZ
>>> signature3hashkeyId
>>>
>>> Kind regards,
>>> Stephane
>>>
>>> On 23 February 2018 at 09:39, Daniel-Constantin Mierla <
>>> miconda at 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
>>>> ,10.0.12.150,10.0.12.151/kamailio?replicaSet=sre_location&slaveOk=tru
>>>> e&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/et
>>>> c/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/et
>>>> c/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 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 (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 Listsr-users at lists.kamailio.orghttps://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>>
>>>>
>>>> --
>>>> Daniel-Constantin Mierlawww.twitter.com/miconda -- www.linkedin.com/in/miconda
>>>> Kamailio Advanced Training - March 5-7, 2018, Berlin - www.asipto.com
>>>> Kamailio World Conference - May 14-16, 2018 - www.kamailioworld.com
>>>>
>>>>
>>>
>>
>> --
>> Daniel-Constantin Mierlawww.twitter.com/miconda -- www.linkedin.com/in/miconda
>> Kamailio Advanced Training - March 5-7, 2018, Berlin - www.asipto.com
>> Kamailio World Conference - May 14-16, 2018 - www.kamailioworld.com
>>
>>
>
> --
> Daniel-Constantin Mierlawww.twitter.com/miconda -- www.linkedin.com/in/miconda
> Kamailio Advanced Training - March 5-7, 2018, Berlin - www.asipto.com
> Kamailio World Conference - May 14-16, 2018 - www.kamailioworld.com
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20180228/ca2d6ec6/attachment.html>


More information about the sr-users mailing list