[Asterisk-Dev] Segfault in chan_iax

Mark Spencer markster at digium.com
Sun Jan 4 16:59:08 MST 2004


Stay away from chan_iax, time to move on to iax2, please!!

Mark

On Sun, 4 Jan 2004, Tilghman Lesher wrote:

> Yep, iaxs[fr.callno]->owner is NULL at 3790, for whatever reason.  Looks
> like it would have to be a race condition of some kind.  Version running on
> this machine is CVS-11/23/03-00:42:48.
>
> -Tilghman
>
>
> #0  0x4030675c in socket_read (id=0x80dfea8, fd=12, events=1, cbdata=0x0) at chan_iax.c:3790
> 3790                                                    orignative = iaxs[fr.callno]->owner->nativeformats;
> (gdb) bt full
> #0  0x4030675c in socket_read (id=0x80dfea8, fd=12, events=1, cbdata=0x0) at chan_iax.c:3790
>         orignative = 1076965568
>         sin = {sin_family = 2, sin_port = 44051, sin_addr = {s_addr = 1264603457}, sin_zero = "\000\000\000\000\000\000\000"}
>         res = 172
>         new = 0
>         buf = "¶ÿÿÿ\000\000\000\t\000\001\002\004«£».!)î¸]<ا ¹0$-èË<4Ñ£\236·1(4â\\%\026\026?\234\230\227\225\232\236¤¶Í<.*#!\037\037!$(*.6CeÕŽ·¯­¬«ªª¬®°µº¿ÆÐàkVLFA><;9999:;<=?DHMU]mñÞÖÎÌÉÇÅÄÅÄÄÅÆÈÊÌÏÓØÞçñyld^ZXVTSSSTTVWYZ]_dhlsyüõïíêéèææåççè", '\000' <repeats 736 times>, "Îl\002@", '\000' <repeats 12 times>, "\214I\036@"...
>         src = "IAX/65.81.96.75/21\00075/21", '\000' <repeats 55 times>
>         len = 16
>         dcallno = 65535
>         fh = (struct ast_iax_full_hdr *) 0x403130c0
>         fr = {f = 0xbeffe9ac, callno = 22, data = 0x0, datalen = 0, retries = 0, ts = 9, retrytime = 0, outoforder = 0, sentyet = 0,
>   seqno = 1, transfer = 0, final = 0, direction = 0, retrans = 0, next = 0x0, prev = 0x0}
>         cur = (struct ast_iax_frame *) 0x0
>         f = {frametype = 2, subclass = 4, datalen = 160, samples = 160, mallocd = 0, offset = 0, src = 0xbeffea1c "IAX/65.81.96.75/21",
>   data = 0xbeffea78, prev = 0x0, next = 0x0}
>         c = (struct ast_channel *) 0x0
>         dp = (struct iax_dpcache *) 0x16
>         format = 2
>         exists = -1
>         mm = 0
>         rel0 = '\000' <repeats 255 times>
>         rel1 = "formats=2;", '\000' <repeats 244 times>
>         empty = '\000' <repeats 31 times>
> #1  0x0805151e in ast_io_wait (ioc=0x80dd970, howlong=1000) at io.c:267
>         ioc = (struct io_context *) 0x80dd970
>         res = 1
>         x = 0
>         origcnt = 1
> #2  0x4030a689 in network_thread (ignore=0x0) at chan_iax.c:4521
>         res = 4
>         f = (struct ast_iax_frame *) 0x80dd990
>         freeme = (struct ast_iax_frame *) 0x80dd970
> #3  0x400280ce in pthread_start_thread (arg=0xbefffc00) at manager.c:291
>         self = 0xbefffc00
>         request = {req_thread = 0x0, req_kind = REQ_CREATE, req_args = {create = {attr = 0x0, fn = 0, arg = 0x0, mask = {__val = {
>           0 <repeats 32 times>}}}, free = {thread_id = 0}, exit = {code = 0}, post = 0x0, for_each = {fn = 0, arg = 0x0}}}
>         outcome = (void *) 0x0
> (gdb) print *iaxs[22]
> $1 = {quelch = 0, voiceformat = 4, svoiceformat = 0, capability = 2, last = 0, lastsent = 3, pingtime = 1000, maxtime = 0, addr = {
>     sin_family = 2, sin_port = 44051, sin_addr = {s_addr = 1264603457}, sin_zero = "\000\000\000\000\000\000\000"}, callno = 22,
>   peercallno = 14079, peerformat = 4, peercapability = 2147483518, offset = {tv_sec = 1073243751, tv_usec = 364149}, rxcore = {
>     tv_sec = 1073243751, tv_usec = 364422}, history = {0 <repeats 99 times>, -1}, jitterbuffer = 0, jitter = 1, historicjitter = 1,
>   lag = 0, error = 0, owner = 0x0, state = 1, expirey = 60, oseqno = 2, iseqno = 2, peer = '\000' <repeats 79 times>,
>   context = "internal", '\000' <repeats 71 times>, callerid = '\000' <repeats 79 times>, ani = '\000' <repeats 79 times>, sendani = 0,
>   dnid = '\000' <repeats 79 times>, exten = "673", '\000' <repeats 76 times>, username = "vcch", '\000' <repeats 75 times>,
>   secret = '\000' <repeats 79 times>, methods = "md5,plaintext", '\000' <repeats 66 times>,
>   challenge = "\000\000\000\000\000\000\000\000\000", inkeys = '\000' <repeats 79 times>, outkey = '\000' <repeats 79 times>,
>   language = "en", '\000' <repeats 77 times>, reg = 0x0, peerpoke = 0x0, transferring = 0, alreadygone = 1, transfer = {sin_family = 0,
>     sin_port = 0, sin_addr = {s_addr = 0}, sin_zero = "\000\000\000\000\000\000\000"}, transfercallno = -1, peeradsicpe = 2,
>   bridgecallno = -1, pingid = -1, lagid = -1, autoid = -1, initid = -1, dproot = '\000' <repeats 79 times>,
>   accountcode = '\000' <repeats 19 times>, amaflags = 0, dpentries = 0x0}
>
> _______________________________________________
> Asterisk-Dev mailing list
> Asterisk-Dev at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-dev
>




More information about the asterisk-dev mailing list