[Kamailio-Devel] [ openser-Bugs-2102541 ] DNS_name to IP coredumps

SourceForge.net noreply at sourceforge.net
Fri Dec 5 12:55:25 CET 2008


Bugs item #2102541, was opened at 2008-09-09 19:42
Message generated for change (Comment added) made by henningw
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=743020&aid=2102541&group_id=139143

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: core
Group: ver 1.3.x
>Status: Closed
Resolution: None
Priority: 7
Private: No
Submitted By: Stefan Broddesson (broddesson)
Assigned to: Henning Westerholt (henningw)
Summary: DNS_name to IP coredumps

Initial Comment:
Calee initiated <bye> and destination address is a hostname not IP address.
Executing forward() or t_relay() in script triggers the coredump.
dns & rev_dns On/Off with the same result.
---
DBG:core:comp_scriptvar: str 20 : siphost.domain.com
DBG:tm:t_newtran: transaction on entrance=0xffffffffffffffff
DBG:core:parse_headers: flags=ffffffffffffffff
DBG:core:parse_headers: flags=78
DBG:tm:t_lookup_request: start searching: hash=7994, isACK=0
DBG:tm:matching_3261: RFC3261 transaction matching failed
DBG:tm:t_lookup_request: no transaction found
DBG:tm:run_reqin_callbacks: trans=0x2b4e6b2e0f48, callback type 1, id 0 entered
DBG:siptrace:trace_onreq_in: trace off...
DBG:core:mk_proxy: doing DNS lookup...
DBG:core:sip_resolvehost: no port, no proto -> do NAPTR lookup!
DBG:core:filter_and_sort_naptr: found valid SIP+D2U -> _sip._udp.siphost.domain.com
DBG:core:filter_and_sort_naptr: skipping SIPS+D2T -> _sips._tcp.siphost.domain.com
DBG:core:filter_and_sort_naptr: skipping SIP+D2T -> _sip._tcp.siphost.domain.com

//s

----------------------------------------------------------------------

>Comment By: Henning Westerholt (henningw)
Date: 2008-12-05 11:55

Message:
Ok, lets close this, as i got no response from the reporter. Stefan, if
you've any updates on this bugs, e.g. some new traces, please re-open this
entry. If this was fixed by some other means, perhaps you can also add a
short update. Thanks,

Henning

----------------------------------------------------------------------

Comment By: Nobody/Anonymous (nobody)
Date: 2008-11-14 20:26

Message:
lets close this one?
klaus

----------------------------------------------------------------------

Comment By: Henning Westerholt (henningw)
Date: 2008-10-16 14:23

Message:
Hi Klaus,

yes, i also thought the same. I'll port this change to our tree later. The
last message from the reporter was that he has another set of core dumps,
and he'll analyse them when he return.

Henning

----------------------------------------------------------------------

Comment By: Nobody/Anonymous (nobody)
Date: 2008-10-16 14:06

Message:
Bogdan fixed something regardin DNS lookups:
http://opensips.svn.sourceforge.net/viewvc/opensips?view=rev&revision=4800

But I fear this is not relevant for 1.3

klaus

----------------------------------------------------------------------

Comment By: Henning Westerholt (henningw)
Date: 2008-09-12 09:18

Message:
Hi Stefan,

the "filter_and_sort_naptr" DBG output given is the last message in the
logs before the crash? Can you send me (privatly) the msg trace/ domain
name that causes this? Does it depend on certain things in the config
scripts, perhaps you could isolate the problem to a "minimal" config that
still crash?

My mail address is henning dot westerholt at 1und1 dot de

Best regards,

Henning

----------------------------------------------------------------------

Comment By: Stefan Broddesson (broddesson)
Date: 2008-09-11 15:34

Message:
<bye> that triggers this:

