ORA-00600: internal error code, arguments: [kgantc_1]錯誤排查記錄

zibaihe2000發表於2011-11-04

作業系統:AIX 6.1 資料庫環境:RAC 10.2.0.5

2011/10 /08 16:33左右,節點1出現的ORA-00600錯誤,產生dump檔案為5M多的 zgscdb1_ora_26739166.trc ,2011/10/09 15:43左右,節點二出現ORA-00600錯誤,dump檔案為 159K的zgscdb2_ora_35651868.trc
節點1:
這個錯誤是由於取消當前操作所引發。
Sat Oct 08 16:33:46 GMT+08:00 2011Errors in file /oracle10g/app/oracle/admin/zgscdb/udump/zgscdb1_ora_26739166.trc:
ORA-00600: internal error code, arguments: [kgantc_1], [0], [1], [], [], [], [], []
ORA-00604: error occurred at recursive SQL level 1
ORA-01013: user requested cancel of current operation
根據錯誤資訊和錯誤的發生時間,基本上可以確定,問題是由於取消當前操作引起的,下面檢查一下詳細資訊,檢視當前執行的操作是什麼。
Trace開頭部分內容如下:
*** 2011-10-08 16:33:45.573
*** ACTION NAME:(Test Window - Script for procedu) 2011-10-08 16:33:45.565
*** MODULE NAME:(PL/SQL Developer) 2011-10-08 16:33:45.565
*** SERVICE NAME:(zgscdb) 2011-10-08 16:33:45.565
*** SESSION ID:(5211.11033) 2011-10-08 16:33:45.564
Probe:read_pipe: receive failed, status 3
*** 2011-10-08 16:33:45.574
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [kgantc_1], [0], [1], [], [], [], [], []
ORA-00604: error occurred at recursive SQL level 1
ORA-01013: user requested cancel of current operation

從這裡可以看到錯誤會話是透過PL/SQL Developer連線到資料庫的,下面是出錯SQL部分:
Current SQL statement for this session:
begin
-- Call the procedure
p_fp_dk_sfxx(inwspzxh => :inwspzxh,
errcode => :errcode,
errmean => :errmean);
end;

從這裡只能看出錯誤的發生與使用者取消操作有關,呼叫的PL/SQL包本身並沒有什麼異常。
O/S info: user: Administrator, term: FZLTAX-SK-DL, ospid: 844:5076, machine: SKFZLTAX-SK-DL
program: plsqldev.exe application name: PL/SQL Developer

這 是開發人員透過windows平臺,使用PL/SQL Developer連線資料庫做了PL/SQL程式碼測試,終端名稱為FZLTAX-SK-DL,開 發人員執行此程式碼過程中取消了該操作,觸發ORA-00600。搜尋METALINK ORA-00600 [kgantc_1],並沒有發現什麼有價值的線索,發現有一個與此相類似的問題,此錯誤發生的ORACLE版本範圍比較大,是一個未釋出的bug,在11.2版本以後才修補,10.2.0.5是 10G最後一個補丁,出現類似的bug也屬正常:
Applies to:
Oracle Server - Enterprise Edition - Version: 8.1.7.0 to 11.1.0.7
This problem can occur on any platform.
Symptoms
A user interrupted the session while in the process of creating the connection - this is seen in the alert.log as something like:
ORA-00600: internal error code, arguments: [ttcgcshnd-2], [0], [], [], [], [], [], []
ORA-01013: user requested cancel of current operation
The instance continues to operate normally after the error.
Cause
The root cause is a problem handling the client interrupt (Ctrl-C) during connection handshake - this has been discussed in non-published bug:3210738.
Solution
The issue is completely harmless and can be safely ignored.
From 11.2 a fix has been implemented that will cause the client to raise an ORA-28547 (or an ORA-3106 if the client is pre-11.2). This has been implemented via non-published bug:6859408
References
在當前的例子中,是可能由於錯誤是ORA-1031,是使用者取消造成的,相對比較特殊,Oracle沒有正確的捕獲和處理,從而導致了這一系列Oracle內部錯誤的出現。
總的來說,這個錯誤出現的機率很小,且本身沒有什麼維護。如有特殊疑問,也可以與開發人員進行溝通。
節點2:
仍然是由於取消當前操作所引發。
Unix process pid: 35651868, image: oracle@fjlt_zgsc_db02
*** ACTION NAME:() 2011-10-09 15:41:36.670
*** MODULE NAME:(plsqldev.exe) 2011-10-09 15:41:36.670
*** SERVICE NAME:(zgscdb) 2011-10-09 15:41:36.670
*** SESSION ID:(5020.1926) 2011-10-09 15:41:36.670
qm_init_uga_helper: received error e=604 e2=1013
*** 2011-10-09 15:41:36.674
ksedmp: internal or fatal error
ORA-00604: error occurred at recursive SQL level 2
ORA-01013: user requested cancel of current operation
程式碼如下:
Current SQL statement for this session:
select count(*) from user$ u, xdb.xdb$schema s where u.user# = :1 and u.name = s.xmldata.schema_owner and (xdb.xdb$Extname2Intname(s.xmldata.schema_url, s.xmldata.schema_owner) = :2)

另外在搜尋ora-600 kgantc_1錯誤時發現了由於沒有debug許可權導致該錯誤的例子,這裡也一併記錄下來,以便日後檢視。

參考

http://yangtingkun.itpub.net/post/468/521820

客戶碰到了這個錯誤,在這個錯誤出現同時,伴隨著大量PL/SQL相關的錯誤資訊。
詳細的錯誤資訊為:
Errors in file /opt/oracle/diag/rdbms/mobiledb_n/mobiledb/trace/mobiledb_ora_3450.trc (incident=48961):
ORA-00600: 內部錯誤程式碼, 引數: [kgantc_1], [0], [1], [], [], [], [], [], [], [], [], []
ORA-00604: 遞迴 SQL 級別 1 出現錯誤
ORA-06510: PL/SQL: 使用者定義的異常錯誤未得到處理
ORA-06512: 在 "SYS.PBREAK", line 1087
ORA-06512: 在 "SYS.PBSDE", line 201
ORA-06510: PL/SQL: 使用者定義的異常錯誤未得到處理
ORA-06512: 在 line 1
ORA-06510: PL/SQL: 使用者定義的異常錯誤未得到處理
ORA-00604: 遞迴 SQL 級別 1 出現錯誤
ORA-06510: PL/SQL: 使用者定義的異常錯誤未得到處理
ORA-06512: 在 "SYS.PBREAK", line 1087
ORA-06512: 在 "SYS.PBSDE", line 201
ORA-06510: PL/SQL: 使用者定義的異常錯誤未得到處理
ORA-06512: 在 line 1
ORA-06512: 在 "HCONTENT.INFODLFLOG", line 13
ORA-06512: 在 line 3
Incident details in: /opt/oracle/diag/rdbms/mobiledb_n/mobiledb/incident/incdir_48961/mobiledb_ora_3450_i48961.trc
Thu Aug 04 12:17:41 2011
Dumping diagnostic data in directory=[cdmp_20110804121741], requested by (instance=1, osid=3450), summary=[incident=48961].
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Errors in file /opt/oracle/diag/rdbms/mobiledb_n/mobiledb/trace/mobiledb_ora_3450.trc:
ORA-00600: 內部錯誤程式碼, 引數: [kgantc_1], [0], [1], [], [], [], [], [], [], [], [], []
ORA-00604: 遞迴 SQL 級別 1 出現錯誤
ORA-06510: PL/SQL: 使用者定義的異常錯誤未得到處理
Errors in file /opt/oracle/diag/rdbms/mobiledb_n/mobiledb/trace/mobiledb_ora_3450.trc:
ORA-00600: 內部錯誤程式碼, 引數: [kgantc_1], [0], [1], [], [], [], [], [], [], [], [], []
ORA-00604: 遞迴 SQL 級別 1 出現錯誤
ORA-06510: PL/SQL: 使用者定義的異常錯誤未得到處理
ORA-06512: 在 "SYS.PBREAK", line 1087
ORA-06512: 在 "SYS.PBSDE", line 201
ORA-06510: PL/SQL: 使用者定義的異常錯誤未得到處理
ORA-06512: 在 line 1
ORA-06510: PL/SQL: 使用者定義的異常錯誤未得到處理
ORA-00604: 遞迴 SQL 級別 1 出現錯誤
ORA-06510: PL/SQL: 使用者定義的異常錯誤未得到處理
ORA-06512: 在 "SYS.PBREAK", line 1087
ORA-06512: 在 "SYS.PBSDE", line 201
ORA-06510: PL/SQL: 使用者定義的異常錯誤未得到處理
ORA-06512: 在 line 1
ORA-06512: 在 "HCONTENT.INFODLFLOG", line 13
ORA-06512: 在 line 3
Dumping diagnostic data in directory=[cdmp_20110804121745], requested by (instance=1, osid=3450), summary=[abnormal process termination].
Thu Aug 04 12:17:45 2011
Errors in file /opt/oracle/diag/rdbms/mobiledb_n/mobiledb/trace/mobiledb_ora_3450.trc (incident=60001):
ORA-00603: ORACLE server session terminated by fatal error
ORA-00600: internal error code, arguments: [kgantc_1], [0], [1], [], [], [], [], [], [], [], [], []
ORA-00604: error occurred at recursive SQL level 1
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at "SYS.PBREAK", line 1087
ORA-06512: at "SYS.PBSDE", line 201
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at line 1
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-00604: error occurred at recursive SQL level 1
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at "SYS.PBREAK", line 1087
ORA-06512: at "SYS.PBSDE", line 201
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at line 1
ORA-06512: at "HCONTENT.INFODLFLOG", line 13
ORA-06512: at line 3
Incident details in: /opt/oracle/diag/rdbms/mobiledb_n/mobiledb/incident/incdir_60001/mobiledb_ora_3450_i60001.trc
Errors in file /opt/oracle/diag/rdbms/mobiledb_n/mobiledb/incident/incdir_60001/mobiledb_ora_3450_i60001.trc:
ORA-00603: ORACLE server session terminated by fatal error
ORA-00600: internal error code, arguments: [kgantc_1], [0], [1], [], [], [], [], [], [], [], [], []
ORA-00604: error occurred at recursive SQL level 1
客戶的資料庫版本是11.2.0.2,而metalink上並沒有這麼新的版本的說明。不過Oracle的官方記錄了類似情況,由於缺少許可權,導致PL/SQL出現大量錯誤,從而最終引發了ORA-600(kgantc_1)的錯誤。
觀察除了ORA-600(kgantc_1)以外的錯誤資訊,問題多半是由於“PL/SQL: 使用者定義的異常錯誤未得到處理”所致。和客戶的DBA溝通,確認問題發生時刻,有開發程式設計師透過PLSQL DEVELOPER工具的DEBUG功能來執行PL/SQL程式碼。
顯然是由於DEBUG過程中,出現了自定義的異常沒有捕獲的情況,從而引發了這個600錯誤。而解決問題的方法也很簡單,如果不能避免DEBUG程式,那麼起碼在DEBUG的時候,確保捕獲了所有的異常,並不會再次丟擲。

參考:

ORA-1031 ORA-600[17285] ORA-600[KGANTC_1] Debugging PL/SQL [ID 335954.1] Modified 18-DEC-2009 Type PROBLEM Status PUBLISHED
In this Document
Symptoms
Cause
Solution
References
Applies to:
Oracle Server - Enterprise Edition - Version: 10.1.0.3
Information in this document applies to any platform.
***Checked for relevance on 18-DEC-2009***
Symptoms
Debugging PL/SQL using a 3rd party debugger (ie Oraedit) or the DBMS_DEBUG package fails with the
following error sequence reported in the alert log:
Tue Sep 6 11:58:25 2005
Errors in file /ora/RADBAD/admin/udump/radbad_ora_25947.trc:
ORA-00600: internal error code, arguments: [17285], [0xFFFFFFFF7B97B038], [18446744073709551615],
[0x3AD4A9688], [], [], [], []
ORA-00604: error occurred at recursive SQL level 1
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at “SYS.PBREAK”, line 1052
ORA-06512: at “SYS.PBSDE”, line 201
ORA-01031: insufficient privileges
ORA-06512: at line 1
ORA-00604: error occurred at recursive SQL level 1
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at “SYS.PBREAK”, line 1052
ORA-06512: at “SYS.PBSDE”, line 201
ORA-01031: insufficient privileges
ORA-06512: at line 1
Trace file also shows the following errors
Probe:S:debug_loop: exception 1: ORA-01031: insufficient privilege
Other internal errors that may accompany the ora-1031 and ora-6512 are:
ORA-07445: exception encountered: core dump [pfrdmp()+4] [SIGSEGV] [Address not mapped to object] [0x0000000B0] [] []
ORA-07445: exception encountered: core dump [kkxtcs()+216] [SIGBUS] [Invalid address alignment] [0x657273696F6E202D] [] []
ORA-00600: internal error code, arguments: [kgantc_1], [0], [1], [], [], [], [], []
Cause
User does not have sufficient privileges for debugging PL/SQL
Bug:4640115 was filed to address the internal errors exposed when the accurate error is the ora-1031
Bug:4640115 was still in progress at the time this note was written
Solution
1. Connect in SQL*Plus as a DBA/SYSDBA
2. grant the privilege DEBUG CONNECT SESSION to your user:
SQL> GRANT DEBUG CONNECT SESSION to ;
References
BUG:4640115 - [9/6] GETTING ORA 600 WHEN DEBUGGING PL/SQL ORA-600
NOTE:257940.1 - Debugging PL/SQL From Oracle JDeveloper Fails With Errors ORA-1031 ORA-6512
Show Related Information Related
Products
Oracle Database Products > Oracle Database > Oracle Database > Oracle Server - Enterprise Edition
Errors ORA-7445[EXCEPTION]; ORA-600[17285]; ORA-600[KGANTC_1]; ORA-7445; ORA-6512; ORA-604; ORA-1031; ORA-6510; 2005 ERROR

[@more@]

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

相關文章