Hello,
Andrei Pelinescu-Onciul andrei@iptel.org écrit/wrote:
On Jun 30, 2005 at 16:49, Lol Zimmerli lolzim@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