Bug 2139545

Summary: Registration error: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "katello_available_module_streams_name_stream_context"
Product: Red Hat Satellite Reporter: Pablo Mendez Hernandez <pmendezh>
Component: Subscription ManagementAssignee: Jeremy Lenz <jlenz>
Status: CLOSED ERRATA QA Contact: Ian Ballou <iballou>
Severity: medium Docs Contact:
Priority: high    
Version: 6.12.0CC: ahumbe, iballou, jlenz, lstejska, pcreech, redakkan
Target Milestone: 6.13.0Keywords: Performance, Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: rubygem-katello-4.7.0.2-1 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-05-03 13:22:26 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Pablo Mendez Hernandez 2022-11-02 22:57:12 UTC
Description of problem:

While testing concurrent registration with very low load (in this case, 9 content hosts, but in other with as low as 5 content hosts) we see the following error from the client side:

~~~
PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "katello_available_module_streams_name_stream_context"
DETAIL:  Key (name, stream, context)=(perl-DBD-MySQL, 4.046, bce9b2db) already exists.
 (HTTP error code 500: Internal Server Error)
~~~

The Key that clashes takes the different following values:

DETAIL:  Key (name, stream, context)=(idm, client, 7c4ef452) already exists.
DETAIL:  Key (name, stream, context)=(perl-DBD-MySQL, 4.046, bce9b2db) already exists.
DETAIL:  Key (name, stream, context)=(pki-deps, 10.6, b4937e53) already exists.
DETAIL:  Key (name, stream, context)=(pki-deps, 10.6, b4937e53) already exists.
DETAIL:  Key (name, stream, context)=(postgresql, 9.6, 229f0a1c) already exists.


The server traceback is as follows:

