[SR-Users] kamailio does not start with db_mongdb and usrloc
Daniel-Constantin Mierla
miconda at gmail.com
Thu Mar 1 12:58:30 CET 2018
Hello,
thanks for testing -- the new error was on matching returned columns, as
now they are stored in the projection field document.
I just pushed a new patch, can you try again with latest master?
Cheers,
Daniel
On 01.03.18 11:14, Stephane wrote:
> 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 at gmail.com
> <mailto:miconda at 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
> <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 at gmail.com <mailto: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
>> <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 <mailto: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 <mailto: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'.codecodeNameFailedToParseoperationTimeZ$clusterTimeXclusterTimeZsignature3hashkeyId
>>>>
>>>> Kind regards,
>>>> Stephane
>>>>
>>>> On 23 February 2018 at 09:39, Daniel-Constantin
>>>> Mierla <miconda at gmail.com
>>>> <mailto: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
>>>>> <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 at lists.kamailio.org
>>>>> <mailto:sr-users at 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>
>>
>>
>
> --
> 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 -- 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/20180301/2f51e287/attachment.html>
More information about the sr-users
mailing list