Oracle内部错误ORA-07445:[_memcmp()+88] [SIGSEGV]一例

一套Sparc Solaris上的10.2.0.1数据库,告警日志中出现ORA-07445:[_memcmp()+88] [SIGSEGV]内部错误日志,具体日志如下:

以上7445内部错误并未导致实例意外终止crash,可以看到其最近的stack call为:memcmp kpzgkvl kziaia kpolnb kpolon opiodr ttcpip opitsk opiino opiodr opidrv sou2o opimai_real main start;通过Metalink搜索可以同Bug 5292883的调用堆栈匹配,Bug Note如下:

Bug 5292883  Dump from OCI client using OCI7 olog() call
Affects:
Product (Component)	 Oracle Server (Rdbms)
Range of versions believed to be affected	 Versions < 11
Versions confirmed as being affected	
10.2.0.3
Platforms affected	 Generic (all / most platforms affected)
Fixed:
This issue is fixed in	
10.2.0.2 Patch 10 on Windows Platforms
10.2.0.3 Patch 7 on Windows Platforms
10.2.0.4 (Server Patch Set)
11.1.0.6 (Base Release)
Symptoms:
Related To:
Process May Dump (ORA-7445) / Abend / Abort
Dump in or under kpzgkvl / kziaia
OCI
Description
On a 64 bit machines a dump can occur with the following stack
if the client uses the olog() OCI call to connect.
memcmp()<-kpzgkvl()<-kziaia()<--kpolnb()<-kpolon() 
Workaround
Use OCIServerAttach and OCISessionBegin instead of olog()
Hdr: 5292883 10.2.0.2.0 RDBMS 10.2.0.2.0 SECURITY PRODID-5 PORTID-197 ORA-7445
Abstract: ORA-7445: EXCEPTION ENCOUNTERED: CORE DUMP [_MEMCMP()+160] WHEN CONNECTING TO I
PROBLEM:
--------
1. Clear description of the problem encountered
OCI client connection fails with ORA-7445 [_memcmp()+160]. At the 
time of error occurence no connection to database could be established 
by OCI clients. Only sqlplus sessions were able to connect. The alertlog
confirms a lot of ORA-7445 which were logged. Client version is 9.2.0.6. 
ALERT LOG
---------
Tue Jun  6 18:59:14 2006
Submitted all GCS remote-cache requests
Post SMON to start 1st pass IR
Fix write in gcs resources
Reconfiguration complete
Tue Jun  6 19:02:32 2006
Errors in file /u01/app/oracle/admin/XAL/udump/xal1_ora_16756.trc:
ORA-7445: exception encountered: core dump [_memcmp()+160] [SIGSEGV] 
[Address not mapped to object] [0x2000000000] [] []
Tue Jun  6 19:02:32 2006
Errors in file /u01/app/oracle/admin/XAL/udump/xal1_ora_16756.trc:
ORA-81: address range [0x60000000000A7D70, 0x60000000000A7D74) is not 
readable
ORA-7445: exception encountered: core dump [_memcmp()+160] [SIGSEGV] 
[Address not mapped to object] [0x2000000000] [] []
Tue Jun  6 19:04:42 2006
Errors in file /u01/app/oracle/admin/XAL/udump/xal1_ora_20524.trc:
ORA-7445: exception encountered: core dump [_memcmp()+160] [SIGSEGV] 
[Address not mapped to object] [0x2A00000000] [] []
Tue Jun  6 19:04:42 2006
Errors in file /u01/app/oracle/admin/XAL/udump/xal1_ora_20524.trc:
ORA-81: address range [0x60000000000A7D70, 0x60000000000A7D74) is not 
readable
ORA-7445: exception encountered: core dump [_memcmp()+160] [SIGSEGV] 
[Address not mapped to object] [0x2A00000000] [] []
...    
2. Pertinent configuration information (MTS/OPS/distributed/etc)  
3 instance RAC database.
Errors were logged for 2 of these instances.
3. Indication of the frequency and predictability of the problem  
Intermittend occurence.
Not reproducible at will.
4. Technical impact on the customer. Include persistent after effects.
No connections possible from ERP application which fails with ORA-7445.
More than 500 ERP users affected.
STACK TRACE:
------------
_memcmp()+160        call                  
kpzgkvl()+192        call     _memcmp()            2000000002 ?
4000000001229FF0 ?
000000011 ?
kziaia()+480         call     kpzgkvl()            9FFFFFFFFFFFADB0 ?
9FFFFFFFFFFFAE18 ?
4000000001229FF0 ?
000000011 ? 000000000 ?
9FFFFFFFFFFF6ED8 ?
9FFFFFFFFFFF6EE0 ?
9FFFFFFFFFFF6ED0 ?
kpolnb()+1344        call     kziaia()             9FFFFFFFFFFF8040 ?
9FFFFFFFFFFF6EE0 ?
9FFFFFFFFFFF6ED8 ?
9FFFFFFFFFFF81E0 ?
9FFFFFFFFFFF81D8 ?
9FFFFFFFFFFF81E8 ?
000000000 ?
400000000233B440 ?
kpolon()+336         call     kpolnb()             9FFFFFFFFFFF8030 ?
4000000003F47E10 ?
9FFFFFFFFFFF6F80 ?
600000000009DB00 ?
00000820D ?
opiodr()+2064        call     kpolon()             000000051 ?
60000000000219A8 ?
9FFFFFFFFFFF81F0 ?
9FFFFFFFFFFF81B0 ?
60000000000AAA50 ?
40000000030BE570 ?
ttcpip()+1824        call     opiodr()             60000000000AA3B0 ?
6000000000015DD0 ?
9FFFFFFFFFFFA9A0 ?
6000000000015DD0 ?
9FFFFFFFFFFF82D0 ?
600000000009DB00 ?
00000001A ?
6000000000021838 ?

该Bug 5292883在10.2.0.1上没有相应的one-off patch补丁,而在11g和10.2.0.4补丁集中得到修复(fix)。如果无法实施补丁的话,那么一般可以通过以下2种途径绕过该问题:
1)限制用户名和密码的长度在9个字符以内
2)若使用OCI,登录使用OCIServerAttach和OCISessionBegin函数

Comment

*

沪ICP备14014813号

沪公网安备 31010802001379号