[OpenSIPS-Users] 2.2 crash with async, db_virtual and unixodbc
Răzvan Crainea
razvan at opensips.org
Wed Sep 7 16:18:38 CEST 2016
Hi, Jeff!
Indeed, db_virtual makes perfect sense for what you need. However, we
don't support unixodb in async mode, but I will look into this to see if
the library supportsit.
Regarding REST, does MSSQL support it, or you're thinking of writing a
REST server that converts queries to SQL?
Best regards,
Răzvan Crainea
OpenSIPS Solutions
www.opensips-solutions.com
On 09/07/2016 02:18 PM, Jeff Pyle wrote:
>
> Hi Răzvan ,
>
> Ok. I found this on the 2.2 release info page:
>
> 2.27 DB_VIRTUAL module
>
> added async raw query support
>
> I thought I might be able to wrap db_virtual around unixodbc and get
> it to work. Apparently not! Or, at least not yet.
>
> My application is to attempt to replace an aging Kamailio proxy with
> an OpenSIPS one in async mode. Unfortunately I don't have control
> over the data or where it lives; it's stuck in an MSSQL server.
> Actually, in a few geographically distributed but otherwise equal
> MSSQL servers so the db_virtual layer was perfect.
>
> rest_get is mentioned as an available to async. I don't know much
> about rest but I'll look at writing a wrapper of sorts to get to the
> stored procedure that way. I'm open to any suggestions!
>
> - Jeff
>
> *From:*users-bounces at lists.opensips.org
> [mailto:users-bounces at lists.opensips.org] *On Behalf Of *Razvan Crainea
> *Sent:* Wednesday, September 07, 2016 4:07 AM
> *To:* users at lists.opensips.org
> *Subject:* Re: [OpenSIPS-Users] 2.2 crash with async, db_virtual and
> unixodbc
>
> Hi, Jeff!
>
> Unfortunately async operations are only supported by the MySQL
> backend, therefore it won't work with unixodbc or other backends. Now
> it crashes because of a mishandling in the db_virtual module. We are
> working on a fix for the crash, but even after the fix, you will still
> be unable to run async queries with unixodbc.
> If you really want to do it async, then you should use MySQL backend.
> Also, don't forget to open a feature request on the issues page[1] to
> support async queries for unixodbc.
>
> [1] https://github.com/OpenSIPS/opensips/issues
>
> Best regards,
>
> Răzvan Crainea
> OpenSIPS Solutions
> www.opensips-solutions.com <http://www.opensips-solutions.com>
>
> On 09/07/2016 04:16 AM, Jeff Pyle wrote:
>
> Hello,
>
> I'm working from the 2.2 nightly build repo on Debian Jessie,
> 64-bit, specifically, 2.2.1~20160830~7261cf0-1.
>
> I have a simple test script that runs a stored procedure on a
> Microsoft SQL 2014 server and xlogs the returned AVPs. This works
> fine. When I break it up into an async() function and a return
> route block, I get a crash every time.
>
> Script:
>
> route {
>
> xlog("L_INFO", "Sending query...\n");
>
> async(avp_db_query("exec dbo.doStuff '1','2','3','4'",
>
> "$avp(db1);$avp(db2);$avp(db3)"), post_db_dip);
>
> }
>
> route [post_db_dip] {
>
> xlog("L_INFO", "Back from query.\n");
>
> while (is_avp_set("$avp(db1)") &&
> is_avp_set("$avp(db2)") && is_avp_set("$avp(db3)")) {
>
> xlog("L_INFO", "db1=$avp(db1), db2=$avp(db2), db3=$avp(db3)\n");
>
> avp_delete("$avp(db1)");
>
> avp_delete("$avp(db2)");
>
> avp_delete("$avp(db3)");
>
> }
>
> xlog("L_INFO", "End of processing.\n");
>
> sl_send_reply("600", "Road Closed");
>
> exit;
>
> }
>
> The debug=6:
>
> ...
>
> /usr/sbin/opensips[19887]: DBG:avpops:ops_async_dbquery: query
> [exec dbo.doStuff '1','2','3','4']
>
> /usr/sbin/opensips[19887]:
> DBG:db_virtual:db_virtual_async_raw_query: f call handle size = 1
>
> /usr/sbin/opensips[19887]: DBG:db_virtual:try_reconnect: try reconnect
>
> /usr/sbin/opensips[19887]:
> DBG:db_virtual:db_virtual_async_raw_query: flags1 = 3
>
> /usr/sbin/opensips[19883]: DBG:core:handle_sigs: status = 11
>
> /usr/sbin/opensips[19883]: INFO:core:handle_sigs
> <INFO:core:handle_sigs>: child process 19887 exited by a signal 11
>
> /usr/sbin/opensips[19883]: INFO:core:handle_sigs
> <INFO:core:handle_sigs>: core was not generated
>
> /usr/sbin/opensips[19883]: INFO:core:handle_sigs
> <INFO:core:handle_sigs>: terminating due to SIGCHLD
>
> /usr/sbin/opensips[19890]: INFO:core:sig_usr: signal 15 received
>
> /usr/sbin/opensips[19889]: INFO:core:sig_usr: signal 15 received
>
> /usr/sbin/opensips[19888]: INFO:core:sig_usr: signal 15 received
>
> /usr/sbin/opensips[19886]: INFO:core:sig_usr: signal 15 received
>
> /usr/sbin/opensips[19885]: INFO:core:sig_usr: signal 15 received
>
> /usr/sbin/opensips[19884]: INFO:core:sig_usr: signal 15 received
>
> /usr/sbin/opensips[19883]: INFO:core:cleanup: cleanup
>
> ...and so forth.
>
> The process that crashes, 19887 in this particular case, is a
> listener process. I never see the "Back from xlog" xlog appear.
> OpenSIPS immediately respawns but I suspect that's systemd.
>
> Am I doing something wrong, or is this a bug?
>
> - Jeff
>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20160907/cdacf2a6/attachment.htm>
More information about the Users
mailing list