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 > <mico...@gmail.com <mailto:mico...@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 <mandalav...@gmail.com >> <mailto:mandalav...@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 >> <mico...@gmail.com <mailto:mico...@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@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 -- 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
_______________________________________________ Kamailio (SER) - Users Mailing List sr-users@lists.kamailio.org https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users