sqlplus crashes receiving INT signal (only for 11.2.0 release
database server)
José García Juanino
jjuanino at gmail.com
Thu Mar 29 19:19:09 UTC 2012
Hi,
I am running FreeBSD 9.0-RELEASE. My company has several Oracle
Database servers. At this
moment, we are using 11.2.0 on Sun Solaris.
After start sqlplus oracle client and doing a CONTROL+C, client
connection crashes:
$ uname
FreeBSD
$ sqlplus /nolog
SQL> connect user/password at database11_2_0
Connected.
SQL> [Hit CONTROL+C to send INT signal to sqlplus]
(At this point, sockstat -c4 -p 1521 shows a socket between my host
and the oracle server)
SQL> select 1 from dual;
select 1 from dual
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
ERROR:
ORA-03114: not connected to ORACLE
(At this point, the previous socket has gone out)
The ktrace - linux_kdump shows:
"SQL> "
29849 sqlplus RET write 5
29849 sqlplus CALL linux_fstat64(0,0xbfbf8d3c,0x34ee4ff4)
29849 sqlplus UNKNOWN(8) 29849 sqlplus RET linux_fstat64 0
29849 sqlplus CALL linux_mmap2(0,0x1000,0x3,0x22,0xffffffff,0)
29849 sqlplus RET linux_mmap2 886091776/0x34d0b000
29849 sqlplus CALL read(0,0x34d0b000,0x1000)
29849 sqlplus RET read RESTART
29849 sqlplus PSIG SIGINT caught handler=0x347fec2c mask=0x0 code=0x0
29849 sqlplus CALL linux_rt_sigprocmask(0,0xbfbf8bec,0,0x8)
29849 sqlplus RET linux_rt_sigprocmask 0
29849 sqlplus CALL linux_rt_sigprocmask(0x1,0xbfbf8bec,0,0x8)
29849 sqlplus RET linux_rt_sigprocmask 0
29849 sqlplus CALL linux_rt_sigreturn(0xbfbf8d50)
29849 sqlplus RET linux_rt_sigreturn JUSTRETURN
29849 sqlplus CALL read(0,0x34d0b000,0x1000)
29849 sqlplus GIO fd 0 read 1 byte
"
"
29849 sqlplus RET read 1
29849 sqlplus CALL write(0x1,0x34d0a000,0x1)
29849 sqlplus GIO fd 1 wrote 1 byte
"
"
29849 sqlplus RET write 1
29849 sqlplus CALL write(0x1,0x34d0a000,0x5)
29849 sqlplus GIO fd 1 wrote 5 bytes
"SQL> "
29849 sqlplus RET write 5
29849 sqlplus CALL read(0,0x34d0b000,0x1000)
29849 sqlplus GIO fd 0 read 26 bytes
"select 1 from dual;
"
29849 sqlplus RET read 26/0x1a
29849 sqlplus CALL gettimeofday(0xbfbfae44,0)
29849 sqlplus RET gettimeofday 0
29849 sqlplus CALL linux_socketcall(0x9,0xbfbf5b00)
29849 sqlplus GIO fd 4 wrote 1 byte
"!"
29849 sqlplus RET linux_socketcall 1
29849 sqlplus CALL write(0x4,0xbfbf5d00,0xb)
29849 sqlplus GIO fd 4 wrote 11 bytes
"\0\v\0\0\f\0\0\0\^A\0\^B"
29849 sqlplus RET write 11/0xb
29849 sqlplus CALL read(0x4,0x80caf7e,0x810)
29849 sqlplus GIO fd 4 read 10 bytes
"\0
\0\0\^F\0\0\0\0@"
29849 sqlplus RET read 10/0xa
29849 sqlplus CALL linux_socketcall(0xe,0xbfbf64b4)
29849 sqlplus RET linux_socketcall 0
29849 sqlplus CALL linux_socketcall(0xe,0xbfbf64b4)
29849 sqlplus RET linux_socketcall 0
29849 sqlplus CALL close(0x4)
29849 sqlplus RET close 0
29849 sqlplus CALL close(0x3)
29849 sqlplus RET close 0
29849 sqlplus CALL linux_fcntl64(0x80bdcb0,0x2,0x1)
29849 sqlplus RET linux_fcntl64 -1 errno 9 Bad file descriptor
29849 sqlplus CALL write(0x1,0x34d0a000,0x19)
29849 sqlplus GIO fd 1 wrote 25 bytes
"select 1 from dual
"
29849 sqlplus RET write 25/0x19
29849 sqlplus CALL write(0x1,0x34d0a000,0x2)
29849 sqlplus GIO fd 1 wrote 2 bytes
"*
"
29849 sqlplus RET write 2
29849 sqlplus CALL write(0x1,0x34d0a000,0x11)
29849 sqlplus GIO fd 1 wrote 17 bytes
"ERROR at line 1:
"
29849 sqlplus RET write 17/0x11
29849 sqlplus CALL write(0x1,0x34d0a000,0x30)
29849 sqlplus CALL write(0x1,0x34d0a000,0x30)
29849 sqlplus GIO fd 1 wrote 48 bytes
"ORA-03113: end-of-file on communication channel
The same issue happens with oracle linux instantclient 10.2.0.5 and
11.2.0.3, but it does *not*
arise when oracle database server version is 10.2.0. Here you can see
a similar ktrace-linux_kdump,
but with a Oracle Database Server version = 10.2.0:
"SQL> "
30272 sqlplus RET write 5
30272 sqlplus CALL linux_fstat64(0,0xbfbf8d3c,0x34ee4ff4)
30272 sqlplus UNKNOWN(8) 30272 sqlplus RET linux_fstat64 0
30272 sqlplus CALL linux_mmap2(0,0x1000,0x3,0x22,0xffffffff,0)
30272 sqlplus RET linux_mmap2 886091776/0x34d0b000
30272 sqlplus CALL read(0,0x34d0b000,0x1000)
30272 sqlplus RET read RESTART
30272 sqlplus PSIG SIGINT caught handler=0x347fec2c mask=0x0 code=0x0
30272 sqlplus CALL linux_rt_sigprocmask(0,0xbfbf8bec,0,0x8)
30272 sqlplus RET linux_rt_sigprocmask 0
30272 sqlplus CALL linux_rt_sigprocmask(0x1,0xbfbf8bec,0,0x8)
30272 sqlplus RET linux_rt_sigprocmask 0
30272 sqlplus CALL linux_rt_sigreturn(0xbfbf8d50)
30272 sqlplus RET linux_rt_sigreturn JUSTRETURN
30272 sqlplus CALL read(0,0x34d0b000,0x1000)
30272 sqlplus GIO fd 0 read 1 byte
"
"
30272 sqlplus RET read 1
30272 sqlplus CALL write(0x1,0x34d0a000,0x1)
30272 sqlplus GIO fd 1 wrote 1 byte
"
"
30272 sqlplus RET write 1
30272 sqlplus CALL write(0x1,0x34d0a000,0x5)
30272 sqlplus GIO fd 1 wrote 5 bytes
"SQL> "
30272 sqlplus RET write 5
30272 sqlplus CALL read(0,0x34d0b000,0x1000)
30272 sqlplus GIO fd 0 read 20 bytes
"select 1 from dual;
"
30272 sqlplus RET read 20/0x14
30272 sqlplus CALL gettimeofday(0xbfbfae44,0)
30272 sqlplus RET gettimeofday 0
30272 sqlplus CALL linux_socketcall(0x9,0xbfbf5b00)
30272 sqlplus GIO fd 4 wrote 1 byte
"!"
30289 sqlplus RET linux_socketcall 1
30289 sqlplus CALL write(0x4,0xbfbf5d00,0xb)
30289 sqlplus GIO fd 4 wrote 11 bytes
"\0\v\0\0\f\0\0\0\^A\0\^B"
30289 sqlplus RET write 11/0xb
30289 sqlplus CALL read(0x4,0x80ca796,0x810)
30289 sqlplus GIO fd 4 read 11 bytes
"\0\v\0\0\f\0\0\0\^A\0\^B"
30289 sqlplus RET read 11/0xb
30289 sqlplus CALL read(0x4,0x80c83e6,0x810)
30289 sqlplus GIO fd 4 read 101 bytes
"\0e\0\0\^F\0\0\0\0\0\^D\^A\^A\^A\^X\^A\^A\^B\^Cõ\0\0\^A\^C\0/\0\0\0\0\
\0\0\0\0\0\0\0\0\^Z\0\^A\^A\0\0\0\0006ORA-01013: user requested cancel\
of current operation
"
30289 sqlplus RET read 101/0x65
30289 sqlplus CALL write(0x4,0x80c8c06,0x55)
30289 sqlplus GIO fd 4 wrote 85 bytes
"\0U\0\0\^F\0\0\0\0\0\^Qi\^[\^A\^A\^B\^A\^A\^A\^C\^C^\^\\^B\M^@a\0\^A\
\^A\^R\^A\^A\r\0\^A\0\^A\^A\0\0\0\0\0\0\0\^A\^A\0\0\0\^A\^Rselect 1 fr\
om dual\^A\^A\0\0\0\0\0\0\^A\^A\0\0\0\0\0"
30289 sqlplus RET write 85/0x55
30289 sqlplus CALL read(0x4,0x80ca796,0x810)
30289 sqlplus GIO fd 4 read 147 bytes
"\0\M^S\0\0\^F\0\0\0\0\0\^P\^W}MÉ´#ð¼ûQ\^Bríªà\M^VÈxp\^C\^]\^V\^B\^C\^A\
\^B\^A\^AM\^B\0\0\0\^A\^B\0\0\0\0\0\0\0\^A\^A\^A\^A\^A1\0\0\0\^A\a\axp\
\^C\^]\^V\^R\^B\^A\^A\^B\^_è\^A\^B\^A\^B\^F\^B\^A\^A\0\^A\^A\0\0\0\a\
\^BÁ\^B\b\^A\^F\^DÙE\^V"\^A\^B\^A\^A\0\0\0\0\0\0\^D\^A\^A\^A\^Z\^A\^A\
\0\0\0\^A\^A\0\^C\0\0\0\0\0\0\0\0\0\0\0\0\^\\0\^A\^A\0\0\0\0"
30289 sqlplus RET read 147/0x93
30289 sqlplus CALL write(0x4,0x80c8c06,0x11)
30289 sqlplus GIO fd 4 wrote 17 bytes
"\0\^Q\0\0\^F\0\0\0\0\0\^C\^E\^]\^A\^A\^A\^O"
30289 sqlplus RET write 17/0x11
30289 sqlplus CALL read(0x4,0x80c83e6,0x810)
30289 sqlplus GIO fd 4 read 72 bytes
"\0H\0\0\^F\0\0\0\0\0\^D\^A\^A\^A\^[\^A\^A\^B\^E{\0\0\^A\^A\0\^C\0\0\0\
\0\0\0\0\0\0\0\0\0\^]\0\^A\^A\0\0\0\0\^YORA-01403: no data found
"
30289 sqlplus RET read 72/0x48
30289 sqlplus CALL write(0x1,0x34d0a000,0x1)
30289 sqlplus GIO fd 1 wrote 1 byte
"
"
30289 sqlplus RET write 1
30289 sqlplus CALL write(0x1,0x34d0a000,0x4)
30289 sqlplus GIO fd 1 wrote 4 bytes
" 1
"
30289 sqlplus RET write 4
30289 sqlplus CALL write(0x1,0x34d0a000,0xb)
30289 sqlplus GIO fd 1 wrote 11 bytes
Any advice will be appreciated, and sorry for my poor english.
Please keep me in Cc: as I am not subscribed to the list.
Best regards
More information about the freebsd-emulation
mailing list