ORA-07445 when enabling Unified Auditing with Oracle Database 12.2

auditoracleoracle-12c

When enabling the below Unified Auditing policies in Oracle database 12.2, a generic error ORA-07445 in the v$alert_log and ORA-03114 for each new log-on occur:

ORA-07445: exception encountered: core dump [kxes_evaopn2_setup_rpiswu_args()+73] [SIGSEGV] [ADDR:0x218] [PC:0x2DCCFA9] [Address not mapped to object] [].

and

ORA-03114: not connected to ORACLE.

This bug happens consistently on three tested 12.2 databases.

However, the error does not happen if the UPPER function calls in the WHEN clause are removed. Could this be a bug in 12.2? Also, wondering if this is a valid workaround to remove the UPPER function calls.

-- create policies
CREATE AUDIT POLICY sox_audit_ddl
  ACTIONS
    CREATE ASSEMBLY,
    CREATE AUDIT POLICY,
    CREATE CLUSTER,
    CREATE CONTEXT,
    CREATE DATABASE LINK,
    CREATE DIMENSION,
    CREATE DIRECTORY,
    CREATE DISK GROUP,
    CREATE EDITION,
    CREATE FLASHBACK ARCHIVE,
    CREATE FUNCTION,
    CREATE INDEX,
    CREATE INDEXTYPE,
    CREATE JAVA,
    CREATE LIBRARY,
    CREATE MATERIALIZED VIEW ,
    CREATE MATERIALIZED VIEW LOG,
    CREATE MATERIALIZED ZONEMAP,
    CREATE OPERATOR,
    CREATE OUTLINE,
    CREATE PACKAGE,
    CREATE PACKAGE BODY,
    CREATE PFILE,
    CREATE PLUGGABLE DATABASE,
    CREATE PROCEDURE,
    CREATE PROFILE,
    CREATE RESTORE POINT,
    CREATE ROLE,
    CREATE ROLLBACK SEGMENT,
    CREATE SCHEMA,
    CREATE SCHEMA SYNONYM,
    CREATE SEQUENCE,
    CREATE SPFILE,
    CREATE SYNONYM,
    CREATE TABLE,
    CREATE TABLESPACE,
    CREATE TRIGGER,
    CREATE TYPE,
    CREATE TYPE BODY,
    CREATE USER,
    CREATE VIEW,
    ALTER ASSEMBLY,
    ALTER AUDIT POLICY,
    ALTER CLUSTER,
    ALTER DATABASE,
    ALTER DATABASE LINK,
    ALTER DIMENSION,
    ALTER DISK GROUP,
    ALTER FLASHBACK ARCHIVE,
    ALTER FUNCTION,
    ALTER INDEX,
    ALTER INDEXTYPE,
    ALTER JAVA,
    ALTER LIBRARY,
    ALTER MATERIALIZED VIEW ,
    ALTER MATERIALIZED VIEW LOG,
    ALTER MATERIALIZED ZONEMAP,
    ALTER OPERATOR,
    ALTER OUTLINE,
    ALTER PACKAGE,
    ALTER PACKAGE BODY,
    ALTER PLUGGABLE DATABASE,
    ALTER PROCEDURE,
    ALTER PROFILE,
    ALTER RESOURCE COST,
    ALTER ROLE,
    ALTER ROLLBACK SEGMENT,
    ALTER SEQUENCE,
    ALTER SESSION,
    ALTER SYNONYM,
    ALTER SYSTEM,
    ALTER TABLE,
    ALTER TRIGGER,
    ALTER TYPE,
    ALTER TYPE BODY,
    ALTER USER,
    ALTER VIEW,
    TRUNCATE CLUSTER,
    TRUNCATE TABLE,
    RENAME,
    DROP ASSEMBLY,
    DROP AUDIT POLICY,
    DROP CLUSTER,
    DROP CONTEXT,
    DROP DATABASE LINK,
    DROP DIMENSION,
    DROP DIRECTORY,
    DROP DISK GROUP,
    DROP EDITION,
    DROP FLASHBACK ARCHIVE,
    DROP FUNCTION,
    DROP INDEX,
    DROP INDEXTYPE,
    DROP JAVA,
    DROP LIBRARY,
    DROP MATERIALIZED VIEW ,
    DROP MATERIALIZED VIEW  LOG,
    DROP MATERIALIZED ZONEMAP,
    DROP OPERATOR,
    DROP OUTLINE,
    DROP PACKAGE,
    DROP PACKAGE BODY,
    DROP PLUGGABLE DATABASE,
    DROP PROCEDURE,
    DROP PROFILE,
    DROP RESTORE POINT,
    DROP ROLE,
    DROP ROLLBACK SEGMENT,
    DROP SCHEMA SYNONYM,
    DROP SEQUENCE,
    DROP SYNONYM,
    DROP TABLE,
    DROP TABLESPACE,
    DROP TRIGGER,
    DROP TYPE,
    DROP TYPE BODY,
    DROP USER,
    DROP VIEW
  WHEN
    'UPPER(SYS_CONTEXT(''USERENV'', ''SESSION_USER'')) IN (''USER_A'', ''USER_B'') AND UPPER(SYS_CONTEXT(''USERENV'', ''OS_USER'')) != ''ORACLE'''
    EVALUATE PER SESSION;

CREATE AUDIT POLICY sox_audit_dml
  ACTIONS
    INSERT,
    UPDATE,
    DELETE
  WHEN
    'UPPER(SYS_CONTEXT(''USERENV'', ''SESSION_USER'')) IN (''USER_A'', ''USER_B'') AND UPPER(SYS_CONTEXT(''USERENV'', ''OS_USER'')) != ''ORACLE'''
    EVALUATE PER SESSION;

CREATE AUDIT POLICY sox_audit_tcl
  ACTIONS
    COMMIT,
    ROLLBACK
  WHEN
    'UPPER(SYS_CONTEXT(''USERENV'', ''SESSION_USER'')) IN (''USER_A'', ''USER_B'') AND UPPER(SYS_CONTEXT(''USERENV'', ''OS_USER'')) != ''ORACLE'''
    EVALUATE PER SESSION;

CREATE AUDIT POLICY sox_audit_dcl
  ACTIONS
    GRANT,
    REVOKE
  WHEN
    'UPPER(SYS_CONTEXT(''USERENV'', ''SESSION_USER'')) IN (''USER_A'', ''USER_B'') AND UPPER(SYS_CONTEXT(''USERENV'', ''OS_USER'')) != ''ORACLE'''
    EVALUATE PER SESSION;

CREATE AUDIT POLICY sox_audit_misc
  ACTIONS
    ANALYZE CLUSTER,
    ANALYZE INDEX,
    ANALYZE TABLE,
    ASSOCIATE STATISTICS,
    AUDIT,
    CHANGE PASSWORD,
    COMMENT,
    DISASSOCIATE STATISTICS,
    EXECUTE,
    FLASHBACK TABLE,
    LOCK TABLE,
    LOGOFF,
    LOGON,
    NOAUDIT,
    PURGE INDEX,
    PURGE TABLE,
    PURGE TABLESPACE,
    SET ROLE,
    SET TRANSACTION
  WHEN
    'UPPER(SYS_CONTEXT(''USERENV'', ''SESSION_USER'')) IN (''USER_A'', ''USER_B'') AND UPPER(SYS_CONTEXT(''USERENV'', ''OS_USER'')) != ''ORACLE'''
    EVALUATE PER SESSION;

-- enable policies
AUDIT POLICY sox_audit_ddl;
AUDIT POLICY sox_audit_dml;
AUDIT POLICY sox_audit_tcl;
AUDIT POLICY sox_audit_dcl;
AUDIT POLICY sox_audit_misc;

Best Answer

ORA-07445: [KXES_EVAOPN2_SETUP_RPISWU_ARGS] WHILE EXECUTING UNIFIED AUDIT POLICY (Bug ID 20918538)
ORA-07445 [KXES_EVAOPN2_SETUP_RPISWU_ARGS] ON CONNECT WITH AUDIT POLICY ENABLED(Bug ID 26777814)
ORA-7445[KXES_EVAOPN2_SETUP_RPISWU_ARGS] ON CONNECT WITH CERTAIN AUDIT POLICY(Bug ID 27754325)
ORA-7445 [KXES_EVAOPN2_SETUP_RPISWU_ARGS+85] CONNECTING TO PDB(Bug ID 20057256)

All bugs are still under investigation.

If you found a workaround (removing UPPER), use it.