Front page | perl.dbi.users |
Postings from November 2008
Re: Strange Oracle error - need help - SOLVED
Thread Previous
From:
Steve Baldwin
Date:
November 10, 2008 11:49
Subject:
Re: Strange Oracle error - need help - SOLVED
OK, this was something stupid I was doing, but maybe it is a bug of
sorts. It turned out I was mistakenly setting {RowCacheSize} to an
array ref. Perhaps DBI should check for such stupidity.
Here is a simpler trace showing the problem ...
[stbaldwin@audev01 dev][2]$ ./err.plx
DBI 1.52-ithread default trace level set to 0x0/1 (pid 18876)
-> DBI->connect(dbi:Oracle:, framework/xxxxx@audbs01u, ****,
HASH(0x409b4f0))
-> DBI->install_driver(Oracle) for linux perl=5.008008 pid=18876
ruid=501 euid=501
install_driver: DBD::Oracle version 1.22 loaded
from /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBD/Oracle.pm
<- STORE('ShowErrorStatement' 1)= 1 at Oracle.pm line 68
<- install_driver= DBI::dr=HASH(0x4219ce0)
<- connect('' 'framework/xxxxx@audbs01u' ...)=
DBI::db=HASH(0x4338060) at DBI.pm line 625
<- STORE('RaiseError' 1)= 1 at DBI.pm line 672
<- STORE('PrintError' 0)= 1 at DBI.pm line 672
<- STORE('AutoCommit' 1)= 1 at DBI.pm line 672
<- STORE('Username' 'framework/xxxxx@audbs01u')= 1 at DBI.pm line
675
<> FETCH('Username')= 'framework/xxxxx@audbs01u' ('Username' from
cache) at DBI.pm line 675
<- connect= DBI::db=HASH(0x4338060)
<- STORE('dbi_connect_closure' CODE(0x43385a0))= 1 at DBI.pm line
691
<- FETCH('RowCacheSize')= 0 at err.plx line 56
<- FETCH('LongReadLen')= 80 at err.plx line 56
<- STORE('RowCacheSize' 1)= 1 at err.plx line 43
<- STORE('LongReadLen' 32000)= 1 at err.plx line 45
<- prepare('
SELECT val_l
FROM fw_property
WHERE property_id = :prop_id
')= DBI::st=HASH(0x43411c0) at err.plx line 19
<- STORE('RowCacheSize' ARRAY(0x4341330))= 1 at err.plx line 43
<- bind_param(':prop_id' 16576)= 1 at err.plx line 25
<- execute= '0E0' at err.plx line 26
<- fetchrow_arrayref= undef at err.plx line 27
<- finish= 1 at err.plx line 28
<- prepare('
SELECT TO_CHAR(SYSDATE, 'DD-Mon-YYYY HH24:MI:SS')
FROM dual
')= DBI::st=HASH(0x4341430) at err.plx line 29
<- DESTROY(DBI::st=HASH(43411a0))= undef at err.plx line 33
Errors in file :
OCI-21500: internal error code, arguments: [kghssgai5], [4080],
[70521780], [24], [], [], [], []
��t7��t7��t7Aborted
Hope this helps some other knucklehead ...
Steve
On Mon, 2008-11-10 at 19:12 +1100, Steve Baldwin wrote:
> Just a follow up. It may be that this hasn't necessarily just started
> happening. It may be the first time this bit of code has been exercised
> since we switched from an 8-bit DB to UTF-8.
>
> Anyway, if anyone has seen this before and can give me some clues as to
> what to look for I'd be most grateful.
>
> Steve
>
> On Mon, 2008-11-10 at 13:29 +1100, Steve Baldwin wrote:
> > All,
> >
> > A part of on of our applications has just started failing with this :
> >
> > OCI-21500: internal error code, arguments: [kghssgai5], [4080],
> > [293722940], [24], [], [], [], []
> > ��t7��t7��t7
> >
> > We are using an 11i client connecting to a 9.2.0.8 instance. Our OS is
> > Red Hat Enterprise 5, our version of DBI is 1.52 and our version of
> > DBD::Oracle is 1.22.
> >
> > I've used DBI trace to find the statement it is failing on. Here's the
> > tail end of the trace output ...
> >
> > -> prepare for DBD::Oracle::db (DBI::db=HASH(0xa4ebc00)~0xa4f4a20 '
> > SELECT l.language,
> > fw_phrase_p.text (
> > :phrase, l.language,
> > NULL, NULL, NULL, NULL, NULL,
> > NVL(TO_DATE(:as_at, 'YYYYMMDDHH24MISS'),
> > fw_date_p.sys_date),
> > :ctx
> > )
> > FROM ...') thr#8fa6010
> > New DBI::st (for DBD::Oracle::st, parent=DBI::db=HASH(0xa4f4a20),
> > id=)
> > dbih_setup_handle(DBI::st=HASH(0xabf8fa0)=>DBI::st=HASH(0xae30190),
> > DBD::Oracle::st, abf8970, Null!)
> > dbih_make_com(DBI::db=HASH(0xa4f4a20), a4f8cb0, DBD::Oracle::st,
> > 448, 0) thr#8fa6010
> > dbd_preparse scanned 3 distinct placeholders
> > dbd_st_prepare'd sql SELECT (pl1, auto_lob1, check_sql1)
> > dbd_describe SELECT (EXPLICIT, lb 1987)...
> > Described col 1: dbtype 2(NVARCHAR2), scale 0, prec 3, nullok 0, name
> > LANGUAGE
> > : dbsize 22, char_used 0, char_size 0, csid 0, csform 0,
> > disize 171
> > fbh 1: 'LANGUAGE' NO null , otype 2-> 5, dbsize 22/172, p3.s0
> > Described col 2: dbtype 1(VARCHAR), scale 0, prec 4000, nullok 1, name
> > FW_PHRASE_P.TEXT(:PHRASE,L.LANGUAGE,NULL,NULL,NULL,NULL,NULL,NVL(TO_DATE(:AS_AT,'YYYYMMDDHH24MISS'),FW_DATE_P.SYS_DATE),:CTX)
> > : dbsize 4000, char_used 1, char_size 4000, csid 873, csform
> > 1, disize 4000
> > fbh 2:
> > 'FW_PHRASE_P.TEXT(:PHRASE,L.LANGUAGE,NULL,NULL,NULL,NULL,NULL,NVL(TO_DATE(:AS_AT,'YYYYMMDDHH24MISS'),FW_DATE_P.SYS_DATE),:CTX)' NULLable, otype 1-> 5, dbsize 4000/4001, p4000.s0
> > row cache OCI_ATTR_PREFETCH_ROWS 180326336, OCI_ATTR_PREFETCH_MEMORY
> > 0
> > rs_array_init: rs_array_on=0, rs_array_size=1
> > calling OCIAttrSet OCI_ATTR_CHARSET_FORM with csform=1
> > dbd_describe'd 2 columns (row bytes: 4022 max, 2004 est avg, cache:
> > 0)
> > <- prepare= DBI::st=HASH(0xabf8fa0) at DB.pm line 1168 via at
> > renderonx.plx line 217
> > -> bind_param for DBD::Oracle::st (DBI::st=HASH(0xabf8fa0)~0xae30190
> > ':phrase' "19006631") thr#8fa6010
> > dbd_bind_ph(): bind :phrase <== "19006631" (type 0 (DEFAULT (varchar)))
> > dbd_rebind_ph_char() (1): bind :phrase <== "19006631" (size 8/16/0,
> > ptype 4(VARCHAR), otype 1 )
> > dbd_rebind_ph_char() (2): bind :phrase <== '"1900663' (size 8/16, otype
> > 1(VARCHAR), indp 0, at_exec 1)
> > bind :phrase as ftype 1 (VARCHAR)
> > dbd_rebind_ph() (2): rebinding :phrase with UTF8 value so setting
> > csform=SQLCS_IMPLICITdbd_rebind_ph(): bind :phrase <== "19006631" (in,
> > is-utf8, csid 873->0->873, ftype 1 (VARCHAR), csform 0->1, maxlen 16,
> > maxdata_size 0)
> > <- bind_param= 1 at DB.pm line 1183 via at renderonx.plx line 217
> > -> bind_param for DBD::Oracle::st (DBI::st=HASH(0xabf8fa0)~0xae30190
> > ':as_at' undef) thr#8fa6010
> > dbd_bind_ph(): bind :as_at <== undef (type 0 (DEFAULT (varchar)))
> > dbd_rebind_ph_char() (1): bind :as_at <== undef (NULL, size 0/0/0, ptype
> > 4(VARCHAR), otype 1 )
> > dbd_rebind_ph_char() (2): bind :as_at <== '' (size 0/0, otype
> > 1(VARCHAR), indp -1, at_exec 1)
> > bind :as_at as ftype 1 (VARCHAR)
> > dbd_rebind_ph(): bind :as_at <== undef (in, not-utf8, csid 873->0->873,
> > ftype 1 (VARCHAR), csform 0->0, maxlen 0, maxdata_size 0)
> > <- bind_param= 1 at DB.pm line 1184 via at renderonx.plx line 217
> > -> bind_param for DBD::Oracle::st (DBI::st=HASH(0xabf8fa0)~0xae30190
> > ':ctx' '') thr#8fa6010
> > dbd_bind_ph(): bind :ctx <== '' (type 0 (DEFAULT (varchar)))
> > dbd_rebind_ph_char() (1): bind :ctx <== '' (size 0/8/0, ptype
> > 4(VARCHAR), otype 1 )
> > dbd_rebind_ph_char() (2): bind :ctx <== '' (size 0/8, otype 1(VARCHAR),
> > indp 0, at_exec 1)
> > bind :ctx as ftype 1 (VARCHAR)
> > dbd_rebind_ph(): bind :ctx <== '' (in, not-utf8, csid 873->0->873, ftype
> > 1 (VARCHAR), csform 0->0, maxlen 8, maxdata_size 0)
> > <- bind_param= 1 at DB.pm line 1185 via at renderonx.plx line 217
> > Retrieving text for phrase : 19006631
> > -> execute for DBD::Oracle::st (DBI::st=HASH(0xabf8fa0)~0xae30190)
> > thr#8fa6010
> > dbd_st_execute SELECT (out0, lob0)...
> > Statement Execute Mode is 0 (DEFAULT)
> > Errors in file :
> > OCI-21500: internal error code, arguments: [kghssgai5], [4080],
> > [180326480], [24], [], [], [], []
> > ��t7��t7��t7
> >
> > The program then goes into a tight CPU loop and I need to kill it from
> > another session.
> >
> > Strangely, I run the failing statement in a small test program and it
> > works just fine.
> >
> > Our database char set is AL32UTF8 and the NLS_LANG environment variable
> > is set to AMERICAN_AMERICA.AL32UTF8. The statement will extract 'wide'
> > characters, but doesn't appear to even get to the fetch.
> >
> > Anyone have any clues that might help me get to the bottom of this?
> >
> > Thanks,
> >
> > Steve
> >
> >
> >
> > ******************************************************************
> > This email is intended solely for the use of the addressee and may
> > contain information that is confidential, proprietary, or both.
> > If you receive this email in error please immediately notify the
> > sender and delete the email.
> > ******************************************************************
>
>
>
> ******************************************************************
> This email is intended solely for the use of the addressee and may
> contain information that is confidential, proprietary, or both.
> If you receive this email in error please immediately notify the
> sender and delete the email.
> ******************************************************************
******************************************************************
This email is intended solely for the use of the addressee and may
contain information that is confidential, proprietary, or both.
If you receive this email in error please immediately notify the
sender and delete the email.
******************************************************************
Thread Previous