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 <[email protected]> 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 <[email protected]> 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 <[email protected] >> > 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 >>> [email protected]https://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 > >
mongo_ok.pcapng
Description: Binary data
mongo_nok.pcapng
Description: Binary data
_______________________________________________ Kamailio (SER) - Users Mailing List [email protected] https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