BYE sip:+45123123123 at otherhost.domain.com SIP/2.0
Via: SIP/2.0/UDP 113.113.113.113:5060;branch=z9hG4bK5e4fd039;rport
Route:
<sip:113.113.113.99;lr=on;ftag=8d7a097f>,<sip:siphost.domain.com;lr>
From:
"0105140809"<sip:+45105140809 at 113.113.113.10;user=phone>;tag=as3102acd2
To:
"45123123123"<sip:+45123123123 at siphost.domain.com;user=phone>;tag=8d7a097f
Call-ID: ODA4OTViYTRhNDU1Njg4MjE1OWEyY2I5MWMyZTk3MzM.
CSeq: 102 BYE
User-Agent: asterisk
Max-Forwards: 70
Content-Length: 0

//s

----------------------------------------------------------------------

Comment By: Stefan Broddesson (broddesson)
Date: 2008-09-11 15:08

Message:
Hi Henning,

Please disregard that comment, about route(1), of mine...  was missing an
"exit;" that wasn't missing.

Core dumps occur 100% of the time, on calee <bye>, if destination is
siphost.domain.com instead of it's IP address.

//s


----------------------------------------------------------------------

Comment By: Henning Westerholt (henningw)
Date: 2008-09-11 13:57

Message:
Hi Stefan,

thanks for the coredumps, but they also show not that much interesting,
unfortunally. Did i understand correctly that it crashes only if you do two
"route(1)" in the script? How frequent does the crash then happens?

Cheers,

Henning

----------------------------------------------------------------------

Comment By: Stefan Broddesson (broddesson)
Date: 2008-09-11 07:25

Message:
Haven't tried the 1.4 release yet.
No proprietary modules, script profile is for LB/Dispatching, and Dialog
module is not used.

Initially sip headers was search/replace'd for the occurances of theese
host names, this also works, and 
openser does not dump core. Of what you mention the restart of openser in
between <invite> and <bye> haven't been tested. 

Tried both forward() and t_relay() and they both cause a core dump if any
host name is found for the returning <bye>.

I do subscribe to the dev & users mailing list.
Backtraces attached.
//s
File Added: OpenSER-1_3_3-svn_4779-bug_2102541_Backtraces.txt

----------------------------------------------------------------------

Comment By: Stefan Broddesson (broddesson)
Date: 2008-09-10 15:45

Message:
Made it dump core with the additional startup params.

In all 21 files created. Will prepare a file, with backtraces, to upload.
Expect it by tomorrow morning.

//s

----------------------------------------------------------------------

Comment By: Nobody/Anonymous (nobody)
Date: 2008-09-10 14:25

Message:
not sure if I understand? you were calling route(1) (with t_relay())
twice?

Yes, it shouldn't coredump anyway

----------------------------------------------------------------------

Comment By: Stefan Broddesson (broddesson)
Date: 2008-09-10 14:00

Message:
Klaus,

Had a serial of 2 route(1)'s that caused this, first one now does exit;.
Still would expect it would be absorbed without a coredump, right?

 do we still want to proceed with the coredump?

//s

----------------------------------------------------------------------

Comment By: Nobody/Anonymous (nobody)
Date: 2008-09-10 11:23

Message:
hmmm - maybe multiple process crash and the cordeump gets overwritten by
another coredump. I use the following config (in the init script) to have
the PID in the core dump file name:

    # directory for the core dump files
    COREDIR=/tmp
    [ -d $COREDIR ] || mkdir $COREDIR
    chmod 777 $COREDIR
    echo "$COREDIR/openser.core.%e.sig%s.%p" >
/proc/sys/kernel/core_pattern

Then start openser with debug=4.

In the logfile you should see which process segfaults first (if multiple
segfault) to analyze the proper core.

Have you tried using 1.4 release?

