[OpenSIPS-Users] What is protocol/port mismatch?

Bogdan-Andrei Iancu bogdan at voice-system.ro
Thu Feb 4 10:10:09 CET 2010


Hi Brian,

The backtrace from gdb seams really corrupted, but the pstack output is 
a bit consistent.
What is strange is that dlg_validate_dialog () seams to call 
fm_realloc() which is not in the script.

So, to eliminate any possibility of a mem corruption (the crash was in 
the mem manager), I suggest to compile the mem debugger to see if there 
are no mem issues (mem overwritten, double free, etc).

Regards,
Bogdan


opensipslist at encambio.com wrote:
> Hello Bogdan,
>
> An mer., févr 03, 2010, Bogdan-Andrei Iancu schrieb:
>   
>> Regarding the crash you mentioned - do you have any backtraces ?
>>
>>     
> There's quite a lot of situations in which OpenSIPS crashes, so
> I'm not sure this one is related to TLS traffic arriving on a non
> TLS port. In any case, here's the last backtrace:
>
> $ gdb /pfx/sbin/opensips opensips.17272.name.host.tld.core 
> GNU gdb 6.8
> Copyright (C) 2008 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "i386-pc-solaris2.11"...
> (no debugging symbols found)
> Cannot access memory at address 0x70795464
> (gdb) bt
> #0  0x0810eefc in fm_realloc ()
> #1  0xd0d8cc8c in ?? ()
> #2  0x080465a8 in ?? ()
> #3  0xd0d859d4 in ?? ()
> #4  0x08353c2c in mem_pool ()
> #5  0x00000191 in ?? ()
> #6  0x08046640 in ?? ()
> #7  0xffffffff in ?? ()
> #8  0xffffffff in ?? ()
> #9  0x080467d8 in ?? ()
> #10 0x08046638 in ?? ()
> #11 0x0812437e in parse_min_se ()
> #12 0x083132e0 in mem_pool ()
> #13 0xffffffff in ?? ()
> #14 0x81af694b in ?? ()
> #15 0xd0d8c6fc in ?? ()
> #16 0x00000001 in ?? ()
> #17 0x08353c2c in mem_pool ()
> #18 0xce43365d in ?? ()
> #19 0x080467c4 in ?? ()
> #20 0x0804678c in ?? ()
> #21 0x08353f9c in mem_pool ()
> #22 0x08046640 in ?? ()
> #23 0x08353f9c in mem_pool ()
> #24 0x00000073 in ?? ()
> #25 0x082ff8e8 in ?? ()
> #26 0xd13dbbe9 in ?? ()
> #27 0x00000002 in ?? ()
> #28 0x082ff8f0 in ?? ()
> #29 0x00003332 in ?? ()
> #30 0x00000000 in ?? ()
> (gdb)
>
> $ pstack opensips.17272.name.host.tld.core core 'opensips.17272.name.host.tld.core' of 17272:        /pfx/sbin/opensips -P /pfx/var/opensips/opensips.pid
>  0810eefc fm_realloc (0, 80467cc, 0, 80467d8, d10f0000, 8354104) + 4bc
>  d1011537 dlg_validate_dialog (8353c2c, ce4334b0, 8046a38, d101459b, ce4334b0, 8323390) + 290
>  d10035ba w_validate_dialog (8353c2c, 0, 0, 0, 0, 0) + 2a
>  08076240 do_action (8323390, 8353c2c, 7275652e, 8046c00, 8046bf0, 0) + 15a5
>  08079877 run_action_list (8323390, 8353c2c, 844f7c8, 844f735, 83132ba, 13) + 281
>  080d03a7 eval_expr (83233fc, 8353c2c, 0, 0, 313c5, 1) + 46a
>  080d014a eval_expr (8323428, 8353c2c, 0, 0, 0, 0) + 20d
>  080d0019 eval_expr (8323454, 8353c2c, 0, d0ff18b3, 0, 8354890) + dc
>  080d0172 eval_expr (8323480, 8353c2c, 0, 8354700, 8354a2c, 27) + 235
>  0807643d do_action (83238cc, 8353c2c, 40, 82b1c50, 80472d4, 80472d4) + 17a2
>  08079877 run_action_list (83238cc, 8353c2c, 0, 81aaf92, 82b1c50, ce4350a8) + 281
>  08078381 do_action (832536c, 8353c2c, ce415b0d, d0dadd84, ce433690, ce415b08) + 36e6
>  08079877 run_action_list (832536c, 8353c2c, 0, 0, 0, 0) + 281
>  08078381 do_action (8325654, 8353c2c, ce415790, 0, 8353c30, 1) + 36e6
>  08079877 run_action_list (832108c, 8353c2c, d106ea15, 8344074, 8353c2c, 0) + 281
>  08079c50 get_bl_head_by_name (832108c, 8353c2c, 8353c2c, 80478f0, 308, 8353c2c) + f3
>  080be5aa receive_msg (ce415808, 308, ce4157a0, 80478d4, ce375d9c, 2) + 5ac
>  080f4cf4 tcp_read_req (ce415790, 8047978, d11d10c5, d11bfa64, 17, ce375d4c) + 18c
>  080f687d ???????? (b, d001, 8047ac4, d06e7e60, d06e9ae0, 831a84c)
>  080f77a4 tcp_receive_loop (c, 2, 0, 8047b10, 9, 0) + 94b
>  080ed6f8 tcp_send (82cb1f4, 138a, 83178e8, 805f130, d1169cc8, 8047c5c) + 4b
>  08091d47 main     (80749c0, 3, 8047bdc) + 3bab
>  080749c0 do_assign (3, 8047cc4, 8047cd8, 8047cdb, 0, 8047cfb) + d0
>
> $ pflags opensips.17272.name.host.tld.core
> core 'opensips.17272.name.host.tld.core' of 17272:        /pfx/sbin/opensips -P /pfx/var/opensips/opensips.pid
>         data model = _ILP32  flags = ORPHAN|MSACCT|MSFORK
>  /1:    flags = 0
>         sigmask = 0xffffbefc,0x0000ffff  cursig = SIGSEGV
>
>   
>> 1) t_relay() is not forcing any proto by itself: it preserves the 
>> inbound proto if the RURI (or socket) is not saying otherwise.
>>
>>     
> Okay, then I assume the t_relay() tried sending TLS traffic to
> the voicemail server, could not negotiate a TLS connection, and
> so resent the message over UDP instead. Is that right? Does
> t_relay() choose UDP instead of TCP when its first choice (the
> preserved inbound proto) cannot be used?
>
>   
>> 2) turning off the double RR may brake some things as opensips will
>> not be able to properly route between the original inbound and
>> outbound interfaces... only if you do it manually from the script.
>>
>>     
> I've configured OpenSIPS to listen on only one interface, so I guess
> that I'm not affected by this breakage. Next I'll try to solve the
> problem another way without disabling double Record-Route headers.
>
>   
>> To me, the solution looks like a dirty hack, but if makes Asterisk
>> happy... what can I say :)
>>
>>     
> Now that I know more I'll try to solve it another way.
>
> Regards,
> Brian
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>   


-- 
Bogdan-Andrei Iancu
www.voice-system.ro




More information about the Users mailing list