Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> SIGSEGV on AIX 4.x w/ Oracle 7.3.2

SIGSEGV on AIX 4.x w/ Oracle 7.3.2

From: Harald Fischer-Hohlweck <harald.fischer-hohlweck_at_ibix.de>
Date: Tue, 1 Jun 1999 00:59:26 -0000
Message-ID: <7iv4d3$2c2h$1@news.lf.net>


Hi.

We have problems on AIX 4.[12] with processes getting SIGSEGV. It seems as only processes connecting or connected to an oracle 7.3.2 DB are crashing. Obviously all works fine on AIX 3.2.5 or HP-UX 10.20 (same sources!). Not only our own C programs are concerned, but also a 4gl application (written in UnifAce) which is translated to a little C stub
module by the 4gl compiler and has to be linked with a bunch of oracle and UnifAce libs (and our own C libraries, to be honest).

All of these processes die in epcrid_add_regid(). I produced a crash in the EXEC SQL CONNECT right now. Astonishingly in most cases there is a crash, if - in dbx - I stop before the call to sqlcxt() which is
about to do the connect, and then 'return' to calling function (believe me: there is only a "if (sqlca.sqlcode < 0) goto ..." prior to a "return (0)").
I NEVER ended up in SIGSEGV if I step over sqlcxt() and up to the calling routine with dbx next statement.

ANY SUGGESTIONS WHAT IS HAPPENING??? For all those oracle or aix programmers out there let me give you some dbx output:



SIGSEGV in EXEC SQL CONNECT:
(dbx) c
[16] stopped in unnamed block $b26 at line 618 in file "src/iox0400.c"
  618                                    sqlcxt((void **)0, &sqlctx,
&sqlstm, &sqlfpn);
(dbx) l
  619                                    if (sqlca.sqlcode < 0) goto
sql_fehler;
  620 }
  621
  622 ;
  623
  624 return(0);
  625
  626 sql_fehler:;
  627 return(-1);
  628
(dbx) return

Segmentation fault in epcrid_add_regid at 0x10071bd0 0x10071bd0 (epcrid_add_regid+0x548) 93230008 stw r25,0x8(r3) (dbx) where
epcrid_add_regid(??, ??, ??, ??, ??, ??, ??, ??) at 0x10071bd0 epc_init(??, ??, ??, ??, ??, ??, ??, ??) at 0x1007b898

nldtotinit(??, ??, ??, ??, ??) at 0x1005c88c
nlstddt_do_alter_trace(??, ??, ??) at 0x100ff988
nlstdgg(??, ??, ??, ??, ??) at 0x100fe208
osnqig1(??, ??, ??) at 0x10161cd4
osncon(0x0, 0x0, 0x1803, 0x2002141c, 0x20002d10, 0x20002d08, 0x20002cec, 0x20002d30) at 0x10054f70
upiini(??, ??, ??, ??) at 0x1000c6bc
upiah0(??, ??, ??, ??) at 0x1000b180
sqllam(??, ??, ??, ??, ??, ??, ??, ??) at 0x1018aa10
sqllo3t(??, ??, ??, ??, ??, ??, ??, ??) at 0x10166c74
sqlcnt(??, ??, ??) at 0x101652d8
sqlexp(??, ??, ??, ??) at 0x10165c40

sqlcmex(??, ??, ??, ??, ??) at 0x10009658 sqlcxt(??, ??, ??, ??) at 0x10009bf8
unnamed block $b26, line 618 in "iox0400.c" /* the connect statement */
iox0400(), line 618 in "iox0400.c"                        /* our lib
function performing the connect */
main(argc = 1, argv = 0x2ff22a5c), line 8974 in "ipa935.c" (dbx) map
Entry 1:
   Object name: ipa935
   Text origin:     0x10000000
   Text length:     0x1de8a7
   Data origin:     0x20000900
   Data length:     0x16fb2

   File descriptor: 0x6

Entry 2:

   Object name: /usr/lib/libc.a
   Member name: shr.o
   Text origin:     0xd0000940
   Text length:     0x1033e9
   Data origin:     0xf0090800
   Data length:     0x48420

   File descriptor: 0x7
