[SR-Users] Core Dump during shutdown on SPARC64

Spencer Thomason spencer at whiteskycommunications.com
Sun Jan 31 17:03:01 CET 2016


Hi Daniel,
I was able to prevent the bus error by reverting part of commit 1b366aa1c6c37e2320da10fb68f0370199333f5d as below:

diff --git a/cfg/cfg_struct.c b/cfg/cfg_struct.c
index 8bfe429..519c6a9 100644
--- a/cfg/cfg_struct.c
+++ b/cfg/cfg_struct.c
@@ -295,8 +295,7 @@ static void cfg_destory_groups(unsigned char *block)
                                if (((CFG_VAR_TYPE(&mapping[i]) == CFG_VAR_STRING) ||
                                (CFG_VAR_TYPE(&mapping[i]) == CFG_VAR_STR)) &&
                                        mapping[i].flag & cfg_var_shmized) {
-
-                                               old_string = *(char **)(block + group->var_offset + mapping[i].offset);
+                                               memcpy(&old_string, block + group->var_offset + mapping[i].offset, sizeof(char *));
                                                if (old_string) shm_free(old_string);
                                }

I can’t really see why there would be a bus error… thoughts?

Thanks,
Spencer




On Jan 14, 2016, at 6:52 PM, Spencer Thomason <spencer at whiteskycommunications.com<mailto:spencer at whiteskycommunications.com>> wrote:

Hi Daniel,
I haven’t yet but I will try to test shortly.

Here is the value of the block variable:
(gdb) p /s block
$1 = (unsigned char *) 0xffffffff76e5ded4 “"

Thanks,
Spencer


On Jan 13, 2016, at 11:07 PM, Daniel-Constantin Mierla <miconda at gmail.com<mailto:miconda at gmail.com>> wrote:

Hello,

hmm, they are multiple of 8, so they should be aligned to 64bits.

Or maybe the 'block' variable value is not aligned to 8bytes ...

Have you done any sip traffic via this kamailio instance. Is all ok at
runtime?

Cheers,
Daniel

On 14/01/16 08:01, Spencer Thomason wrote:
Hi Daniel,
See below:
(gdb) p group->var_offset
$1 = 64
(gdb) p mapping[i].offset
$2 = 56

Thanks!
Spencer


On Jan 13, 2016, at 10:18 PM, Daniel-Constantin Mierla <miconda at gmail.com<mailto:miconda at gmail.com>> wrote:

Hello,

can you get the values for  group->var_offset and mapping[i].offset in
frame 0?

Cheers,
Daniel

On 14/01/16 05:41, Spencer Thomason wrote:
Hello,
I’m trying to get Kamailio running on Solaris 11 SPARC64 and I’m receiving a bus error on shutdown.  If needed, we can make SPARC hardware available for testing.

Thanks,
Spencer


Core was generated by `/opt/kamailio/sbin/kamailio -f /opt/kamailio/etc/kamailio/kamailio.cfg -P /syst'.
Program terminated with signal 10, Bus error.
#0  0x00000001003e73f0 in cfg_destory_groups (block=0xffffffff76e5ded4 "") at cfg/cfg_struct.c:299
299 old_string = *(char **)(block + group->var_offset + mapping[i].offset);
(gdb) bt full
#0  0x00000001003e73f0 in cfg_destory_groups (block=0xffffffff76e5ded4 "") at cfg/cfg_struct.c:299
      group = 0x100745e20
      def = <optimized out>
      i = 14
      group2 = <optimized out>
      mapping = 0x100745a78
      old_string = <optimized out>
#1  cfg_destroy () at cfg/cfg_struct.c:391
      __FUNCTION__ = "cfg_destroy"
#2  0x0000000100163fc4 in cleanup (show_status=show_status at entry=1) at main.c:540
      memlog = <optimized out>
      __FUNCTION__ = "cleanup"
#3  0x00000001001650d4 in shutdown_children (show_status=show_status at entry=1, sig=15) at main.c:665
No locals.
#4  0x0000000100165c0c in handle_sigs () at main.c:695
      chld = <optimized out>
      chld_status = 0
      memlog = <optimized out>
      __FUNCTION__ = "handle_sigs"
#5  0x000000010016e678 in main_loop () at main.c:1722
      i = <optimized out>
      pid = <optimized out>
      si = <optimized out>
      si_desc = "udp receiver child=15 sock=104.222.31.55:9000\000\005\066\377\377\377\377v\345\322\370\000\000\000\000\000\020\000\063\377\377\377\377\177\377\360q\000\000\000\001\000B\277 \000\000\000\001\000^:P\000\000\000\001\000\002\356(\377\377\377\377\377\377\377\375\377\377\377\377\377\377\377\375\377\377\377\377\377\377\377\375\377\377\377\377\377\377\377\375"
      nrprocs = <optimized out>
      woneinit = <optimized out>
      __FUNCTION__ = "main_loop"
#6  0x000000010042cafc in main (argc=<optimized out>, argv=<optimized out>) at main.c:2597
      cfg_stream = <optimized out>
      c = <optimized out>
      r = <optimized out>
      tmp = 0xffffffff7ffffd57 ""
      tmp_len = 0
      port = 0
      proto = 0
      options = 0x100036918 ":f:cm:M:dVIhEeb:l:L:n:vKrRDTN:W:w:t:u:g:P:G:SQ:O:a:A:x:X:"
      ret = -1
      seed = 4139658536
      rfd = <optimized out>
      debug_save = <optimized out>
      debug_flag = <optimized out>
      dont_fork_cnt = <optimized out>
      p = <optimized out>
      st = {st_dev = 2478196129807, st_ino = 405001306, st_mode = 16832, st_nlink = 2, st_uid = 0, st_gid = 0,
        st_rdev = 18446744073709551615, st_size = 117, st_atim = {tv_sec = 1452739293, tv_nsec = 444332080}, st_mtim = {
          tv_sec = 1452739411, tv_nsec = 727071262}, st_ctim = {tv_sec = 1452739411, tv_nsec = 727071262}, st_blksize = 8192,
        st_blocks = 16, st_fstype = "tmpfs\000\000\000\000\000\000\000\000\000\000"}
      __FUNCTION__ = “main"

# this file is autogenerated by make cfg
MAIN_NAME= kamailio
CFG_NAME= kamailio
SCR_NAME= sip-router
FLAVOUR= kamailio
INSTALL_FLAVOUR= kamailio
SRC_NAME= sip-router
RELEASE= 4.4.0-dev8
OS= solaris
ARCH= sparc64
C_DEFS=   -DNAME='"kamailio"' -DVERSION='"4.4.0-dev8"' -DARCH='"sparc64"' -DOS='solaris_' -DOS_QUOTED='"solaris"' -DCOMPILER='"gcc 4.8.2"' -D__CPU_sparc64 -D__OS_solaris -DSER_VER=4004000 -DCFG_DIR='"/opt/kamailio/etc/kamailio/"' -DRUN_DIR='"/var/run/kamailio/"' -DPKG_MALLOC -DSHM_MEM  -DSHM_MMAP -DDNS_IP_HACK -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE -DHAVE_RESOLV_RES -DUSE_DNS_CACHE -DUSE_DNS_FAILOVER -DUSE_DST_BLACKLIST -DUSE_NAPTR -DWITH_XAVP  -DF_MALLOC -DQ_MALLOC -DTLSF_MALLOC -DDBG_SR_MEMORY -DUSE_TLS -DTLS_HOOKS -DUSE_CORE_STATS -DSTATISTICS -DMALLOC_STATS -DWITH_AS_SUPPORT -DUSE_SCTP -DFAST_LOCK -DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024  -DCC_GCC_LIKE_ASM -DSPARC64_MODE -DHAVE_GETIPNODEBYNAME -DHAVE_SYS_SOCKIO_H -DHAVE_SCHED_YIELD -DHAVE_ALLOCA_H -DUSE_SIGACTION -DHAVE_DEVPOLL -DHAVE_SELECT -DHAVE_FILIO_H
DEFS_RM=
PROFILE=
CC= gcc
LD= gcc
MKDEP= gcc -MM -MG
MKTAGS= ctags
LDFLAGS=  -m64 -O2
C_INCLUDES=
CC_MKDEP_OPTS= -MMD -MP
MOD_LDFLAGS= -G  -m64 -O2
LIB_LDFLAGS= -G  -m64 -O2
UTILS_LDFLAGS=  -m64 -O2
LIB_SONAME= -Wl,-h,
LD_RPATH= -Wl,-R,
LIB_SUFFIX= .so
LIB_PREFIX= lib
LIBS= -ldl -lresolv -L/usr/local/lib -lxnet -lsocket -lnsl  -lrt
LEX= flex
YACC= bison
YACC_FLAGS= -d -b cfg
PREFIX= /opt/kamailio
LOCALBASE= /usr/local
TAR= gtar
INSTALL= ginstall
INSTALL_CFG= ginstall -m 644
INSTALL_BIN= ginstall -m 755
INSTALL_MODULES= ginstall -m 755
INSTALL_DOC= ginstall -m 644
INSTALL_MAN= ginstall -m 644
INSTALL_LIB= ginstall -m 755
INSTALL_TOUCH= touch
INSTALL_SHARE= ginstall -m 644
Q= 1
CC_EXTRA_OPTS= -O2 -m64
CPU= ultrasparc
CFLAGS_RM=
CFLAGS= -g -funroll-loops -mtune=native -mcpu=native -fno-strict-overflow -ftree-vectorize -Wall -mno-faster-structs
MOD_CFLAGS= -fPIC -DPIC $(CFLAGS)
LIB_CFLAGS= -fPIC -DPIC $(CFLAGS)
UTILS_CFLAGS= $(CFLAGS)
BASEDIR= $(DESTDIR)
basedir= $(BASEDIR)
DESTDIR=
LIBDIR= lib64
RUNBASEDIR= $(DESTDIR)
runbasedir= $(RUNBASEDIR)
PREFIX= /opt/kamailio
prefix= $(PREFIX)
cfg_prefix= $(basedir)$(prefix)
cfg_dir= etc/$(MAIN_NAME)/
bin_prefix= $(basedir)$(prefix)
bin_dir= sbin/
modules_prefix= $(basedir)$(prefix)
modules_dir= $(LIBDIR)/$(MAIN_NAME)/
doc_prefix= $(basedir)$(prefix)
doc_dir= doc/$(MAIN_NAME)/
man_prefix= $(basedir)$(prefix)
man_dir= man/
ut_prefix= $(basedir)$(prefix)
ut_dir=
share_prefix= $(basedir)$(prefix)
share_dir= share/$(MAIN_NAME)/
lib_prefix= $(basedir)$(prefix)
lib_dir= $(LIBDIR)/$(MAIN_NAME)/
data_prefix= $(basedir)$(prefix)
data_dir= $(MAIN_NAME)/
cfg_target= $(prefix)/$(cfg_dir)
lib_target= $(prefix)/$(lib_dir)
data_target= $(prefix)/$(data_dir)
run_prefix= $(runbasedir)
run_dir= var/run/$(MAIN_NAME)/
run_target= $(run_prefix)/$(run_dir)
override makefile_defs:=1
C_DEFS:=$(filter-out $(DEFS_RM) $(extra_defs),$(C_DEFS)) $(extra_defs)
CFLAGS:=$(filter-out $(CFLAGS_RM) $(CC_EXTRA_OPTS), $(CFLAGS)) $(CC_EXTRA_OPTS)

_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users at lists.sip-router.org<mailto:sr-users at lists.sip-router.org>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Book: SIP Routing With Kamailio - http://www.asipto.com<http://www.asipto.com/>
http://miconda.eu<http://miconda.eu/>


_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users at lists.sip-router.org<mailto:sr-users at lists.sip-router.org>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Book: SIP Routing With Kamailio - http://www.asipto.com<http://www.asipto.com/>
http://miconda.eu<http://miconda.eu/>

_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users at lists.sip-router.org<mailto:sr-users at lists.sip-router.org>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20160131/bd5ef038/attachment.html>


More information about the sr-users mailing list