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@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@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/