Are you using any proprietary modules? How ar you handling the BYE (just
loose_route() and t_relay()? Are you using the dialog module? What if you
put the same domain as in the BYE into an INVITE - does it crash too? Does
it also crash if you restart openser inbetween INV-200-ACK and BYE ?

Are you subscribed to an mailinglist? So we could move the discussion to
the mailinglist.

klaus

----------------------------------------------------------------------

Comment By: Stefan Broddesson (broddesson)
Date: 2008-09-10 11:13

Message:
Yes, it is easy to reproduce.
If no replacement of hostname to IP is done, then it coredumps.

No other core files exist.
-is there anything I could prep. the script with, flags to use a.s.o.?

//s

----------------------------------------------------------------------

Comment By: Nobody/Anonymous (nobody)
Date: 2008-09-10 10:43

Message:
That does not show anything interesting. MAybe there is another core file
from another openser process which acutally crashed?

Can you reproduce the crash?

----------------------------------------------------------------------

Comment By: Stefan Broddesson (broddesson)
Date: 2008-09-10 08:39

Message:
...on autopilot  ;-)  should have realised that.

here goes:

(gdb) bt
#0  0x00002b11a1505145 in _dl_rtld_di_serinfo () from
/lib64/ld-linux-x86-64.so.2
#1  0x00002b11a185bb8d in exit () from /lib/libc.so.6
#2  0x0000000000420e20 in handle_sigs () at main.c:522
#3  0x0000000000424ec0 in main (argc=10274, argv=0x20) at main.c:919
(gdb)

//s

----------------------------------------------------------------------

Comment By: Nobody/Anonymous (nobody)
Date: 2008-09-10 06:47

Message:
my fault. please enter 'bt' without #
(the # was meant to reflect the prompt of the gdb shell, but the gdb
prompt is (gdb))

----------------------------------------------------------------------

Comment By: Stefan Broddesson (broddesson)
Date: 2008-09-09 22:36

Message:
Hi Klaus!

Didn't include "# bt" output, since it was just a blank line...

Regards,
Stefan 

----------------------------------------------------------------------

Comment By: Stefan Broddesson (broddesson)
Date: 2008-09-09 22:30

Message:
OpenSER 1.3.3-notls (x86_64) openser_receiver_version_9460
backtrace is:

GNU gdb 6.4.90-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you
are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for
details.
This GDB was configured as "x86_64-linux-gnu"...Using host libthread_db
library "/lib/libthread_db.so.1".