~~~
2022-11-02T13:54:03 [I|app|2350e6d6] Processing by Katello::Api::Rhsm::CandlepinDynflowProxyController#upload_profiles as JSON
2022-11-02T13:54:03 [I|app|2350e6d6]   Parameters: {"id"=>"042be06e-69bb-4b49-aeed-345aef1bb232"}
2022-11-02T13:54:03 [E|app|1d64b4f9] ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "katello_available_module_streams_name_stream_context"
 1d64b4f9 | DETAIL:  Key (name, stream, context)=(idm, client, 7c4ef452) already exists.
 1d64b4f9 | 
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/connection_adapters/postgresql_adapter.rb:675:in `exec_params'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/connection_adapters/postgresql_adapter.rb:675:in `block (2 levels) in exec_no_cache'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/connection_adapters/postgresql_adapter.rb:674:in `block in exec_no_cache'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/connection_adapters/abstract_adapter.rb:728:in `block (2 levels) in log'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/connection_adapters/abstract_adapter.rb:727:in `block in log'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/connection_adapters/abstract_adapter.rb:718:in `log'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/connection_adapters/postgresql_adapter.rb:673:in `exec_no_cache'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/connection_adapters/postgresql_adapter.rb:656:in `execute_and_clear'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/connection_adapters/postgresql/database_statements.rb:98:in `exec_query'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/connection_adapters/abstract/database_statements.rb:135:in `exec_insert'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/connection_adapters/postgresql/database_statements.rb:132:in `exec_insert'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/connection_adapters/abstract/database_statements.rb:166:in `insert'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/connection_adapters/abstract/query_cache.rb:22:in `insert'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/persistence.rb:375:in `_insert_record'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/persistence.rb:932:in `_create_record'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/counter_cache.rb:166:in `_create_record'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/locking/optimistic.rb:79:in `_create_record'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/attribute_methods/dirty.rb:211:in `_create_record'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/callbacks.rb:331:in `block in _create_record'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/callbacks.rb:135:in `run_callbacks'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/callbacks.rb:825:in `_run_create_callbacks'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/callbacks.rb:331:in `_create_record'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/timestamp.rb:110:in `_create_record'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/persistence.rb:905:in `create_or_update'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/callbacks.rb:327:in `block in create_or_update'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/callbacks.rb:112:in `block in run_callbacks'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/autosave_association.rb:366:in `around_save_collection_association'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/callbacks.rb:121:in `block in run_callbacks'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/callbacks.rb:139:in `run_callbacks'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/callbacks.rb:825:in `_run_save_callbacks'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/callbacks.rb:327:in `create_or_update'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/timestamp.rb:128:in `create_or_update'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/persistence.rb:503:in `save!'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/validations.rb:53:in `save!'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/transactions.rb:318:in `block in save!'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/transactions.rb:375:in `block in with_transaction_returning_status'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/connection_adapters/abstract/database_statements.rb:280:in `block in transaction'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/connection_adapters/abstract/transaction.rb:280:in `block in within_new_transaction'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/connection_adapters/abstract/transaction.rb:278:in `within_new_transaction'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/connection_adapters/abstract/database_statements.rb:280:in `transaction'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/transactions.rb:212:in `transaction'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/transactions.rb:366:in `with_transaction_returning_status'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/transactions.rb:318:in `save!'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/suppressor.rb:48:in `save!'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/persistence.rb:55:in `create!'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/relation.rb:115:in `block in create!'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/relation.rb:407:in `block in scoping'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/relation.rb:787:in `_scoping'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/relation.rb:407:in `scoping'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/relation.rb:115:in `create!'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/relation.rb:124:in `first_or_create!'
 1d64b4f9 | /usr/share/gems/gems/katello-4.5.0.20/app/models/katello/concerns/host_managed_extensions.rb:260:in `block in import_module_streams'
 1d64b4f9 | /usr/share/gems/gems/katello-4.5.0.20/app/models/katello/concerns/host_managed_extensions.rb:257:in `each'
 1d64b4f9 | /usr/share/gems/gems/katello-4.5.0.20/app/models/katello/concerns/host_managed_extensions.rb:257:in `import_module_streams'
 1d64b4f9 | /usr/share/gems/gems/katello-4.5.0.20/app/services/katello/host/profiles_uploader.rb:60:in `import_module_streams'
 1d64b4f9 | /usr/share/gems/gems/katello-4.5.0.20/app/services/katello/host/profiles_uploader.rb:38:in `block in upload'
 1d64b4f9 | /usr/share/gems/gems/katello-4.5.0.20/app/services/katello/host/profiles_uploader.rb:37:in `each'
 1d64b4f9 | /usr/share/gems/gems/katello-4.5.0.20/app/services/katello/host/profiles_uploader.rb:37:in `upload'
 1d64b4f9 | /usr/share/gems/gems/katello-4.5.0.20/app/controllers/katello/api/rhsm/candlepin_dynflow_proxy_controller.rb:41:in `block in upload_profiles'
 1d64b4f9 | /usr/share/foreman/app/models/concerns/foreman/thread_session.rb:108:in `as'
 1d64b4f9 | /usr/share/foreman/app/models/concerns/foreman/thread_session.rb:114:in `as_anonymous_admin'
 1d64b4f9 | /usr/share/gems/gems/katello-4.5.0.20/app/controllers/katello/api/rhsm/candlepin_dynflow_proxy_controller.rb:35:in `upload_profiles'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/abstract_controller/base.rb:195:in `process_action'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_controller/metal/rendering.rb:30:in `process_action'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/callbacks.rb:112:in `block in run_callbacks'
 1d64b4f9 | /usr/share/foreman/app/controllers/concerns/foreman/controller/timezone.rb:10:in `set_timezone'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/callbacks.rb:121:in `block in run_callbacks'
 1d64b4f9 | /usr/share/foreman/app/models/concerns/foreman/thread_session.rb:32:in `clear_thread'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/callbacks.rb:121:in `block in run_callbacks'
 1d64b4f9 | /usr/share/foreman/app/controllers/concerns/foreman/controller/topbar_sweeper.rb:12:in `set_topbar_sweeper_controller'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/callbacks.rb:121:in `block in run_callbacks'
 1d64b4f9 | /usr/share/gems/gems/audited-4.9.0/lib/audited/sweeper.rb:14:in `around'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/callbacks.rb:121:in `block in run_callbacks'
 1d64b4f9 | /usr/share/gems/gems/audited-4.9.0/lib/audited/sweeper.rb:14:in `around'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/callbacks.rb:121:in `block in run_callbacks'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/callbacks.rb:139:in `run_callbacks'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/abstract_controller/callbacks.rb:41:in `process_action'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_controller/metal/rescue.rb:22:in `process_action'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_controller/metal/instrumentation.rb:33:in `block in process_action'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/notifications.rb:180:in `block in instrument'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/notifications.rb:180:in `instrument'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_controller/metal/instrumentation.rb:32:in `process_action'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_controller/metal/params_wrapper.rb:245:in `process_action'
 1d64b4f9 | /usr/share/gems/gems/activerecord-6.0.4.7/lib/active_record/railties/controller_runtime.rb:27:in `process_action'
 1d64b4f9 | /usr/share/gems/gems/katello-4.5.0.20/app/controllers/katello/concerns/api/api_controller.rb:50:in `process_action'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/abstract_controller/base.rb:136:in `process'
 1d64b4f9 | /usr/share/gems/gems/actionview-6.0.4.7/lib/action_view/rendering.rb:39:in `process'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_controller/metal.rb:190:in `dispatch'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_controller/metal.rb:254:in `dispatch'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/routing/route_set.rb:33:in `serve'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/journey/router.rb:49:in `block in serve'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/journey/router.rb:32:in `each'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/journey/router.rb:32:in `serve'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/routing/route_set.rb:834:in `call'
 1d64b4f9 | /usr/share/gems/gems/railties-6.0.4.7/lib/rails/engine.rb:527:in `call'
 1d64b4f9 | /usr/share/gems/gems/railties-6.0.4.7/lib/rails/railtie.rb:190:in `public_send'
 1d64b4f9 | /usr/share/gems/gems/railties-6.0.4.7/lib/rails/railtie.rb:190:in `method_missing'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/routing/mapper.rb:19:in `block in <class:Constraints>'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/routing/mapper.rb:48:in `serve'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/journey/router.rb:49:in `block in serve'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/journey/router.rb:32:in `each'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/journey/router.rb:32:in `serve'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/routing/route_set.rb:834:in `call'
 1d64b4f9 | /usr/share/gems/gems/katello-4.5.0.20/lib/katello/middleware/organization_created_enforcer.rb:18:in `call'
 1d64b4f9 | /usr/share/gems/gems/katello-4.5.0.20/lib/katello/middleware/event_daemon.rb:10:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/static.rb:126:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/static.rb:126:in `call'
 1d64b4f9 | /usr/share/gems/gems/apipie-dsl-2.4.0/lib/apipie_dsl/static_dispatcher.rb:67:in `call'
 1d64b4f9 | /usr/share/gems/gems/apipie-rails-0.5.17/lib/apipie/static_dispatcher.rb:66:in `call'
 1d64b4f9 | /usr/share/gems/gems/apipie-rails-0.5.17/lib/apipie/extractor/recorder.rb:137:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/static.rb:126:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/static.rb:126:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/static.rb:126:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/static.rb:126:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/static.rb:126:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/static.rb:126:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/static.rb:126:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/static.rb:126:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/static.rb:126:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/static.rb:126:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/static.rb:126:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/static.rb:126:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/static.rb:126:in `call'
 1d64b4f9 | /usr/share/foreman/lib/foreman/middleware/libvirt_connection_cleaner.rb:9:in `call'
 1d64b4f9 | /usr/share/foreman/lib/foreman/middleware/telemetry.rb:10:in `call'
 1d64b4f9 | /usr/share/gems/gems/apipie-rails-0.5.17/lib/apipie/middleware/checksum_in_headers.rb:27:in `call'
 1d64b4f9 | /usr/share/gems/gems/rack-2.2.4/lib/rack/tempfile_reaper.rb:15:in `call'
 1d64b4f9 | /usr/share/gems/gems/rack-2.2.4/lib/rack/etag.rb:27:in `call'
 1d64b4f9 | /usr/share/gems/gems/rack-2.2.4/lib/rack/conditional_get.rb:40:in `call'
 1d64b4f9 | /usr/share/gems/gems/rack-2.2.4/lib/rack/head.rb:12:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/http/content_security_policy.rb:18:in `call'
 1d64b4f9 | /usr/share/foreman/lib/foreman/middleware/logging_context_session.rb:22:in `call'
 1d64b4f9 | /usr/share/gems/gems/rack-2.2.4/lib/rack/session/abstract/id.rb:266:in `context'
 1d64b4f9 | /usr/share/gems/gems/rack-2.2.4/lib/rack/session/abstract/id.rb:260:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/cookies.rb:654:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/callbacks.rb:101:in `run_callbacks'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/debug_exceptions.rb:32:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
 1d64b4f9 | /usr/share/gems/gems/railties-6.0.4.7/lib/rails/rack/logger.rb:37:in `call_app'
 1d64b4f9 | /usr/share/gems/gems/railties-6.0.4.7/lib/rails/rack/logger.rb:28:in `call'
 1d64b4f9 | /usr/share/gems/gems/sprockets-rails-3.2.1/lib/sprockets/rails/quiet_assets.rb:13:in `call'
 1d64b4f9 | /usr/share/foreman/lib/foreman/middleware/logging_context_request.rb:11:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/request_id.rb:27:in `call'
 1d64b4f9 | /usr/share/gems/gems/katello-4.5.0.20/lib/katello/prevent_json_parsing.rb:12:in `call'
 1d64b4f9 | /usr/share/gems/gems/rack-2.2.4/lib/rack/method_override.rb:24:in `call'
 1d64b4f9 | /usr/share/gems/gems/rack-2.2.4/lib/rack/runtime.rb:22:in `call'
 1d64b4f9 | /usr/share/gems/gems/activesupport-6.0.4.7/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/executor.rb:14:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/static.rb:126:in `call'
 1d64b4f9 | /usr/share/gems/gems/rack-2.2.4/lib/rack/sendfile.rb:110:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/ssl.rb:74:in `call'
 1d64b4f9 | /usr/share/gems/gems/actionpack-6.0.4.7/lib/action_dispatch/middleware/host_authorization.rb:97:in `call'
 1d64b4f9 | /usr/share/gems/gems/secure_headers-6.3.0/lib/secure_headers/middleware.rb:11:in `call'
 1d64b4f9 | /usr/share/gems/gems/railties-6.0.4.7/lib/rails/engine.rb:527:in `call'
 1d64b4f9 | /usr/share/gems/gems/railties-6.0.4.7/lib/rails/railtie.rb:190:in `public_send'
 1d64b4f9 | /usr/share/gems/gems/railties-6.0.4.7/lib/rails/railtie.rb:190:in `method_missing'
 1d64b4f9 | /usr/share/gems/gems/rack-2.2.4/lib/rack/urlmap.rb:74:in `block in call'
 1d64b4f9 | /usr/share/gems/gems/rack-2.2.4/lib/rack/urlmap.rb:58:in `each'
 1d64b4f9 | /usr/share/gems/gems/rack-2.2.4/lib/rack/urlmap.rb:58:in `call'
 1d64b4f9 | /usr/share/gems/gems/puma-5.6.2/lib/puma/configuration.rb:252:in `call'
 1d64b4f9 | /usr/share/gems/gems/puma-5.6.2/lib/puma/request.rb:77:in `block in handle_request'
 1d64b4f9 | /usr/share/gems/gems/puma-5.6.2/lib/puma/thread_pool.rb:340:in `with_force_shutdown'
 1d64b4f9 | /usr/share/gems/gems/puma-5.6.2/lib/puma/request.rb:76:in `handle_request'
 1d64b4f9 | /usr/share/gems/gems/puma-5.6.2/lib/puma/server.rb:441:in `process_client'
 1d64b4f9 | /usr/share/gems/gems/puma-5.6.2/lib/puma/thread_pool.rb:147:in `block in spawn_thread'
 1d64b4f9 | /usr/share/gems/gems/logging-2.3.0/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
2022-11-02T13:54:03 [I|app|1d64b4f9] Completed 500 Internal Server Error in 818ms (Views: 0.2ms | ActiveRecord: 276.8ms | Allocations: 237782)
~~~

This only occurs in the first batch of concurrent registrations after initial installation and content download and we haven't been able to reproduce it when the concurrency numbers are much higher.


Version-Release number of selected component (if applicable):

Satellite 6.12.0 Snap 15


How reproducible:

We're able to reproduce it pretty reliably in our concurrent registration testing.


Steps to Reproduce:
1. Try to concurrently register some content hosts after initial installation and content download
2. Wait until some of them fails this way
3.

Actual results:


Expected results:


Additional info:

Comment 1 Leos Stejskal 2022-11-08 08:21:32 UTC
Hi,
although the error is during the registration process,
from the log I can see the problem is the Katello::Api::Rhsm::CandlepinDynflowProxyController,
so I guess Candlepin (or "Capsule - Content"?) component would be probably a better fit.

Comment 2 Rehana 2022-11-08 14:44:17 UTC
Hi Leos, 

Thanks for tagging candlepin team on this bug. We would like to see candlepin.log to help us troubleshoot further.Can you please help us with that. 

Thanks,
Rehana

Comment 3 Pablo Mendez Hernandez 2022-11-08 16:20:14 UTC
As I reporter I'll provide the needed information.

Comment 6 Rehana 2022-11-10 14:47:28 UTC
Hi, 

Thanks for providing the candlepin log. We have reviewed the log file and it appears that this is not a candlepin issue. We suspect the error is likely coming from the Katello side. Hence we are moving the bug to subscriptions component. 

Thanks,
Rehana

Comment 12 Jeremy Lenz 2023-01-12 18:48:50 UTC
Created redmine issue https://projects.theforeman.org/issues/35936 from this bug

Comment 13 Bryan Kearney 2023-01-12 20:03:09 UTC
Upstream bug assigned to jlenz

Comment 14 Bryan Kearney 2023-01-12 20:03:11 UTC
Upstream bug assigned to jlenz

Comment 19 errata-xmlrpc 2023-05-03 13:22:26 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Important: Satellite 6.13 Release), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2023:2097