APEX ate my 11g upgrade

I have been working on upgrading a 10.2.0.3 database to 11g for a few weeks now. It is RAC so requires some groundwork before doing the actual RDBMS upgrade, but I’m finding an interesting issue when running the catupgrd.sql script against my database.

The system I’m upgrading has Oracle Application Express installed:

sql> select comp_id, comp_name, version, status
from dba_registry
where comp_id='APEX';

COMP_ID       COMP_NAME                   VERSION     STATUS

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

APEX          Oracle Application Express  2.2.1.00.04 VALID

When you upgrade to 11g APEX is installed by default, but if you already have a version of it, it will attempt to upgrade this version to 3.0.1. When I run catupgrd.sql script everything seems to be happy and going along fine until:

Thank you for installing Oracle Application Express.

Oracle Application Express is installed in the FLOWS_030000 schema.

.

.

— Now beginning upgrade. This will take several minutes.——-

— Ensuring template names are unique ——-

— Migrating metadata to new schema ——-

ERROR:

ORA-03114: not connected to ORACLE

ERROR:

ORA-03114: not connected to ORACLE

.

.

At this point the catupgrd.sql script has bombed out and nothing further in the upgrade gets successfully run against the database. Digging a little deeper we can see an ORA-07745 has been thrown:

ORA-07445: exception encountered: core dump [pfrxca()+65] [SIGSEGV] [ADDR:0x10] [PC:0x719A6F1] [Address not mapped to object] []

I’m not too sure how relevant this is, but there is a bug visible in metalink related to  pfrxca: 4176171:

A dump can occur in pfrxca if a PLSQL object gets invalidated while it is being loaded into cache.

Apex is left in the following state:

sql> select comp_id, comp_name, version, status
from dba_registry
where comp_id='APEX';

COMP_ID       COMP_NAME                   VERSION     STATUS

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

APEX          Oracle Application Express  2.2.1.00.04 UPGRADING

I have been able to reproduce this every time with clones of the database I want to upgrade. Oracle actually advised trying to upgrade APEX first by downloading it independently and then subsequently perform the database upgrade. I was quite surprised when  the standalone upgrade to APEX 3.0.1 went and worked flawlessly. During the database upgrade process the same coreins.sql script is called as during the standalone APEX upgrade!

Of course performing the database upgrade with an already upgraded APEX also then ran smoothly without incident. I feel I should point out that in the SR I raised the support analyst did claim that he was able to upgrade to 11g without encountering this issue, whether he was testing with the exact version of APEX that I originally had, and with RAC was not apparent. I know I can reproduce this problem at will.

It  would seem to me that in my system (I have reproduced this on various different servers, but all running 10.2.0.3 on RHEL 4 x86-64) something is becoming invalid during the upgrade and that APEX is not liking it. Yet another example of the fact that you cannot test enough, and to never, ever take anything for granted. Every Oracle system is unique!

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s