Hello,
I do have the following in ser.cfg:
------------------------
failure_route[1] {
log(1, "Entering failure_route(1)");
revert_uri();
log(1, "reverted");
rewritehostport("xxx.xxx.xxx.xxx:5060");
log(1, "rewritten");
append_branch();
log(1, "appended");
t_relay_to_udp("xxx.xxx.xxx.xxx", "5060");
log(1, "relayed");
log(1, "Exiting failure_route(1)");
break;
}
------------------------
It is called from there:
-----------------------
route[1] {
if (method=="INVITE") {
t_on_failure("1");
}
if (!t_relay()) {
sl_reply_error();
}
else {
log (1, "t_relay() done in route(1)");
}
break;
}
------------------------
Which is called from the end of route{} and also from end of some
route(x).
In the log, I can see SER crashing, after tm's "fr_inv_timer" seconds:
Jun 30 16:40:00 ser /usr/local/sbin/ser[3548]: Entering failure_route
(1) Jun 30 16:40:00 ser /usr/local/sbin/ser[3548]: reverted
Jun 30 16:40:00 ser /usr/local/sbin/ser[3548]: rewritten
Jun 30 16:40:00 ser /usr/local/sbin/ser[3548]: appended
Jun 30 16:40:00 ser /usr/local/sbin/ser[3548]: BUG: qm_free: bad
pointer 0x2a97d717e8 (out of memory block!) - aborting Jun 30
16:40:00 ser /usr/local/sbin/ser[3558]: ERROR: receive_fd: EOF on 14
Jun 30 16:40:00 ser /usr/local/sbin/ser[3525]: child process 3548
exited by a signal 6 Jun 30 16:40:00 ser /usr/local/sbin/ser[3525]:
core was generated Jun 30 16:40:00 ser /usr/local/sbin/ser[3525]:
INFO: terminating due to SIGCHLD
It also do the same if I replace t_relay_to_udp(...) with t_relay().
And also if I move the t_on_failure() in main route() or the calling
route(x).
Is it a known bug or am I doing something wrong?
Any help appreciated!
Best regards
--
# Lol Zimmerli // S y s C o ® //
http://www.sysco.ch/
Modularise. Use subroutines.
- The Elements of Programming Style (Kernighan & Plaugher)