[OpenSIPS-Users] opensips 1.6.1 crashes on NOTIFY?

Alexander goal81 at gmail.com
Tue Dec 22 10:53:11 CET 2009


  Oh, found one. Seems to be right core file. GDB says:

#0  0x080fbb52 in parse_params (_s=0xec, _c=695, _h=0x81d44bc, _p=0x1d4) at
parser/../trim.h:61
#1  0x080f135f in parse_msg (buf=0xb61eacc4 "э>\035\bп╛\036╤",
len=135861088, msg=0x305) at parser/msg_parser.c:567
#2  0x080ed9c7 in aaa_prot_bind (aaa_url=0xb61eacac, prot=0x80) at
aaa/aaa.c:85
#3  0x003b9205 in ?? ()
#4  0xb61eacac in ?? ()
#5  0x00000080 in ?? ()
#6  0x003e2df4 in ?? ()
#7  0x371f3654 in ?? ()
#8  0x00000007 in ?? ()
#9  0x08180e85 in _tr_buffer ()
#10 0x08180e81 in _tr_buffer ()
#11 0x00000000 in ?? ()

2009/12/22 Alexander <goal81 at gmail.com>

>   I have no core file for now:
>
>
> Dec 22 11:02:08 srv opensips[26182]: INFO:core:handle_sigs: core was not
> generated
>
>   Strange - "ulimit -c unlimited" and calls to setrlimit() in OpenSIPS
> produce no core file.
>
>   NOTIFY packets come from clients. Also, Opensips sometimes sends
> keepalive NOTIFY packets, but my route(5) is called inside "uri == myself"
> section.
>
> 2009/12/22 Anca Vamanu <anca at opensips.org>
>
> Hi Alexander,
>>
>> Can you please investigate the core with gdb and print here the output.
>> It seems awkward to me that you expect to receive Notifies and reply to
>> them. Wat kind of notifies are those? Sent by clients or the presence
>> server?
>>
>> Regards,
>> Anca
>>
>>
>>
>> Alexander wrote:
>> >   Hi all.
>> >
>> >   I've tried to update to Opensips 1.6.1, but encountered the
>> > following problem. Opensips starts successfully, but soon almost all
>> > it's processes die one by one and only two processes remain.
>> > For example, if right after start we have:
>> >
>> > # ps ax | grep opens
>> > 26182 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26183 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26184 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26185 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26186 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26187 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26188 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26189 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26190 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26191 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26192 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26193 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26194 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26195 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26196 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26197 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26198 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26199 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26200 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26201 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26202 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26203 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26204 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26205 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26206 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26207 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26208 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> >
>> >   When processes die, we have only:
>> >
>> > #ps ax | grep opens
>> > 26182 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> > 26184 ?        S      0:00 ./opensips -k 0x11110204 -u opensips
>> >
>> >   If I set debug=6, the following is written to /var/log/messages:
>> >
>> > Dec 22 11:02:03 srv rtpproxy[17011]: INFO:rxmit_packets: caller's
>> > address filled in: 195.182.195.206:1024 <http://195.182.195.206:1024>
>> > (RTP)
>> > Dec 22 11:02:03 srv opensips[26184]: Route 5 - NOTIFY
>> > Dec 22 11:02:05 srv opensips[26185]: Route 5 - PUBLISH
>> > Dec 22 11:02:06 srv opensips[26183]: Route 5 - NOTIFY
>> > Dec 22 11:02:06 srv opensips[26185]: Route 5 - NOTIFY
>> > Dec 22 11:02:06 srv opensips[26185]: Route 5 - NOTIFY
>> > Dec 22 11:02:06 srv opensips[26186]: Route 5 - NOTIFY
>> > Dec 22 11:02:06 srv opensips[26186]: Route 5 - NOTIFY
>> > Dec 22 11:02:08 srv rtpproxy[17011]: INFO:handle_command: lookup on
>> > ports 36664/35096, session timer restarted
>> > Dec 22 11:02:08 srv rtpproxy[17011]: INFO:handle_command: pre-filling
>> > callee's address with 87.251.142.50:5006 <http://87.251.142.50:5006>
>> > Dec 22 11:02:08 srv opensips[26208]: CRITICAL:core:receive_fd: EOF on 13
>> > Dec 22 11:02:08 srv opensips[26182]: INFO:core:handle_sigs: child
>> > process 26186 exited by a signal 11
>> > Dec 22 11:02:08 srv opensips[26182]: INFO:core:handle_sigs: core was
>> > not generated
>> > Dec 22 11:02:08 srv opensips[26182]: INFO:core:handle_sigs:
>> > terminating due to SIGCHLD
>> >
>> >   As I see, the last message received by process with PID 26186 is
>> > NOTIFY, and then it crashes.
>> >
>> > "Route 5 - NOTIFY" is in this block of configuration file:
>> >
>> > # SUBSCRIBE and PUBLISH Message Handling
>> > # --------------------------------------
>> > route[5]
>> > {
>> >     if (!t_newtran())
>> >     {
>> >         xlog("L_INFO", "Failed to create transaction\n");
>> >         sl_reply_error();
>> >         exit;
>> >     }
>> >
>> >     if (is_method("PUBLISH"))
>> >     {
>> >         xlog("L_INFO", "Route 5 - PUBLISH \n");
>> >         handle_publish();
>> >     }
>> >     else if (is_method("SUBSCRIBE"))
>> >     {
>> >         xlog("L_INFO", "Route 5 - SUBSCRIBE\n");
>> >         handle_subscribe();
>> >     }
>> >     else if (is_method("NOTIFY"))
>> >     {
>> >         xlog("L_INFO", "Route 5 - NOTIFY\n");
>> >         t_reply("200", "OK");
>> >         exit;
>> >     }
>> >
>> >     exit;
>> > }
>> >
>> >   In main routing logic:
>> >
>> > if (method == "SUBSCRIBE" || method == "PUBLISH" || method == "NOTIFY")
>> > {
>> >     route(4);
>> >     return(0);
>> > }
>> >
>> >   As I see, Opensips sets core dump limit, if it's turned off, but no
>> > core is produced (OS is CentOS 5.3).
>> >
>> >   What can be wrong? Version 1.6.0 did not crash like this.
>> > ------------------------------------------------------------------------
>> >
>> > _______________________________________________
>> > Users mailing list
>> > Users at lists.opensips.org
>> > http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>> >
>>
>>
>> --
>> Anca Vamanu
>> www.voice-system.ro
>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.opensips.org/pipermail/users/attachments/20091222/2a507b1c/attachment.htm 


More information about the Users mailing list