Posted: Mon Sep 29, 2003 8:53 am Post subject: MQDISC leaving CORE files
Voyager
Joined: 07 Jan 2002 Posts: 85
Passing this issue to the forum for one of my contract programming group... Background.. (we are running v5.2 MQ CSD05G). Daemon is written in C++. No FDC files generated. CORE comes from daemon, not MQ Series.
ISSUE:
The daemon that runs on the Solaris 2.6 gets a SIGSEGV during a MQDISC. The SIGCHLD being captured and handled the original process executes while the Child that calls the MQDISC is terminated leaving a CORE file.
Debugging:
We use the GDB debugger and the trace of the Stack is as below:
#0 0xfee42744 in t_delete () from /usr/lib/libc.so.1
(gdb) where
#0 0xfee42744 in t_delete () from /usr/lib/libc.so.1
#1 0xfee423c4 in realfree () from /usr/lib/libc.so.1
#2 0xfee42bd4 in _free_unlocked () from /usr/lib/libc.so.1
#3 0xfee42b24 in free () from /usr/lib/libc.so.1
#4 0xff05bf24 in xcsFreeMem () from /usr/lib/libmqmcs.so
#5 0xff1da090 in zstDeletePCD () from /usr/lib/libmqm.so
#6 0xff1d0674 in zstMQDISC () from /usr/lib/libmqm.so
#7 0xff1ccb88 in MQDISC () from /usr/lib/libmqm.so
#8 0x000525f8 in HMQMgr::disconnect() (this=0x164c68) at hmqmgr.cc:116
#9 0x00036048 in HSmartAgent::postProcess() (this=0x16b308)
at HSmartAgent.cc:300No symbol table info available.
The detailed Stack for the Frames 6 and higher are printed below to verify the Completion Code and the Reason Code
#6 0xff1d0674 in zstMQDISC () from /usr/lib/libmqm.so
No symbol table info available.
#7 0xff1ccb88 in MQDISC () from /usr/lib/libmqm.so
No symbol table info available.
#8 0x000525f8 in HMQMgr::disconnect() (this=0x164c68) at hmqmgr.cc:116
qp = (class HMQQue *) 0x0
np = (HMQQue *) 0x0
cc = 0
rc = 0
#9 0x00036048 in HSmartAgent::postProcess() (this=0x16b308)
at HSmartAgent.cc:300
g = (class HSA_Globals *) 0x15ce40
nextAgent = (HSmartAgent *) 0x0
Sporadic Nature:
The Cores are generated randomly. In trying to duplicate the Core, the same data when transmitted several times results in the Core, not just running it once or twice.
Comments:
The MQDISC is also passed a Valid parameters : These are in line with the function prototype in the MQ Version we run on the box. The following is the print from the
$>>>>>>>>>>>more /var/sadm/pkg/mqm-upd05/save/opt/mqm/inc/cmqc.h file that provides the prototypes.
----
void MQENTRY MQDISC (
PMQHCONN pHconn, /* Connection handle */
PMQLONG pCompCode, /* Completion code */
PMQLONG pReason); /* Reason code qualifying CompCode */ _________________ Bob Perry
MQ Administrator
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum