[SR-Users] Core Dump from select stmt

Daniel-Constantin Mierla miconda at gmail.com
Mon Apr 16 15:31:34 CEST 2012


Hello,

the issue was produced inside the debugger module, while printing config 
trace, according to the worker process back trace.

Can you try with the patch from following commit:

http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=40ddcf88df9ef71bba7c182b7a1d76b559645628

If all goes fine with it, I will backport to stable branch.

Cheers,
Daniel


On 4/16/12 2:58 AM, Akan wrote:
> On Solaris they seem to manage core dumps a little differently. Only 3 
> processes produced core dumps. I have included the text files of the 
> back trace.
>
> Thanks
>
> Nathaniel
>
> On 4/15/2012 5:34 AM, Daniel-Constantin Mierla wrote:
>> Hello,
>>
>> this one seems from the main process during the shut down cleanup. 
>> Perhaps the core from main process overwritten the one from worker 
>> process. Can you enable one core file per process in Solaris? In 
>> linux is possible via:
>>
>> echo "1">  /proc/sys/kernel/core_uses_pid
>> Then you have to reproduce the case and get the backtraces from each 
>> corefile.
>>
>> Cheers,
>> Daniel
>>
>> On 4/14/12 6:58 PM, Akan wrote:
>>> Here is the output from gdb that you requested:
>>>
>>> Core was generated by `./kamailio'.
>>> Program terminated with signal 10, Bus error.
>>> #0  0x00000001001c9ff0 in cfg_destory_groups () at cfg/cfg_struct.c:306
>>> 306                                                     old_string = 
>>> *(char **)(block + group->var_offset + mapping[i].offset);
>>> (gdb) bt full
>>> #0  0x00000001001c9ff0 in cfg_destory_groups () at cfg/cfg_struct.c:306
>>>         group = 0x1004e2528
>>>         def = <value optimized out>
>>>         i = <value optimized out>
>>>         group2 = <value optimized out>
>>>         mapping = 0x1004e23d8
>>>         old_string = <value optimized out>
>>> #1  cfg_destroy () at cfg/cfg_struct.c:398
>>>         __FUNCTION__ = "cfg_destroy"
>>> #2  0x0000000100060d44 in cleanup (show_status=1) at main.c:553
>>>         memlog = <value optimized out>
>>>         __FUNCTION__ = "cleanup"
>>> #3  0x0000000100061ae0 in shutdown_children (show_status=<value 
>>> optimized out>, sig=15) at main.c:678
>>> No locals.
>>> #4  0x0000000100063470 in handle_sigs () at main.c:769
>>>         chld = 0
>>>         chld_status = 0
>>>         memlog = <value optimized out>
>>> #5  0x0000000100066310 in main_loop () at main.c:1713
>>>         i = <value optimized out>
>>>         pid = <value optimized out>
>>>         si = <value optimized out>
>>>         si_desc = "udp receiver child=3 
>>> sock=209.252.110.38:5060\000óÐ\000\000\000\001\000BE\000\000\000\000\000\000\000\000\002ÿÿÿÿ\177ÿóÁ\000\000\000\001\000\037z\200", 
>>> '\000' <repeats 14 times>, "gÐÿÿÿÿÿÿÿýÿÿÿÿÿÿÿýÿÿÿÿÿÿÿýÿÿÿÿÿÿÿý"
>>> #6  0x00000001001f7e94 in main (argc=<value optimized out>, 
>>> argv=<value optimized out>) at main.c:2475
>>>         cfg_stream = <value optimized out>
>>>         c = <value optimized out>
>>>         r = -1
>>>         tmp = 0x0
>>>         tmp_len = 0
>>>         options = 0x100222858 
>>> ":f:cm:M:dVhEb:l:L:n:vrRDTN:W:w:t:u:g:P:G:SQ:O:a:A:"
>>>         seed = 660384647
>>>         rfd = <value optimized out>
>>>         debug_save = <value optimized out>
>>>         debug_flag = <value optimized out>
>>>         dont_fork_cnt = <value optimized out>
>>>         n_lst = 0x100000
>>>         p = <value optimized out>
>>> (gdb)
>>>
>>>
>>> Thanks
>>>
>>> Nathaniel
>>>
>>> On 4/14/2012 3:10 AM, Daniel-Constantin Mierla wrote:
>>>> Hello,
>>>>
>>>> from the log messages, you got a core dump file. Locate it (should 
>>>> be in / if you haven't specified -w 'path' or solaris does not have 
>>>> a special directory for corefiles) and get the back trace:
>>>>
>>>> gdb /path/to/kamailio /path/to/corefile
>>>>
>>>> Then inside gdb execute 'bt full' and send the output here.
>>>>
>>>> Cheers,
>>>> Daniel
>>>>
>>>> On 4/14/12 2:56 AM, Akan Technology wrote:
>>>>> hello,
>>>>>
>>>>> I am running kamailio 3.2.2 on Solaris 10 64 bit and I am getting 
>>>>> a core dump on this statement:
>>>>>
>>>>>    $ru = "sip:" + $rU + "@" + $sel(cfg_get.registrar1.server_ip)
>>>>>                                 + 
>>>>> $sel(cfg_get.registrar1.server_port);
>>>>>
>>>>>
>>>>> Here is how the variable is defined:
>>>>>
>>>>> registrar1.server_ip = "xxx.xxx.xxx.xxx" desc "Registrar server IP 
>>>>> address"
>>>>> registrar1.server_port = "5080" desc "Registrar server Port"
>>>>>
>>>>>
>>>>> Here is the output from the logs with debug:
>>>>>
>>>>> 10(25373) ERROR: *** cfgtrace: 
>>>>> c=[/opt/kamailio-3.2/etc/kamailio/kamailio.cfg] l=1072 a=65 n=assign
>>>>> 10(25373) DEBUG: <core> [select.c:424]: Calling SELECT 1004b2bc0
>>>>> 10(25373) DEBUG: <core> [select.c:424]: Calling SELECT 1004b4da0
>>>>> 10(25373) ERROR: *** cfgtrace:14(25377) : <core> [pass_fd.c:293]: 
>>>>> ERROR: receive_fd: EOF on 22
>>>>> 14(25377) DEBUG: <core> [tcp_main.c:3555]: DBG: handle_ser_child: 
>>>>> dead child 10, pid 25373 (shutting down?)
>>>>> 14(25377) DEBUG: <core> [io_wait.h:617]: DBG: io_watch_del 
>>>>> (1003738b8, 22, 0, 0x0) fd_no=18 called
>>>>> 14(25377) DEBUG: <core> [tcp_main.c:3316]: DBG: handle_tcp_child: 
>>>>> dead tcp child 0 (pid 25373, no 10) (shutting down?)
>>>>> 14(25377) DEBUG: <core> [io_wait.h:617]: DBG: io_watch_del 
>>>>> (1003738b8, 24, 1, 0x0) fd_no=17 called
>>>>>  0(25363) ALERT: <core> [main.c:751]: child process 25373 exited 
>>>>> by a signal 11
>>>>>  0(25363) ALERT: <core> [main.c:754]: core was generated
>>>>>  0(25363) INFO: <core> [main.c:766]: INFO: terminating due to SIGCHLD
>>>>> 14(25377) INFO: <core> [main.c:817]: INFO: signal 15 received
>>>>>
>>>>>
>>>>> Here is the full route code:
>>>>>
>>>>> route[TO_REGISTRAR] {
>>>>>
>>>>>         # check if Registrar server's IP is defined
>>>>>
>>>>>         if (strempty($sel(cfg_get.registrar1.server_ip))) {
>>>>>
>>>>>                 xlog("SCRIPT: REGISTRAR - registrar1.server_ip not 
>>>>> defined\n");
>>>>>                 return;
>>>>>
>>>>>         }
>>>>>
>>>>>         $ru = "sip:" + $rU + "@" + 
>>>>> $sel(cfg_get.registrar1.server_ip) + ":"
>>>>>                                 + 
>>>>> $sel(cfg_get.registrar1.server_port);
>>>>>
>>>>>         route(RELAY);
>>>>>         exit;
>>>>>
>>>>> } # End of TO_Registrar Route
>>>>>
>>>>>
>>>>> I am trying to setup the proxy server to route all registers 
>>>>> requests to another kamailio server
>>>>>
>>>>>
>>>>> Thanks
>>>>>
>>>>> Nathaniel
>>>>>
>>>>> _______________________________________________
>>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing 
>>>>> list
>>>>> sr-users at lists.sip-router.org
>>>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>>
>>>
>>> _______________________________________________
>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>> sr-users at lists.sip-router.org
>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>
>> -- 
>> Daniel-Constantin Mierla
>> Kamailio Advanced Training, April 23-26, 2012, Berlin, Germany
>> http://www.asipto.com/index.php/kamailio-advanced-training/
>>
>> No virus found in this message.
>> Checked by AVG - www.avg.com <http://www.avg.com>
>> Version: 2012.0.1913 / Virus Database: 2411/4937 - Release Date: 
>> 04/14/12
>>
>
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

-- 
Daniel-Constantin Mierla
Kamailio Advanced Training, April 23-26, 2012, Berlin, Germany
http://www.asipto.com/index.php/kamailio-advanced-training/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20120416/1d4703d3/attachment-0001.htm>


More information about the sr-users mailing list