Hide Forgot
Description of problem: Customer requested a bug report Deadlock while registering system UPDATE RHNPRIVATECHANNELFAMILY SET CURRENT_MEMBERS = ( RHN_CHANNEL.CHANNEL_FAMILY_CURRENT_MEMBERS(:B1 , :B2 )), FVE_CURRENT_MEMBERS = ( RHN_CHANNEL.CFAM_CURR_FVE_MEMBERS(:B1 , :B2 )) WHERE ORG_ID = :B2 AND CHANNEL_FAMILY_ID = :B1 was blocking SELECT CREATED FROM RHNPRIVATECHANNELFAMILY WHERE CHANNEL_FAMILY_ID = :B2 AND ORG_ID = :B1 FOR UPDATE SELECT CREATED FROM RHNPRIVATECHANNELFAMILY WHERE CHANNEL_FAMILY_ID = :B2 AND ORG_ID = :B1 FOR UPDATE Version-Release number of selected component (if applicable): How reproducible: 100% Steps to Reproduce: 1. on satellite 5.7 try to register host 2. 3. Actual results: deadlock Expected results: server registered Additional info: workaround is to run a cron job hourly BEGIN SYS.DBMS_STATS.GATHER_TABLE_STATS (OwnName => 'RHN' ,TabName => 'RHNCHANNELFAMILY' ,Estimate_Percent => NULL ,Method_Opt => 'FOR ALL COLUMNS SIZE 1' ,Degree => 4 ,Cascade => TRUE ,No_Invalidate => FALSE); SYS.DBMS_STATS.GATHER_TABLE_STATS (OwnName => 'RHN' ,TabName => 'RHNCHANNELFAMILYMEMBERS' ,Estimate_Percent => NULL ,Method_Opt => 'FOR ALL COLUMNS SIZE 1' ,Degree => 4 ,Cascade => TRUE ,No_Invalidate => FALSE); SYS.DBMS_STATS.GATHER_TABLE_STATS (OwnName => 'RHN' ,TabName => 'RHNCHANNELFAMILYVIRTSUBLEVEL' ,Estimate_Percent => NULL ,Method_Opt => 'FOR ALL COLUMNS SIZE 1' ,Degree => 4 ,Cascade => TRUE ,No_Invalidate => FALSE); SYS.DBMS_STATS.GATHER_TABLE_STATS (OwnName => 'RHN' ,TabName => 'RHNPRIVATECHANNELFAMILY' ,Estimate_Percent => NULL ,Method_Opt => 'FOR ALL COLUMNS SIZE 1' ,Degree => 4 ,Cascade => TRUE ,No_Invalidate => FALSE); SYS.DBMS_STATS.GATHER_TABLE_STATS (OwnName => 'RHN' ,TabName => 'RHNSERVER' ,Estimate_Percent => NULL ,Method_Opt => 'FOR ALL COLUMNS SIZE 1' ,Degree => 4 ,Cascade => TRUE ,No_Invalidate => FALSE); SYS.DBMS_STATS.GATHER_TABLE_STATS (OwnName => 'RHN' ,TabName => 'RHNSERVERCHANNEL' ,Estimate_Percent => NULL ,Method_Opt => 'FOR ALL COLUMNS SIZE 1' ,Degree => 4 ,Cascade => TRUE ,No_Invalidate => FALSE); SYS.DBMS_STATS.GATHER_TABLE_STATS (OwnName => 'RHN' ,TabName => 'RHNSERVERGROUP' ,Estimate_Percent => NULL ,Method_Opt => 'FOR ALL COLUMNS SIZE 1' ,Degree => 4 ,Cascade => TRUE ,No_Invalidate => FALSE); SYS.DBMS_STATS.GATHER_TABLE_STATS (OwnName => 'RHN' ,TabName => 'RHNSERVERGROUPMEMBERS' ,Estimate_Percent => NULL ,Method_Opt => 'FOR ALL COLUMNS SIZE 1' ,Degree => 4 ,Cascade => TRUE ,No_Invalidate => FALSE); SYS.DBMS_STATS.GATHER_TABLE_STATS (OwnName => 'RHN' ,TabName => 'RHNSERVERGROUPTYPE' ,Estimate_Percent => NULL ,Method_Opt => 'FOR ALL COLUMNS SIZE 1' ,Degree => 4 ,Cascade => TRUE ,No_Invalidate => FALSE); SYS.DBMS_STATS.GATHER_TABLE_STATS (OwnName => 'RHN' ,TabName => 'RHNSGTYPEVIRTSUBLEVEL' ,Estimate_Percent => NULL ,Method_Opt => 'FOR ALL COLUMNS SIZE 1' ,Degree => 4 ,Cascade => TRUE ,No_Invalidate => FALSE); SYS.DBMS_STATS.GATHER_TABLE_STATS (OwnName => 'RHN' ,TabName => 'RHNVIRTUALINSTANCE' ,Estimate_Percent => NULL ,Method_Opt => 'FOR ALL COLUMNS SIZE 1' ,Degree => 4 ,Cascade => TRUE ,No_Invalidate => FALSE); END;
Is this a dup of BZ#1179770?
Created attachment 1169013 [details] db trace logs
The register-, delete-, subscribe-, and entitle-system code paths can affect/lock the rhnserver, rhnservergroup, and rhnprivatechannelfamily tables in a variety of ways, depending on specific invocations. There several BZs reporting deadlock issues caused by locks on these tables being acquired in different orders, depending on how one gets into the codepaths in question. All of the current BZs (including this one) are being closed as DUPs of the oldest-currently-open-report, BZ#1179770. We will work to fix the problems under that BZ. *** This bug has been marked as a duplicate of bug 1179770 ***