Bug 1321336 - Database deadlock while registering a new hosts in external oracle db
Summary: Database deadlock while registering a new hosts in external oracle db
Keywords:
Status: CLOSED DUPLICATE of bug 1179770
Alias: None
Product: Red Hat Satellite 5
Classification: Red Hat
Component: Registration
Version: 570
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Tomáš Kašpárek
QA Contact: Red Hat Satellite QA List
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-03-25 15:45 UTC by Stefan Nemeth
Modified: 2019-12-16 05:34 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-07-06 17:37:55 UTC
Target Upstream Version:


Attachments (Terms of Use)
db trace logs (10.43 MB, application/x-gzip)
2016-06-17 09:48 UTC, Stefan Nemeth
no flags Details

Description Stefan Nemeth 2016-03-25 15:45:36 UTC
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;

Comment 4 Grant Gainey 2016-05-18 20:44:15 UTC
Is this a dup of BZ#1179770?

Comment 7 Stefan Nemeth 2016-06-17 09:48:22 UTC
Created attachment 1169013 [details]
db trace logs

Comment 8 Grant Gainey 2016-07-06 17:37:55 UTC
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 ***


Note You need to log in before you can comment on or make changes to this bug.