Saturday, June 13, 2009

Ora-07445: Core Dump [Ioc_pin_shared_executable_object()+796]

Applies to:

Oracle Server - Enterprise Edition - Version: 11.1.0.6
This problem can occur on any platform.

Symptoms

You can find the following exception in the alert log.

Tue Feb 12 15:00:02 2008
Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x0] [PC:0x1063BAD1C, ioc_pin_shared_executable_object()+796]
Tue Feb 12 15:00:02 2008
Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x0] [PC:0x1063BAD1C, ioc_pin_shared_executable_object()+796]
Errors in file /u00/app/oracle/diag/rdbms/ORCL/ORCL/trace/ORCL_m000_19716.trc (incident=33881):
ORA-07445: exception encountered: core dump [ioc_pin_shared_executable_object()+796] [SIGSEGV] [ADDR:0x0] [PC:0x1063BAD1C] [Address not mapped to object] []
Incident details in: /u00/app/oracle/diag/rdbms/ORCL/ORCL/incident/incdir_33881/ORCL_m000_19716_i33881.trc
Errors in file /u00/app/oracle/diag/rdbms/ORCL/ORCL/trace/ORCL_j000_19714.trc (incident=33873):
ORA-07445: exception encountered: core dump [ioc_pin_shared_executable_object()+796] [SIGSEGV] [ADDR:0x0] [PC:0x1063BAD1C] [Address not mapped to object] []
Incident details in: /u00/app/oracle/diag/rdbms/ORCL/ORCL/incident/incdir_33873/ORCL_j000_19714_i33873.trc
Tue Feb 12 15:00:04 2008
Trace dumping is performing id=[cdmp_20080212150004]

Cause

Bug 6325878 - USING VLM & RAMFS W/11G CAUSES ORA-7445 [IOC_PIN_SHARED_EXECUTABLE_OBJECT]
RELEASE NOTES: 
Oracle VLM configuration which instructs dba to mount /dev/shm as ramfs was incompatible with Oracle Java JIT
REDISCOVERY INFORMATION: 
Mounting /dev/shm as ramfs and start the database with JIT not disabled
WORKAROUND: 
Two workarounds.
1. Do not mount /dev/shm as ramfs and hence do not use VLM which requires it.
2. Disable JIT and do not use pl/sql native compilation.

Solution

To workaround the issue, set JAVA_JIT_ENABLED=FALSE at parameter file and bounce the instance.

SQL> alter system set JAVA_JIT_ENABLED= FALSE scope = both;

System altered.

SQL> shutdown immediate
SQL> startup

SQL> show parameter JAVA_JIT_ENABLED
NAME             TYPE    VALUE
---------------- ------- ------------------------------
java_jit_enabled boolean FALSE