Problem: Yesterday I upgraded from katello 4.16.3 to 4.17.1 and since then smart proxy sync task throws Katello::Errors::Pulp3Error occasionally. The pulpcore-worker is killed on the smart proxy side due to general protection fault and creates coredump. When I start the sync of smart proxy again, it finishes succesfully.
Expected outcome: Synchronization of smart proxies runs without errors
Foreman and Proxy versions: 3.15/4.17.1
Foreman and Proxy plugin versions:
Distribution and version: RHEL9
Other relevant data:
Smart proxy has 32GB of RAM.
Logs from smart proxy:
kernel: [48636.858646] traps: pulpcore-worker[254711] general protection fault ip:7fdac58253c7 sp:7fff488870a0 error:0 in libpython3.12.so.1.0[7fdac56ff000+276000]
Logs from foreman server:
2025-08-26T11:46:02 [E|bac|75a11d32] Pulp task error (Katello::Errors::Pulp3Error)
75a11d32 | /usr/share/gems/gems/katello-4.17.1/app/lib/actions/pulp3/abstract_async_task.rb:107:in `block in check_for_errors'
75a11d32 | /usr/share/gems/gems/katello-4.17.1/app/lib/actions/pulp3/abstract_async_task.rb:105:in `each'
75a11d32 | /usr/share/gems/gems/katello-4.17.1/app/lib/actions/pulp3/abstract_async_task.rb:105:in `check_for_errors'
75a11d32 | /usr/share/gems/gems/katello-4.17.1/app/lib/actions/pulp3/abstract_async_task.rb:161:in `poll_external_task'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/action/polling.rb:100:in `poll_external_task_with_rescue'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/action/polling.rb:22:in `run'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/action/cancellable.rb:15:in `run'
75a11d32 | /usr/share/gems/gems/katello-4.17.1/app/lib/actions/pulp3/abstract_async_task.rb:10:in `run'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/action.rb:590:in `block (3 levels) in execute_run'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware/stack.rb:28:in `pass'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware.rb:20:in `pass'
75a11d32 | /usr/share/gems/gems/katello-4.17.1/app/lib/actions/middleware/record_smart_proxy_sync_history.rb:26:in `run'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware/stack.rb:24:in `call'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware/stack.rb:28:in `pass'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware.rb:20:in `pass'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware.rb:33:in `run'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware/stack.rb:24:in `call'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware/stack.rb:28:in `pass'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware.rb:20:in `pass'
75a11d32 | /usr/share/gems/gems/katello-4.17.1/app/lib/actions/middleware/remote_action.rb:16:in `block in run'
75a11d32 | /usr/share/gems/gems/katello-4.17.1/app/lib/actions/middleware/remote_action.rb:40:in `block in as_remote_user'
75a11d32 | /usr/share/gems/gems/katello-4.17.1/app/models/katello/concerns/user_extensions.rb:21:in `cp_config'
75a11d32 | /usr/share/gems/gems/katello-4.17.1/app/lib/actions/middleware/remote_action.rb:27:in `as_cp_user'
75a11d32 | /usr/share/gems/gems/katello-4.17.1/app/lib/actions/middleware/remote_action.rb:39:in `as_remote_user'
75a11d32 | /usr/share/gems/gems/katello-4.17.1/app/lib/actions/middleware/remote_action.rb:16:in `run'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware/stack.rb:24:in `call'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware/stack.rb:28:in `pass'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware.rb:20:in `pass'
75a11d32 | /usr/share/gems/gems/foreman-tasks-11.0.0/app/lib/actions/middleware/rails_executor_wrap.rb:14:in `block in run'
75a11d32 | /usr/share/gems/gems/activesupport-7.0.8.7/lib/active_support/execution_wrapper.rb:92:in `wrap'
75a11d32 | /usr/share/gems/gems/foreman-tasks-11.0.0/app/lib/actions/middleware/rails_executor_wrap.rb:13:in `run'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware/stack.rb:24:in `call'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware/stack.rb:28:in `pass'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware.rb:20:in `pass'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/action/progress.rb:29:in `with_progress_calculation'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/action/progress.rb:15:in `run'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware/stack.rb:24:in `call'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware/stack.rb:28:in `pass'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware.rb:20:in `pass'
75a11d32 | /usr/share/gems/gems/foreman-tasks-11.0.0/app/lib/actions/middleware/load_setting_values.rb:20:in `run'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware/stack.rb:24:in `call'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware/stack.rb:28:in `pass'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware.rb:20:in `pass'
75a11d32 | /usr/share/gems/gems/foreman-tasks-11.0.0/app/lib/actions/middleware/keep_current_request_id.rb:15:in `block in run'
75a11d32 | /usr/share/gems/gems/foreman-tasks-11.0.0/app/lib/actions/middleware/keep_current_request_id.rb:52:in `restore_current_request_id'
75a11d32 | /usr/share/gems/gems/foreman-tasks-11.0.0/app/lib/actions/middleware/keep_current_request_id.rb:15:in `run'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware/stack.rb:24:in `call'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware/stack.rb:28:in `pass'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware.rb:20:in `pass'
75a11d32 | /usr/share/gems/gems/foreman-tasks-11.0.0/app/lib/actions/middleware/keep_current_timezone.rb:15:in `block in run'
75a11d32 | /usr/share/gems/gems/foreman-tasks-11.0.0/app/lib/actions/middleware/keep_current_timezone.rb:44:in `restore_curent_timezone'
75a11d32 | /usr/share/gems/gems/foreman-tasks-11.0.0/app/lib/actions/middleware/keep_current_timezone.rb:15:in `run'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware/stack.rb:24:in `call'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware/stack.rb:28:in `pass'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware.rb:20:in `pass'
75a11d32 | /usr/share/gems/gems/foreman-tasks-11.0.0/app/lib/actions/middleware/keep_current_taxonomies.rb:15:in `block in run'
75a11d32 | /usr/share/gems/gems/foreman-tasks-11.0.0/app/lib/actions/middleware/keep_current_taxonomies.rb:45:in `restore_current_taxonomies'
75a11d32 | /usr/share/gems/gems/foreman-tasks-11.0.0/app/lib/actions/middleware/keep_current_taxonomies.rb:15:in `run'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware/stack.rb:24:in `call'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware/stack.rb:28:in `pass'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware.rb:20:in `pass'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware.rb:33:in `run'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware/stack.rb:24:in `call'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware/stack.rb:28:in `pass'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware.rb:20:in `pass'
75a11d32 | /usr/share/gems/gems/foreman-tasks-11.0.0/app/lib/actions/middleware/keep_current_user.rb:15:in `block in run'
75a11d32 | /usr/share/gems/gems/foreman-tasks-11.0.0/app/lib/actions/middleware/keep_current_user.rb:54:in `restore_curent_user'
75a11d32 | /usr/share/gems/gems/foreman-tasks-11.0.0/app/lib/actions/middleware/keep_current_user.rb:15:in `run'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware/stack.rb:24:in `call'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/middleware/world.rb:31:in `execute'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/action.rb:589:in `block (2 levels) in execute_run'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/action.rb:588:in `catch'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/action.rb:588:in `block in execute_run'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/action.rb:491:in `block in with_error_handling'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/action.rb:491:in `catch'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/action.rb:491:in `with_error_handling'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/action.rb:583:in `execute_run'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/action.rb:304:in `execute'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:18:in `block (2 levels) in execute'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/execution_plan/steps/abstract.rb:168:in `with_meta_calculation'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:17:in `block in execute'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:32:in `open_action'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:16:in `execute'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/director.rb:95:in `execute'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/executors/sidekiq/worker_jobs.rb:12:in `block (2 levels) in perform'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/executors.rb:18:in `run_user_code'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/executors/sidekiq/worker_jobs.rb:10:in `block in perform'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/executors/sidekiq/worker_jobs.rb:26:in `with_telemetry'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/executors/sidekiq/worker_jobs.rb:9:in `perform'
75a11d32 | /usr/share/gems/gems/dynflow-1.9.1/lib/dynflow/executors/sidekiq/serialization.rb:28:in `perform'
75a11d32 | [ sidekiq ]
75a11d32 | [ concurrent-ruby ]