select hang住等待SQL*Net message from Client

jlttt發表於2009-03-31

如果你不知道什麼叫詭異,那麼請往下看。

一個select語句,在10.2.0.1 for linux平臺跑著好好的,到了10.2.0.4一執行就hang住,等待SQL*Net message from Client,而且非常消耗CPU資源。很奇怪吧,看似是等待客戶端的請求,但是卻消耗了大量CPU,似乎很矛盾。在山窮水盡之時,老熊橫空出世,抓到了call stack,並且在metalink上找到了相似的BUG。

我的call stack:

lnxfpr ()lnxn2coptg ()lnxn2copt ()lnxn2c ()evastr ()evaopn2 ()evaopn2 ()evacat ()evaopn2 ()evareo ()expeqkesEval_Int ()qkesEvalPred ()qsmeeopt_evaluate_opt ()kkqsevopt ()kkqsrgck ()kkqsecxp ()kkqsccck ()kkqsdcck ()kkqscchk ()kkqsCheckWkkqsAreQbcsEquivalent ()kkqvCheckQbcEquiv ()expCheckExprEquiv ()qecgoc ()qecgby ()qecdrv ()qecdrv ()kkqcttcalo ()kkqctdrvIT ()apadropitca ()kksFullTypeCheck ()rpiswu2 ()kksLoadChild ()kxsGetRuntimeLock ()kksfbc ()kkspsc0 ()kksParseCursor ()opiosq0 ()kpooprx ()kpoal8 ()opiodr ()ttcpip ()opitsk ()opiino ()opiodr ()opidrv ()sou2o ()opimai_real ()main ()

Bug No.

7436631 QUERY HANGS IN PARSING ON 10.2.0.4 ON LNXN2COPT

的call stack:

STACK TRACE:

------------

Summary Stack

lnxn2copt

lnxn2c

evastr copyright (c) 1981 by Relational Software

evaopn2

evareo evareo - EVAluate RElational Operator

expepr expepr evaluates the argument predicate.

qkesEval_Int

qkesEvalPred

qsmeeopt_evaluate_opt

kkqsevopt

kkqsrgck

kkqsecxp

kkqsccck

kkqsdcck

kkqscchk

kkqsCheckWhereClauseEquiv

kkqsAreQbcsEquivalent

kkqvCheckQbcEquiv

expCheckExprEquiv

qecgoc qecgoc - Query Edit Check Group Operand Check

qecgby qecgby - Query Edit Check Group BY

qecdrv qecdrv - query edit check driver

opitca OPITCA: sets up the context area

kksFullTypeCheck

.

非常相似,遺憾的是在linux下沒有patch,最後透過改寫SQL fix掉了。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9533994/viewspace-1019666/,如需轉載,請註明出處,否則將追究法律責任。

相關文章