Home » Developer & Programmer » Precompilers, OCI & OCCI » Crash at OCIStmtExecute (C+ Program)
Crash at OCIStmtExecute (C+ Program) [message #94536] Thu, 13 January 2005 22:43
windy
Messages: 3
Registered: August 2002
Junior Member
Environment:
DB Server: Oracle 9.2.0
DB Client: Oracle 8.1.7 on Red Hat Linux 8.0 - 2.4.18-14
Compiler: g++
Mode: Multi-Threading (pthread)

Some info about the program:
There are more than 2 threads for db access,
every db thread has its own DB Environment (mode OCI_OBJECT).
And every db thread process 3~6 sql procedure request per second.

The program will crash after thousands of requests or more,
it is strange that everytime it crashes exactly at the same point.

The core dump file stack:
(gdb) bt
#0 0x083d2b94 in ttcacs ()
#1 0x083d6cce in ttcdrv ()
#2 0x4041c1b5 in nioqwa () from /home/oracle/OraHome//lib/libclntsh.so.8.0
#3 0x0838e552 in upirtrc ()
#4 0x08370159 in kpurcsc ()
#5 0x08346bfb in kpuexecv8 ()
#6 0x08349148 in kpuexec ()
#7 0x0832c3d1 in OCIStmtExecute ()
#8 0x0829932e in CDatabase_::ExecutePreparedSQLStmt() ()
(gdb) info registers
eax 0x4dfff000 1308618752
ecx 0x4dfff000 1308618752
edx 0x86e0001 141426689
ebx 0x86a150c 141169932
esp 0x40f263ac 0x40f263ac
ebp 0x40f265b4 0x40f265b4
esi 0x89fc61c 144688668
edi 0x870c9c4 141609412
eip 0x83d2b94 0x83d2b94
eflags 0x10202 66050
cs 0x23 35
ss 0x2b 43
ds 0x2b 43
es 0x2b 43
fs 0x2b 43
gs 0x2b 43
(gdb) disass $pc-32 $pc+32
Dump of assembler code from 0x83d2b74 to 0x83d2bb4:
0x83d2b74 <ttcacs+1120>: lret $0x758b
0x83d2b77 <ttcacs+1123>: or $0x8b,%al
0x83d2b79 <ttcacs+1125>: jbe 0x83d2b8b <ttcacs+1143>
0x83d2b7b <ttcacs+1127>: add %esi,%ecx
0x83d2b7d <ttcacs+1129>: mov %ecx,0xfffffe40(%ebp)
0x83d2b83 <ttcacs+1135>: mov 0xfffffe34(%ebp),%edx
0x83d2b89 <ttcacs+1141>: test $0x1,%dl
0x83d2b8c <ttcacs+1144>: je 0x83d2ba0 <ttcacs+1164>
0x83d2b8e <ttcacs+1146>: mov 0xfffffe44(%ebp),%ecx
0x83d2b94 <ttcacs+1152>: cmpw $0x0,(%ecx)
0x83d2b98 <ttcacs+1156>: jge 0x83d2ba0 <ttcacs+1164>
0x83d2b9a <ttcacs+1158>: movb $0x1,0x31(%edi)
0x83d2b9e <ttcacs+1162>: jmp 0x83d2ba4 <ttcacs+1168>
0x83d2ba0 <ttcacs+1164>: movb $0x0,0x31(%edi)
0x83d2ba4 <ttcacs+1168>: mov 0xc(%ebp),%esi
0x83d2ba7 <ttcacs+1171>: testb $0x2,(%esi)
0x83d2baa <ttcacs+1174>: je 0x83d2c11 <ttcacs+1277>
0x83d2bac <ttcacs+1176>: mov 0xfffffe40(%ebp),%edx
0x83d2bb2 <ttcacs+1182>: movzwl (%edx),%ecx
End of assembler dump.
(gdb) x/16 0x4dfff000
0x4dfff000: Cannot access memory at address 0x4dfff000

Could somebody give suggestions to me ?
Thanks a lot !
Previous Topic: occi and gcc3.3
Next Topic: exceptions were raised when calling procedure in c#.net through ODP for .net
Goto Forum:
  


Current Time: Fri Apr 19 09:59:14 CDT 2024