Why is the fix for bug nnn not included in any RU?

Christian asked this question today. Specifically, in his case for Bug 26749785 – PERF_DIAG: NEED TO HAVE MORE CONTROL IN DICTIONARY FOR AUTO_STATS_ADVISOR_TASK. Several of his customers suffer from this issue, and they repeatedly need to ask for backports or merge patches. I have seen this several times as well. Anyway, he is not only one who asked: Why is the fix for bug nnn not included in any RU?

Why is the fix for bug nnn not included in any RU?

Photo by Priscilla Du Preez 🇨🇦 on Unsplash

Inclusion criteria

In order to be able to include a bug fix into an MRP, CSPU or RU, it has to be RAC Rolling and Standby First applicable. That’s a given rule to NOT break especially the RAC Rolling capabilities. And currently there are some really important projects to make more and more fixes RAC Rolling applicable. Still, right now, this is a clear exclusion criteria. The most prominent example is the Data Pump Bundle Patch. While it can be applied online (don’t mix it with HOT patching) when the instance is up and running, the datapatch part may break the rolling ability.

 

Why isn’t it included?

In this specific case, Christian asked me about Bug 26749785 – PERF_DIAG: NEED TO HAVE MORE CONTROL IN DICTIONARY FOR AUTO_STATS_ADVISOR_TASK. This is a fix many customer need to prevent SYSAUX from unexpected growth. It adds a new preference to enable/disable AUTO_STATS_ADVISOR_TASK manually.

  • TRUE (default) : statistics advisor will run after auto stats collection
  • FALSE : auto stats advisor task will be disabled.

You can set this preference to TRUE/FALSE using DBMS_STATS.SET_GLOBAL_PREFS and check the current value set for the preference using DBMS_STATS.GET_PREFS call.
To check the current value for the preference:

select dbms_stats.get_prefs('AUTO_STATS_ADVISOR_TASK') from dual;

DBMS_STATS.GET_PREFS('AUTO_STATS_ADVISOR_TASK')
--------------------------------------------------------------------------------
TRUE

But in 19c without the fix you will receive an ORA-20001 when executing the above.

You can always check the consumption in SYSAUX with:

SET TRIMSPOOL ON TAB OFF LINES 1000 TERMOUT ON VERIFY OFF PAGES 1000
COLUMN OCCUPANT_NAME FORMAT A30

SELECT occupant_name, space_usage_kbytes
FROM v$sysaux_occupants
ORDER BY space_usage_kbytes DESC;

But back to this important fix, and why it isn’t included.

When you check the README it tells you:

Oracle Database 19 Release 19.32.0.0.260721DBRU
OPTIMIZER Patch for Bug# 26749785 for Generic Platforms

This patch is NOT RAC Rolling Installable.
This patch is Data Guard Standby-First Installable.

This is it. It can’t be included in an RU.

Without checking further, I am almost certain that it gets build and uploaded proactively. The 19.32 generic fix has an upload date of July 24. This means, you could download it almost instantly with the RU being released. But I understand that some of you need merges, and those need to be built.

On the side, this issue is fixed in Oracle Database 21c, and certainly in Oracle AI Database 26ai as well out of the box since the base release.

 

 

Further Links and Information

–Mike