Bug 1464559 - Deadlock when registering many consumers and consuming subscriptions
Deadlock when registering many consumers and consuming subscriptions
Status: CLOSED DUPLICATE of bug 1425212
Product: Red Hat Satellite 6
Classification: Red Hat
Component: katello-agent (Show other bugs)
6.2.8
Unspecified Unspecified
unspecified Severity high (vote)
: Unspecified
: --
Assigned To: satellite6-bugs
Katello QA List
: Triaged
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2017-06-23 14:24 EDT by Chris Rog
Modified: 2017-09-22 15:15 EDT (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2017-09-22 15:15:57 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
Archive containing the test script and its required library (56.47 KB, application/zip)
2017-06-23 14:24 EDT, Chris Rog
no flags Details
Manifest containing data used by the test script (177.21 KB, application/zip)
2017-06-23 14:24 EDT, Chris Rog
no flags Details
Stack trace from foreman/production.log (22.41 KB, text/plain)
2017-06-23 14:40 EDT, Chris Rog
no flags Details

  None (edit)
Description Chris Rog 2017-06-23 14:24:21 EDT
Created attachment 1291242 [details]
Archive containing the test script and its required library

Description of problem:
While running a stress test to attempt to reproduce a deadlock issue in Candlepin, we managed to reliably trigger a deadlock within Katello.

The stress test creates many consumers, consumes many pools in random order, then unregisters the consumer, all in parallel. At the time of writing, the test runs 50 threads which each run through 50 iterations of creating a consumer, consuming 25 pools (in random order) and then unregistering. This script will be attached to this BZ, as well as the manifest used to set up the test data.

Note that the included manifest will fail signature validation within Candlepin. We worked around this by disabling the check in Candlepin before importing, but another option would be to bypass the check using the force flag(s). If neither of these options are acceptable, any manifest which creates subscriptions with sku products named "export_prod-0" through "export_prod-25" should be acceptable.

Also note that the KatelloModule must be disabled in Candlepin, and simple auth must be enabled to allow direct access to certain endpoints to fetch the proper IDs used by the script.

Version-Release number of selected component (if applicable):
katello-3.0.0-17.el7sat.noarch
tfm-rubygem-katello-3.0.0.105-1.el7sat.noarch

How reproducible:
90%+

Steps to Reproduce:
1. Import manifest containing test data to the default organization
2. Update the IDs in the script to properly match those of the default organization and default environment
3. Run the test script

Actual results:
Deadlock (see attached stack trace)

Expected results:
No deadlock in Katello

Additional info:
Comment 1 Chris Rog 2017-06-23 14:24 EDT
Created attachment 1291243 [details]
Manifest containing data used by the test script
Comment 2 Chris Rog 2017-06-23 14:40 EDT
Created attachment 1291244 [details]
Stack trace from foreman/production.log
Comment 4 Brad Buckingham 2017-09-22 15:15:57 EDT

*** This bug has been marked as a duplicate of bug 1425212 ***

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