(dbx) registers
  $r0: 0x10063ea8 $stkp: 0x2ff1e580 $toc: 0x2000eee0 $r3: 0x44222460
  $r4: 0x2ff2022d $r5: 0x2ff1e498 $r6: 0x0000d030 $r7: 0x00000000
  $r8: 0x00000000 $r9: 0x60001d01 $r10: 0x00000000 $r11: 0x00000000
$r12: 0x10071bb8 $r13: 0xdeadbeef $r14: 0xdeadbeef $r15:
0x2ff1f7cc
$r16: 0x2ff2002b $r17: 0x2ff1f1b0 $r18: 0x2ff1fbd8 $r19:
0x00000001
$r20: 0x2ff1e644 $r21: 0xffffffff $r22: 0x00000073 $r23:
0x20005348
$r24: 0x2ff2022d $r25: 0x0001f8d8 $r26: 0x00000000 $r27:
0x00000000
$r28: 0x00000000 $r29: 0x0b74fcb3 $r30: 0x00000000 $r31:
0x00000003
$iar: 0x10071bd0 $msr: 0x0000d030 $cr: 0x22222424 $link:
0x10071bb8
$ctr: 0x00000000 $xer: 0x00000000
          Condition status = 0:e 1:e 2:e 3:e 4:e 5:g 6:e 7:g
        [unset $noflregs to view floating point registers]
in epcrid_add_regid at 0x10071bd0
0x10071bd0 (epcrid_add_regid+0x548) 93230008        stw   r25,0x8(r3)

**********************************

SIGSEGV in our 4gl application:
Segmentation fault in epcrid_add_regid at 0x10086238 0x10086238 (epcrid_add_regid+0x548) 93230008 stw r25,0x8(r3) [1] stopped in main at 0x10000240
0x10000240 (main) 7c0802a6 mflr r0 (dbx) registers
  $r0: 0xdeadbeef $stkp: 0x2ff222b0 $toc: 0x2002e59c $r3: 0x00000003
  $r4: 0x2ff222fc $r5: 0x2ff2230c $r6: 0xdeadbeef $r7: 0x2ff22ff8
  $r8: 0x00000000 $r9: 0x20030564 $r10: 0xdeadbeef $r11: 0xdeadbeef
$r12: 0xdeadbeef $r13: 0xdeadbeef $r14: 0xdeadbeef $r15:
0xdeadbeef
$r16: 0xdeadbeef $r17: 0xdeadbeef $r18: 0x200008a8 $r19:
0xdeadbeef
$r20: 0xdeadbeef $r21: 0xdeadbeef $r22: 0xdeadbeef $r23:
0xdeadbeef
$r24: 0xdeadbeef $r25: 0xdeadbeef $r26: 0xdeadbeef $r27:
0xdeadbeef
$r28: 0xdeadbeef $r29: 0xdeadbeef $r30: 0xdeadbeef $r31:
0xdeadbeef
$iar: 0x10000240 $msr: 0x0002d030 $cr: 0x84222842 $link:
0x100001f4
$ctr: 0xdeadbeef $xer: 0x2000000c
          Condition status = 0:l 1:g 2:e 3:e 4:e 5:l 6:g 7:e
        [unset $noflregs to view floating point registers]
in main at 0x10000240
0x10000240 (main)    7c0802a6       mflr   r0
(dbx) map
Entry 1:
   Object name: ibix
   Text origin:     0x10000000
   Text length:     0x4e5eb4
   Data origin:     0x200008a8
   Data length:     0x4a3ea

   File descriptor: 0x6

Entry 2:

   Object name: /usr/lib/libc.a
   Member name: shr.o
   Text origin:     0xd0000380
   Text length:     0xf6416
   Data origin:     0xf041af48
   Data length:     0x52df0

   File descriptor: 0x7
(dbx) file
lmsatrm.c
(dbx) where
main() at 0x10000240

Thank you
Harald
--
Harald Fischer-Hohlweck email: harald.fischer-hohlweck_at_ibix.de

IBIX Informationssysteme GmbH URL : http://www.ibix.de Vor dem Lauch 19 Phone: +49-711-7256-324 70567 Stuttgart (Germany) Fax : +49-711-7256-414 Received on Mon May 31 1999 - 19:59:26 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US