Hello,
can you try with latest master branch or apply the patch from the next
commit to your branch?
*
c4e62af5aaa86fc27654f640
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> 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(a)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> 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(a)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?repli
>>> caSet=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/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@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