<div dir="ltr">Hi Allen,<br><br>Did you try with two parameters: name, value?<div><br><div>  Â  Â  Â <b>$avp(keys) = "registered";</b><br>  Â  Â  Â $avp(values) = "true";<br>  Â  Â  Â  xlog("Raised E_WFC_REGISTERED $avp(values)");<br>  Â  Â  Â  raise_event("E_WFC_REGISTERED", <b>$avp(keys)</b>, $avp(values));</div></div><div><br></div><div>I know they are said to be optional in the documentation but probably it is optional for two. Either no params or if you pass parameters, you have to pass both.</div></div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jul 28, 2020 at 9:59 AM Mark Allen <<a href="mailto:mark@allenclan.co.uk">mark@allenclan.co.uk</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">We're upgrading from 3.0 to 3.1. Everything seems ok except we get a weird error. We subscribe a dynamic event...<div><br></div><div><font face="monospace">  Â  startup_route {<br>  Â  Â  subscribe_event("E_WFC_REGISTERED", "udp:<a href="http://127.0.0.1:8888" target="_blank">127.0.0.1:8888</a>");<br>  Â  }</font><br></div><div><br></div><div>which we can see works from /var/log/syslog...</div><div><font face="monospace">  Â Â </font></div><div><font face="monospace">  Â  event_datagram:mod_init: initializing module ...<br></font></div><div><font face="monospace">  Â  core:evi_publish_event: Registered event <E_WFC_REGISTERED(20)<br></font></div><div><br></div><div>and in the script we invoke it with...</div><div><br></div><div><font face="monospace">  Â  if(is_method("REGISTER")) {<br></font></div><div><font face="monospace">  Â  Â  Â  $avp(values) = "true";<br>  Â  Â  Â  xlog("Raised E_WFC_REGISTERED $avp(values)");<br>  Â  Â  Â  raise_event("E_WFC_REGISTERED",$avp(values));<br></font></div><div><font face="monospace"><br></font></div><div><font face="arial, sans-serif">When a phone registers, raise_event() is triggered and OpenSIPS crashes with a segmentation fault - shown in /var/log/syslog...</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="monospace">  Â Â Raised E_WFC_REGISTERED true<br></font></div><font face="monospace">  Â  CRITICAL:core:sig_usr: segfault in process pid: 10525, id: 8<br>  Â  segfault at 8 ip 000055cef821313f sp 00007ffcdf4d3410 error 4 in opensips[55cef801a000+264000]<br>  Â  kernel: [197593.785622] Code: 0e 00 4c 89 ef e8 1b 70 fc ff 49 63 74 24 08 49 8b 3c 24 e8 51 a1 fc ff 48 89 c2 48 8d 35 8f 0d 07 00 4c 89 ef e8 fb 6f fc ff <49> 8b 46 08 48 85 c0 74 0b 48 83 78 18 00 0f 84 a5 02 00 00 e8 34<br>  Â  INFO:core:handle_sigs: child process 10525 exited by a signal 11<br>  Â  INFO:core:handle_sigs: core was generated<br>  Â  INFO:core:handle_sigs: terminating due to SIGCHLD</font><div><font face="monospace"><br></font></div><div><font face="arial, sans-serif">If I comment out the </font>raise_event() line - OpenSIPS seems fine and doesn't crash when passing through this code. </div><div><br></div><div><br></div><div><br></div><div><font face="arial, sans-serif">Running gdb to get core file backtrace we see...</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="monospace">Core was generated by `/usr/sbin/opensips -P /run/opensips/opensips.pid -f /etc/opensips/opensips.cfg'.<br>Program terminated with signal SIGSEGV, Segmentation fault.<br>#0 Â evi_build_payload (params=0x0, method=0x7f931f5b6f08, id=id@entry=0, extra_param_k=extra_param_k@entry=0x0,<br>  Â  extra_param_v=extra_param_v@entry=0x0) at evi/evi_transport.c:159<br>159 Â  Â  Â  Â  Â  Â  if (params->first && !params->first->name.s) {<br>(gdb) bt full<br>#0 Â evi_build_payload (params=0x0, method=0x7f931f5b6f08, id=id@entry=0, extra_param_k=extra_param_k@entry=0x0,<br>  Â  extra_param_v=extra_param_v@entry=0x0) at evi/evi_transport.c:159<br>  Â  Â  Â  param = <optimized out><br>  Â  Â  Â  param_obj = 0x0<br>  Â  Â  Â  tmp = <optimized out><br>  Â  Â  Â  ret_obj = 0x7f9323135fe0<br>  Â  Â  Â  payload = 0x0<br>  Â  Â  Â  __FUNCTION__ = "evi_build_payload"<br>#1 Â 0x00007f931b7d934f in datagram_raise (msg=<optimized out>, ev_name=<optimized out>, sock=0x7f931f5c54c8, params=<optimized out>)<br>  Â  at event_datagram.c:315<br>  Â  Â  Â  ret = <optimized out><br>  Â  Â  Â  buf = <optimized out><br>  Â  Â  Â  __FUNCTION__ = "datagram_raise"<br>#2 Â 0x000055cef82148fb in evi_raise_event_msg (msg=msg@entry=0x7f9323134890, id=id@entry=20, params=params@entry=0x0)<br>  Â  at evi/event_interface.c:208<br>  Â  Â  Â  subs = 0x7f931f5c55a8<br>  Â  Â  Â  prev = <optimized out><br>  Â  Â  Â  now = 1595943308<br>  Â  Â  Â  flags = 1073741838<br>  Â  Â  Â  pflags = 0<br>  Â  Â  Â  ret = 0<br>  Â  Â  Â  __FUNCTION__ = "evi_raise_event_msg"<br>#3 Â 0x000055cef8216afb in evi_raise_script_event (msg=0x7f9323134890, id=20, _a=<optimized out>, _v=<optimized out>)<br>  Â  at evi/event_interface.c:430<br>  Â  Â  Â  vals = <optimized out><br>  Â  Â  Â  attrs = <optimized out><br>  Â  Â  Â  v_avp = <optimized out><br>  Â  Â  Â  a_avp = <optimized out><br>  Â  Â  Â  err = <optimized out><br>  Â  Â  Â  val = {n = 587654904, s = {s = 0x7f932306e6f8 "\002", len = -133061172}}<br>  Â  Â  Â  attr = {n = 0, s = {s = 0x0, len = -133445686}}<br>  Â  Â  Â  at = <optimized out><br>  Â  Â  Â  params = 0x0<br>  Â  Â  Â  __FUNCTION__ = "evi_raise_script_event"<br>#4 Â 0x000055cef8068c5f in w_raise_event (msg=<optimized out>, ev_id=<optimized out>, attrs_avp=<optimized out>,<br>  Â  vals_avp=<optimized out>) at core_cmds.c:1204<br>  Â  Â  Â  __FUNCTION__ = "w_raise_event"<br>#5 Â 0x000055cef8086199 in do_action (a=0x7f932304d020, msg=0x7f9323134890) at action.c:972<br>  Â  Â  Â  ret = <optimized out><br>  Â  Â  Â  v = <optimized out><br>  Â  Â  Â  i = <optimized out><br>  Â  Â  Â  len = <optimized out><br>  Â  Â  Â  cmatch = <optimized out><br>  Â  Â  Â  aitem = <optimized out><br>  Â  Â  Â  adefault = <optimized out><br>  Â  Â  Â  spec = <optimized out><br>  Â  Â  Â  val = {rs = {s = 0x7f932304c748 "\002", len = 0}, ri = -129751552, flags = 21966}<br>  Â  Â  Â  start = {tv_sec = 94347416839552, tv_usec = 140269924432168}<br>  Â  Â  Â  end_time = <optimized out><br>  Â  Â  Â  cmd = 0x55cef832c550 <core_cmds+11280><br>  Â  Â  Â  acmd = <optimized out><br>  Â  Â  Â  cmdp = {0x14, 0x7f932304cf88, 0x0, 0x2, 0x7f9323134890, 0x55cef80bb253 <eval_elem+1256>, 0x1, 0xc}<br>  Â  Â  Â  tmp_vals = {{rs = {s = 0x400000000 <error: Cannot access memory at address 0x400000000>, len = 587509104}, ri = 18, flags = 0}, {rs = {s = 0x7f9323134890 "\001", len = 587509104}, ri = 588466320, flags = 32659}, {rs = {s = 0x55cef8442600 <_oser_err_info> "", len = -133061748}, ri = -131568035, flags = 21966}, {rs = {s = 0x3 <error: Cannot access memory at address 0x3>, len = 587512256}, ri = 3, flags = 0}, {rs = {s = 0x7ffcdf4d3790 "\220H\023#\223\177", len = 587509104}, ri = -131568035, flags = 21966}, {rs = {s = 0x3 <error: Cannot access memory at address 0x3>, len = 0}, ri = 587655824, flags = 32659}, {rs = {s = 0x0, len = 588466320}, ri = 0, flags = 0}, {rs = {s = 0x55cef80baba7 <eval_expr+300> "A\211\304D\213\005\277\355'", len = 593194504}, ri = 2, flags = 0}}<br>  Â  Â  Â  sval = {s = 0x7ffcdf4d3730 "]n(\370\316U", len = 587515424}<br>  Â  Â  Â  __FUNCTION__ = "do_action"</font><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif"> </font></div><div>(full backtrace is available)</div><div><br></div><div>Build is taken from 3.1 branch on GitHub</div><div>Server is running Debian 10 (Buster)</div><div><br></div><div><br></div></div>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a><br>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" rel="noreferrer" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
</blockquote></div>