[Serusers] problem with failure_route

Andrei Pelinescu-Onciul andrei at iptel.org
Fri Jul 1 12:58:56 CEST 2005


On Jun 30, 2005 at 18:49, Lol Zimmerli <lolzim at worldcom.ch> wrote:
> Hello,
> 


I think I've found the bug, but I need a little more info to confirm it.

Are you using a forwad() before the t_relay()?
Maybe some missing break after a forward() or route()?

If not, could you send me your config (privately)?

If I'm right about the missing break, then adding it would be the quick fix
(until I commit the "real" fix).


Andrei


> Andrei Pelinescu-Onciul <andrei at iptel.org> ?crit/wrote:
> > On Jun 30, 2005 at 16:49, Lol Zimmerli <lolzim at worldcom.ch> wrote:
> > [...]
> > > 
> > > 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?
> > 
> > No, it's not a known bug.
> > What ser version are you using? Could you send ser -V output?
> 
> The current CVS version, on X86_64, SuSE 9.2 pro
> 
> ser:~ # /usr/local/sbin/ser -V
> version: ser 0.10.99-dev9-new_tcp (x86_64/linux)
> flags: STATS: Off, USE_IPV6, USE_TCP, DISABLE_NAGLE, USE_MCAST,
> DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, DBG_QM_MALLOC, FAST_LOCK-
> ADAPTIVE_WAIT ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144,
> MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535 poll method support:
> poll, epoll_lt, epoll_et, sigio_rt, select. @(#) $Id: main.c,v 1.198
> 2005/06/16 14:05:24 andrei Exp $ main.c compiled on 11:20:24 Jun 27
> 2005 with gcc 3.3
> 
> 
> > Could you send me a backtrace (gdb ser core   and then type bt)?
> 
> (gdb) bt
> #0  0x0000002a958b36cd in raise () from /lib64/tls/libc.so.6
> #1  0x0000002a958b4c7e in abort () from /lib64/tls/libc.so.6
> #2  0x0000000000441311 in qm_free (qm=0x5dcec0, p=0x2a97d717e8,
> #file=0x468b3d "data_lump.c", func=0x468b33 "free_lump", line=376) at
> #q_malloc.c:446 3  0x000000000040b687 in free_lump (lmp=Variable
> #"lmp" is not available.
> ) at data_lump.c:378
> #4  0x0000002a964d3790 in print_uac_request (t=Variable "t" is not
> #available.
> ) at fix_lumps.h:73
> #5  0x0000002a964d40fd in add_uac (t=0x2a97d6f308,
> #request=0x2a96607d80, uri=0x7fbfffdfa0, next_hop=Variable "next_hop"
> #is not available.
> ) at t_fwd.c:228
> #6  0x0000002a964d486f in t_forward_nonack (t=0x2a97d6f308,
> #p_msg=0x2a96607d80, proxy=0x6279e0, proto=0) at t_fwd.c:453 7
> #0x0000002a964e5a6b in _w_t_relay_to (p_msg=0x2a96607d80,
> #proxy=0x6279e0) at tm.c:794 8  0x0000000000408d46 in do_action
> #(a=0x624f10, msg=0x2a96607d80) at action.c:611 9  0x000000000040a2db
> #in run_actions (a=Variable "a" is not available.
> ) at action.c:719
> #10 0x0000002a964ddc80 in t_should_relay_response
> #(Trans=0x2a97d6f308, new_code=Variable "new_code" is not available.
> ) at t_reply.c:635
> #11 0x0000002a964e0478 in relay_reply (t=0x2a97d6f308,
> #p_msg=0xffffffffffffffff, branch=0, msg_status=408,
> #cancel_bitmap=0x7fbfffe484) at t_reply.c:1004 12 0x0000002a964e4907
> #in timer_routine (ticks=28, attr=Variable "attr" is not available.
> ) at timer.c:254
> #13 0x0000000000439518 in timer_ticker () at timer.c:146
> #14 0x0000000000417781 in main_loop () at main.c:1114
> #15 0x0000000000418d1d in main (argc=Variable "argc" is not available.
> ) at main.c:1600
> (gdb)
> 
> Best regards
> 
> -- 
> # Lol Zimmerli  //  S y s C o ?  //  http://www.sysco.ch/
> Parenthesise to avoid ambiguity.
>             - The Elements of Programming Style (Kernighan & Plaugher)




More information about the sr-users mailing list