[OpenSIPS-Users] 2.2 crash with async, db_virtual and unixodbc

Jeff Pyle JPyle at fusionconnect.com
Wed Sep 7 03:16:37 CEST 2016


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: child process 19887 exited by a signal 11

/usr/sbin/opensips[19883]: INFO:core:handle_sigs: core was not generated

/usr/sbin/opensips[19883]: 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


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20160907/1c0dbad3/attachment.htm>


More information about the Users mailing list