warning: Can't read pathname for load map: Input/output error.
Reading symbols from /lib/libdl.so.2...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /lib/libresolv.so.2...done.
Loaded symbols for /lib/libresolv.so.2
Reading symbols from /lib/libc.so.6...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux-x86-64.so.2...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /usr/local/lib64/openser/modules/sl.so...done.
Loaded symbols for /usr/local/lib64/openser/modules/sl.so
Reading symbols from /usr/local/lib64/openser/modules/uri.so...done.
Loaded symbols for /usr/local/lib64/openser/modules/uri.so
Reading symbols from /usr/local/lib64/openser/modules/mi_fifo.so...done.
Loaded symbols for /usr/local/lib64/openser/modules/mi_fifo.so
Reading symbols from /usr/local/lib64/openser/modules/maxfwd.so...done.
Loaded symbols for /usr/local/lib64/openser/modules/maxfwd.so
Reading symbols from /usr/local/lib64/openser/modules/xlog.so...done.
Loaded symbols for /usr/local/lib64/openser/modules/xlog.so
Reading symbols from /usr/local/lib64/openser/modules/unixodbc.so...done.
Loaded symbols for /usr/local/lib64/openser/modules/unixodbc.so
Reading symbols from /usr/lib/libodbc.so.1...done.
Loaded symbols for /usr/lib/libodbc.so.1
Reading symbols from /usr/lib/libz.so.1...done.
Loaded symbols for /usr/lib/libz.so.1
Reading symbols from /usr/lib/libltdl.so.3...done.
Loaded symbols for /usr/lib/libltdl.so.3
Reading symbols from /lib/libpthread.so.0...done.
Loaded symbols for /lib/libpthread.so.0
Reading symbols from /usr/local/lib64/openser/modules/auth.so...done.
Loaded symbols for /usr/local/lib64/openser/modules/auth.so
Reading symbols from /usr/local/lib64/openser/modules/auth_db.so...done.
Loaded symbols for /usr/local/lib64/openser/modules/auth_db.so
Reading symbols from /usr/local/lib64/openser/modules/uri_db.so...done.
Loaded symbols for /usr/local/lib64/openser/modules/uri_db.so
Reading symbols from /usr/local/lib64/openser/modules/usrloc.so...done.
Loaded symbols for /usr/local/lib64/openser/modules/usrloc.so
Reading symbols from
/usr/local/lib64/openser/modules/registrar.so...done.
Loaded symbols for /usr/local/lib64/openser/modules/registrar.so
Reading symbols from /usr/local/lib64/openser/modules/path.so...done.
Loaded symbols for /usr/local/lib64/openser/modules/path.so
Reading symbols from /usr/local/lib64/openser/modules/options.so...done.
Loaded symbols for /usr/local/lib64/openser/modules/options.so
Reading symbols from /usr/local/lib64/openser/modules/mangler.so...done.
Loaded symbols for /usr/local/lib64/openser/modules/mangler.so
Reading symbols from
/usr/local/lib64/openser/modules/uac_redirect.so...done.
Loaded symbols for /usr/local/lib64/openser/modules/uac_redirect.so
Reading symbols from
/usr/local/lib64/openser/modules/permissions.so...done.
Loaded symbols for /usr/local/lib64/openser/modules/permissions.so
Reading symbols from /usr/local/lib64/openser/modules/rr.so...done.
Loaded symbols for /usr/local/lib64/openser/modules/rr.so
Reading symbols from /usr/local/lib64/openser/modules/tm.so...done.
Loaded symbols for /usr/local/lib64/openser/modules/tm.so
Reading symbols from /usr/local/lib64/openser/modules/pike.so...done.
Loaded symbols for /usr/local/lib64/openser/modules/pike.so
Reading symbols from /usr/local/lib64/openser/modules/textops.so...done.
Loaded symbols for /usr/local/lib64/openser/modules/textops.so
Reading symbols from /usr/local/lib64/openser/modules/siptrace.so...done.
Loaded symbols for /usr/local/lib64/openser/modules/siptrace.so
Reading symbols from /lib/libnss_compat.so.2...done.
Loaded symbols for /lib/libnss_compat.so.2
Reading symbols from /lib/libnsl.so.1...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /lib/libnss_nis.so.2...done.
Loaded symbols for /lib/libnss_nis.so.2
Reading symbols from /lib/libnss_files.so.2...done.
Loaded symbols for /lib/libnss_files.so.2
Reading symbols from /usr/lib/gconv/ISO8859-1.so...done.
Loaded symbols for /usr/lib/gconv/ISO8859-1.so
Reading symbols from /usr/lib/odbc/libtdsodbc.so...done.
Loaded symbols for /usr/lib64/odbc/libtdsodbc.so
Reading symbols from /usr/lib/libodbcinst.so.1...done.
Loaded symbols for /usr/lib/libodbcinst.so.1

warning: Can't read pathname for load map: Input/output error.
Core was generated by `./openser -P /var/run/openser.pid -f
/usr/local/etc/openser/dispatcher_x98.cfg'.
Program terminated with signal 11, Segmentation fault.
#0  0x00002b9860124145 in _dl_rtld_di_serinfo () from
/lib64/ld-linux-x86-64.so.2



----------------------------------------------------------------------

Comment By: Nobody/Anonymous (nobody)
Date: 2008-09-09 21:24

Message:
Hi Stefan!

Which version? Can you also please post a backtrack of the coredump?
 1. gdb /usr/sbin/kamailio /path/to/core.file
 2. # bt

thanks
klaus

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=743020&aid=2102541&group_id=139143



More information about the Devel mailing list