A developer reported an Oracle famous error ORA-00600 like the following:
java.sql.SQLException: ORA-00600: internal error code, arguments: [kclcls_2], , 
ORA-00600 is an internal error which is caught but unable to be handled by Oracle instance, the most important hint is the first argument in the error message, you can use it to lookup the true cause on MOS. To use ORA-00600 and ORA-07445 look-up tool, you need an Oracle account to access MOS.
In this case, the first arguments kclcls_2 in this case.
Generally speaking, ORA-00600 broadly covers many situations, we may have no idea what's going on even though we checked the look-up tool of ORA-00600. Most likely, they are bugs. Many other patterns of ORA-00600 error can be found below:
As for me, I clear the memory of both instances of a RAC system instead of restarting database to solve the error.
SQL> alter system flush shared_pool;
Maybe, we should search for a real solution later.
Ouch, flush shared_pool? I assume this is a simple developement instance? You couldn’t get away with flushing the shared pool in a production system, you would be flooded by calls and questions as why the performance degraded so sunddenly.
But then again, you’re issuing an alter system, so I do believe this is a small developpement database in the end.
A better solution is to patch your database, which needs to be planned and scheduled. Flushing shared_pool can be considered as a mitigation, you may decide NOT to flush shared_pool at the moment error occurred and wait for a better cure, it depends on your judgement.
Like I said in the last paragraph in the post, “Maybe, we should search for a real solution later.”. If you have any better solution, it’s always welcome.