Within the last year under a recent RU of 19c (approximately 19.13) an ORA-00600 started showing up in the alert logs. I say “approximately” since the developers can’t say quite when the ORA-00600 started showing up, and the database alert logs in their environment are only kept for 60 days. But now, it was happening on a daily basis:
This happens during an ETL phase where “a lot” of DDL happens along with DML; while it’s generally not a good practice to perform any DDL during ETL, we weren’t going to redesign the workflow at this time. And this code worked fine until… recently.
Searches on Oracle Support turned up nothing. Not even one error the referenced the
[kkdccui2] code point (at least as of 7/2/2022). I have an Oracle Support ticket open, so the last chapter of the story has not been written yet, but I did find a reference to
[kkdccui2] in a very recent post by Dominic Brooks that gave me a partial answer to the issue.
The bug# is 33046179, and its fix is included in RU 19.13 and later, which makes sense given the timeline. It appears to be related to a “new feature”, which unfortunately decreases the stability of a release that is “long term” and should only have bug fixes and very few new features unless you enable them. The fix is controlled by the hidden parameter “_bug33046179_kqr_hot_copy_sleep_limit” which has a default value of 5000:
This bug fix is included in all of my 19.15 databases, but it’s not enough to avoid the ORA-00600. Per Dominic’s article, I had to set that parameter to 0, and I haven’t seen the issue since.
alter system set "_bug33046179_kqr_hot_copy_sleep_limit"=0 scope=spfile;
A value of 0 prevents the ORA-00600, but I’m keeping the Oracle Support ticket open to see if the bug is truly fixed with a value of 0, or am I just disabling a new feature that should be working!
In a 19.12 database, that hidden parameter doesn’t even exist, so it’s hard to say (and probably hard to find out) what the default value of “kqr_hot_copy_sleep_limit” was originally. It’s likely that we won’t move that code to production until the Oracle Support ticket is resolved, but at least for now I haven’t seen any other side effects and therefore development can proceed.