AQ process waiting on "library cache: mutex X"

  • From: "Hameed, Amir" <amir.hameed@xxxxxxxxxxxxxxx>
  • To: "oracle-l@xxxxxxxxxxxxx" <oracle-l@xxxxxxxxxxxxx>
  • Date: Tue, 13 Jul 2021 13:18:36 +0000

Hi,
The database version is 11.2.0.4 and the OS is Solaris 11. We are noticing that 
all of a sudden, one of the background AQ processes starts to wait on event 
library cache: mutex X.

  SID USERNAME SQL_ID        LOCKWAIT   STATUS   SERVER    MODULE     PROGRAM   
                TYPE       EVENT                          P1         P2         
P3
----- -------- ------------- ---------- -------- --------- ---------- 
------------------------- ---------- ---------------------- ---------- 
---------- ----------
   28                                   ACTIVE   DEDICATED Streams    
oracle@ebststdb11 (Q000)  BACKGROUND library cache: mutex X  868929898          
0         85


When the situation occurs, that AQ process consistently shows up in TOP as one 
of the highest CPU consuming processes. The snapper script shows the following 
output confirming that the process is churning CPU:
---------------------------------------------------------------------------------------------------------------
  ActSes   %Thread | INST | SQL_ID          | SQL_CHILD | EVENT                 
              | WAIT_CLASS
---------------------------------------------------------------------------------------------------------------
     .90     (90%) |    1 |                 |           | ON CPU                
              | ON CPU
     .10     (10%) |    1 |                 |           | library cache: mutex 
X              | Concurrency

--  End of ASH snap 5, end=2021-07-12 12:36:32, seconds=5, samples_taken=20, 
AAS=1


When the AQ process that was waiting on the event is killed, the wait shifts to 
another AQ process. I don't have access to the oracle account in this 
environment and therefore, cannot run TRUSS on the process. Can someone please 
shed some light on what would cause an AQ process to get stuck on the library 
cache: mutex X wait with no SQL_ID associated with it.

Thanks,
Amir

Other related posts: