Pro *C problem - Consulting required

From: Pradeep Kumar. G <pradeep_at_ibsplc.com>
Date: 17 Jul 2002 05:04:30 -0700
Message-ID: <cb916095.0207170404.23a99489_at_posting.google.com>


Hi,

We are facing some server crashes, for which we need to find a perfect solution on top most priority. We are trying out different approaches, but none of them is through due to one reason or other. We are looking for external consultants who can help us in solving this issue.The expertise required is in

Pro C with experience in multithreading
CORBA (Visibroker)
IBM AIX Is it possible from your organisation who can give us some guidance and review our current approaches?
Waiting for your comments.

The problem which we are facing is described below:

We are working on a project that involves a three tier architecture. The client application is developed using Java. The server application is developed using C++ - Pro*C/C++ on an IBM AIX server. Visual Age 4.0 is used for the server application development. The database system used is Oracle 8i (8.1.6.0.0). Recently we upgraded to Oracle 8.1.7.0.0. ( Please note that the problem we discuss here was present when we used Oracle 8.1.6.0.0 as well). CORBA (Visibroker 4.0) is used for communication between the client and server applications. Hence the application is multithreaded. We are using sql contexts inorder to handle multiple connections simultaneously.

The problem we are facing is that at some points, the server application crashes displaying a segmentation violation and generating a core. On analysing the core using the dbx debugger provided with IBM AIX, the output got is similar to the one below.

internal error: assertion failed at line 3571 in file object.c internal error: assertion failed at line 3585 in file object.c

[using memory image in core]

Segmentation fault in ttcrd2r at 0xd0fc0698 ($t19) 0xd0fc0698 (ttcrd2r+0x38) 9421f030 stwu r1,-4048(r1) (dbx) where
ttcrd2r(0x502120a9, 0x217cac70, 0x0, 0xd0, 0x2, 0x0) at 0xd0fc0698

ttcrd2r(??, ??, ??, ??, ??, ??) at 0xd0fc0770
ttcdty(??, ??, ??) at 0xd0fbafec
ttcdrv(??, ??) at 0xd0fb64ac
nioqwa(??, ??, ??, ??, ??, ??) at 0xd10ac138
upirtrc(??, ??, ??, ??, ??, ??, ??, ??) at 0xd0fb3fcc
kpurcsc(??, ??, ??, ??, ??, ??, ??, ??) at 0xd1046298
kpuexecv8(??, ??, ??, ??, ??) at 0xd10224ac kpuexec(??, ??, ??, ??, ??, ??, ??, ??) at 0xd1023634
OCIStmtExecute(??, ??, ??, ??, ??, ??, ??, ??) at 0xd10c86cc
sqlcucExecute(??, ??, ??, ??, ??, ??, ??) at 0xd11424a8
sqlall(??, ??, ??, ??, ??, ??, ??, ??) at 0xd11420bc
sqlatm(??, ??, ??, ??, ??, ??, ??) at 0xd11443b0
sqlnst(??, ??, ??) at 0xd113d934

sqlcmex(??, ??, ??, ??, ??) at 0xd116a080 sqlcxt(??, ??, ??, ??) at 0xd11698ac
retrieveRuleDetails__15WorkRuleManagerFPCcPCcPCcPCcPCcQ2_19workruleentrymodule19 workRuleInfoSeq_out(0x217e0a08, 0x217e0a0c, 0x216b8538, 0x216e9558, 0x216e9568,
0x216e9578, 0x21802df8, 0x217e0a50) at 0x1004e708
unnamed block $b4449, line 399 in "WorkRuleEntry.cpp"
unnamed block $b4448, line 399 in "WorkRuleEntry.cpp"
unnamed block $b4447, line 399 in "WorkRuleEntry.cpp"
retrieveRuleDetails(const char*,const char*,const char*,const char*,const char*,
const char*,workruleentrymodule::workRuleInfoSeq_out)(0x216eaab8, 0x216e9538, 0x
216b8538, 0x216e9558, 0x216e9568, 0x216e9578, 0x21802df8, 0x217e0b1c), line 399
in "WorkRuleEntry.cpp"
_retrieveRuleDetails(void*,CORBA_MarshalInBuffer&,const
char*,VISReplyHandler&)(
0x216eaae4, 0x216b0588, 0x216b8518, 0x217e0c70), line 25 in "WorkRuleEntryInterf
ace_s.cpp"
execute__11VISSkelInfoFRC14VISGIOPRequestR21CORBA_MarshalInBufferR15VISReplyHand ler(0x216ebd98, 0x216b0808, 0x216b0588, 0x217e0c70) at 0xd164f604
_do_request__22VISGIOPProtocolAdapterFP14VISGIOPRequestP14VISGlobalTable(0x216e9
268, 0x216b0808, 0x216b49d8) at 0xd179f158
_dispatch_message__22VISGIOPProtocolAdapterFPQ2_14ProtocolEngine7MessageP14VISGl
obalTable(0x216e9268, 0x216b08e8, 0x216b49d8) at 0xd179d570 dispatchMessage__22VISGIOPProtocolAdapterFPQ2_14ProtocolEngine7MessageR14VISThre adLocal(0x216e9268, 0x216b08e8, 0x216b49d8) at 0xd17a2cd4 do_work__23VISThreadPoolDispatcherFPQ2_14ProtocolEngine15ProtocolAdapterRl(0x215 ca228, 0x216e9268, 0x216e93d0) at 0xd17d38e4 do_work__17VISDispatchWorkerFP14VISThreadLocal(0x216e93c8, 0x216b49d8) at 0xd17d
5f84
_perform_task__13VISThreadPoolFP14VISTPoolWorker(0x215ca234,
0x216b49a8) at 0xd1
7d6a44
begin__14VISTPoolWorkerFv(0x216b49a8) at 0xd17d7d78
_start__9VISThreadFPv(0x216b49a8) at 0xd14072cc
pthread._pthread_body(??) at 0xd1e92fb8

Many times this issue has been solved by just moving the function that crashes to a separate Pro*C/C++ file. But this keeps repeating again after some time

Regards,
Pradeep Received on Wed Jul 17 2002 - 14:04:30 CEST

Original text of this message