Project

General

Profile

Actions

Bug #22850

closed

concurrent registration occasionally fails with "host_id has already been taken" error

Added by Justin Sherrill almost 7 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
Normal
Category:
-
Target version:
Difficulty:
Triaged:
Fixed in Releases:
Found in Releases:

Description

Cloned from https://bugzilla.redhat.com/show_bug.cgi?id=1553845

Description of problem:

If you run a number of concurrent registrations, you will occasionally get this error

2018-03-09 11:01:08 f2291934 [app] [I] Started POST "/rhsm/consumers?owner=Default_Organization&activation_keys=rhel7ak" for 10.8.0.69 at 2018-03-09 11:01:08 -0500
2018-03-09 11:01:08 f2291934 [app] [I] Processing by Katello::Api::Rhsm::CandlepinProxiesController#consumer_activate as JSON
2018-03-09 11:01:08 f2291934 [app] [I] Parameters: {"facts"=>"[FILTERED]", "installedProducts"=>[{"productName"=>"Red Hat Enterprise Linux Server", "arch"=>"x86_64", "version"=>"7.4", "productId"=>"69"}], "type"=>"system", "name"=>"uganda2", "contentTags"=>["rhel-7", "rhel-7-server"], "owner"=>"Default_Organization", "activation_keys"=>"rhel7ak"}
2018-03-09 11:01:11 f2291934 [audit] [I] [uganda2] deleted 0 (5.0ms)
2018-03-09 11:01:11 f2291934 [audit] [I] [uganda2] updated 0 (2.8ms)
2018-03-09 11:01:12 f2291934 [audit] [I] [uganda2] added 111 (847.1ms)
2018-03-09 11:01:12 f2291934 [app] [I] Import facts for 'uganda2' completed. Added: 111, Updated: 0, Deleted 0 facts
2018-03-09 11:01:12 f2291934 [katello/cp_proxy] [E] <Class> ActiveRecord::RecordInvalid
2018-03-09 11:01:12 f2291934 [katello/cp_proxy] [E] host_id: ["has already been taken"]
2018-03-09 11:01:12 f2291934 [app] [I] Completed 422 Unprocessable Entity in 4250ms (Views: 0.4ms | ActiveRecord: 229.6ms)

NOTE: this seems to only occur after 1514508 (6.2.15) is applied.

Version-Release number of selected component (if applicable): 6.2.14 + hotfix for 1514508

How reproducible: maybe 10-20% of time, but sometimes you'll get a number of runs with no error.

Steps to Reproduce:
1. register two hosts at same time

Actual results: error

Expected results: no error

Additional info: the host records all seeem OK in the satellite. clean_backend_objects does not find any missing records, and the host works OK. I am not sure yet why flood.py does not return when the 422 is returned, when I connect to the docker host I don't see anything waiting.

Actions

Also available in: Atom PDF