[omniORB] Process compiled with omniORB3_0_4 dumps on Solaris
Venkateswara Rao Kanaparthi
kvrao@winphoria.com
Tue Sep 3 08:17:01 2002
Hello,
I am trying to use omniORB 3_0_4 on Solaris 5.7, but facing a strange
problem when I run my process.
It ends up dumping radomly. However the top portion of the stack remain
same.
Could someone help me in figuring out if something is missing in my
configuration or in the manner I built omniORB 3_0_4 libs for solaris?
Following are the core stacks:
Stack-1
#0 0xfe1428e4 in t_splay () from /usr/lib/libc.so.1
(gdb) where
#0 0xfe1428e4 in t_splay () from /usr/lib/libc.so.1
#1 0xfe1425c8 in t_delete () from /usr/lib/libc.so.1
#2 0xfe1421cc in realfree () from /usr/lib/libc.so.1
#3 0xfe142aa0 in cleanfree () from /usr/lib/libc.so.1
#4 0xfe141bd4 in _malloc_unlocked () from /usr/lib/libc.so.1
#5 0xfe141ac8 in malloc () from /usr/lib/libc.so.1
#6 0xff03a838 in __builtin_new (sz=8) at ./cp/new1.cc:84
#7 0xbf390 in wms_IpAccessService_i::selectService (this=0x108ed10,
serviceID=0x104a958 "0/P_CALL_CONTROL/P_MULTI_PARTY",
serviceProperties=@0xfd5017d8, serviceToken={_data = @0xfd5017f0})
at wms_IpAccess.cc:423
#8 0x92190 in
org::parlay::fw::fw_client::trust_and_security::_impl_IpAccess::_dispatch
(this=0x108ed50, giop_s=@0xfd501a58)
at ../common/Parlay_fw_clientSK.cc:6886
#9 0xff102274 in omniOrbPOA::dispatch (this=0x103a700,
giop_s=@0xfd501a58, id=0x108efa0) at ../poa.cc:1331
#10 0xff0f3fbc in omniLocalIdentity::dispatch (this=0x108efa0,
giop_s=@0xfd501a58) at ../localIdentity.cc:142
#11 0xff1378d0 in GIOP_S::HandleRequest (this=0xfd501a58,
byteorder=true) at ../giopServer.cc:601
#12 0xff136dbc in GIOP_S::dispatcher (s=0x108ce28) at ../giopServer.cc:403
#13 0xff16191c in tcpSocketWorker::_realRun (arg=0x108ce28) at
../tcpSocketMTfactory.cc:1622
#14 0x17fa60 in wmsAuthThreadWrapper::run (this=0x20b230, fn=0xff16187c
<tcpSocketWorker::_realRun(void *)>, arg=0x108ce28) at parlay_fws.cc:48
#15 0xff161874 in tcpSocketWorker::run (this=0x108c4a8, arg=0x108ce28)
at ../tcpSocketMTfactory.cc:1594
#16 0xff0369a8 in omni_thread_wrapper (ptr=0x108c4a8) at ../posix.cc:421
Stack-2
Loaded symbols for /usr/platform/SUNW,Ultra-60/lib/libc_psr.so.1
Reading symbols from /usr/lib/libthread.so.1...done.
Loaded symbols for /usr/lib/libthread.so.1
#0 0xfdf4b82c in __sighndlr () from /usr/lib/libthread.so.1
(gdb) where
#0 0xfdf4b82c in __sighndlr () from /usr/lib/libthread.so.1
#1 <signal handler called>
#2 0xfe1425d8 in t_delete () from /usr/lib/libc.so.1
#3 0xfe1421cc in realfree () from /usr/lib/libc.so.1
#4 0xfe142aa0 in cleanfree () from /usr/lib/libc.so.1
#5 0xfe141bd4 in _malloc_unlocked () from /usr/lib/libc.so.1
#6 0xfe141ac8 in malloc () from /usr/lib/libc.so.1
#7 0xfed488e8 in cvx_bufpool_alloc (pool_desc=0xfed79cac) at
cvx_bufpool.c:212
#8 0xfed469fc in cvx_dlist_alloc_node () at cvx_dlist.c:117
#9 0xfed46b80 in cvx_dlist_add_tail (dlist=0xfd603ac0, data=0x108ca60)
at cvx_dlist.c:176
#10 0xfed49d8c in cvx_timer_mgr_fire () at cvx_timer.c:751
#11 0xfed4f2c0 in cvx_nm_doPoll (netMgr=0x1f5d00) at cvx_nm.c:2254
#12 0xca060 in wms_parlay_server::listen_for_switch_events (arg=0x0) at
../common_across_services/wms_parlay_server.cc:258
#13 0x17ca70 in parlay_thread::run (this=0x104fb00, arg=0x0) at
../common_across_services/wms_parlay_server.hh:192
#14 0xff0369a8 in omni_thread_wrapper (ptr=0x104fb00) at ../posix.cc:421
I did the following to complite omniORB libs and my process:
Machine :
SunOS purifysrv 5.8 Generic_108528-14 sun4u sparc SUNW,Ultra-60
OMNIORB3.0.4:
1) config.mk
uncommented - platform = sun4_sosV_5.7
2) mk/platforms/sun4_sosV_5.7.mk
#
# To use gcc, uncomment the following lines:
#
CPP = gcc
CXX = g++
CXXMAKEDEPEND += -D__cplusplus -D__GNUG__ -D__GNUC__
CXXDEBUGFLAGS = -g
CXXOPTIONS = -fhandle-exceptions -Wall -Wno-unused
CXXMTFLAG =
CXXLINK = $(CXX)
CXXLINKOPTIONS = $(CXXDEBUGFLAGS) $(CXXOPTIONS)
# CXXLINKOPTIONS += $(patsubst %,-R %,$(IMPORT_LIBRARY_DIRS))
# Note: the -R linker option in CXXLINKOPTIONS instruct the Sun linker to
# record the pathname of the shared libraries in the executable.
CC = gcc
CMAKEDEPEND += -D__GNUC__
CDEBUGFLAGS = -O -g
COPTIONS = -fpcc-struct-return
CLINK = $(CC)
#######################################################################
And finally:
My process used the following settings to link with omniORB related things:
OMNI_DIR=$(CVX_CROOT)/thirdparty/OMNI
OMNI_IDL=$(OMNI_DIR)/bin/solaris/omniidl
OMNI_CFLAGS=-D__OMNIORB3__ $(OMNITHREAD_CPPFLAGS) -D_REENTRANT -I.
-I$(OMNI_DIR)/include/ -D__sparc__ -D__sunos__ -D__OSVERSION__=5
OMNI_LIBS=-L$(OMNI_DIR)/lib/solaris -Bdynamic -lomniORB3 -ltcpwrapGK
-lomnithread -lpthread
Thanks,
KV Rao.