Unable to upload larger RPMs to repository

Problem:
I’m not able to upload larger RPM’s (133 MB) to a repository. I have tried both via the Katello WebUI and via hammer repository upload-content. I have tried with smaller RPM’s (A few MB’s) and they work as expected.

Expected outcome:
Being able to upload larger RPM’s to repositories.

Foreman and Proxy versions:
Foreman 3.4.0 & Katello 4.6.0

Distribution and version:
RHEL 8

Other relevant data:
Error message from Katello WebUI.

Error during upload: Task 55c55b9d-ebce-4268-aac9-93a238c1852a: Katello::Errors::Pulp3Error: _PyEval_EvalFrameDefault returned a result with an error set

Error message from Hammer repository upload-content.

hammer -u foreman -p $PASS repository upload-content --name "homemade-packets" --product-id "2" --path ./g-14.5.0-3.noarch.rpm --organization-label "Default_Organization"
[......................................................................................................................................................................................] [100%]
Error: _PyEval_EvalFrameDefault returned a result with an error set
Successfully uploaded file g-14.5.0-3.noarch.rpm

Relevant logs from production.log

2022-12-06T11:00:00 [I|app|59fc5e67] Started PUT "/katello/api/repositories/28/import_uploads" for 10.X.X.X at 2022-12-06 11:00:00 +0100
2022-12-06T11:00:00 [I|app|59fc5e67] Processing by Katello::Api::V2::RepositoriesController#import_uploads as JSON
2022-12-06T11:00:00 [I|app|59fc5e67]   Parameters: {"uploads"=>[{"id"=>"23d26c50-ccc7-49e2-b080-7d55f718792a", "content_unit_id"=>nil, "name"=>"g-14.5.0-3.noarch.rpm", "size"=>139258916, "checksum"=>"19750cb3e5b1fd864cc4fbe062edb20f3a0636850a34e7bebb0b621e95b85115"}], "publish_repository"=>true, "sync_capsule"=>true, "async"=>true, "api_version"=>"v2", "id"=>"28", "repository"=>{}}
2022-12-06T11:00:00 [I|app|59fc5e67] Authorized user sa_foreman(sa_foreman )
2022-12-06T11:00:00 [I|bac|59fc5e67] Task {label: , execution_plan_id: 14c8a299-74f2-4658-aea3-f49b73c9dedb} state changed: pending 
2022-12-06T11:00:00 [I|bac|59fc5e67] Task {label: Actions::Katello::Repository::ImportUpload, id: 302858f7-92ae-4a64-af6a-c826a3c3136c, execution_plan_id: 14c8a299-74f2-4658-aea3-f49b73c9dedb} state changed: planning 
2022-12-06T11:00:00 [I|bac|59fc5e67] Task {label: Actions::Katello::Repository::ImportUpload, id: 302858f7-92ae-4a64-af6a-c826a3c3136c, execution_plan_id: 14c8a299-74f2-4658-aea3-f49b73c9dedb} state changed: planned 
2022-12-06T11:00:00 [I|bac|59fc5e67] Task {label: Actions::Katello::Repository::ImportUpload, id: 302858f7-92ae-4a64-af6a-c826a3c3136c, execution_plan_id: 14c8a299-74f2-4658-aea3-f49b73c9dedb} state changed: running 
2022-12-06T11:00:00 [I|app|59fc5e67]   Rendered /usr/share/gems/gems/katello-4.6.0/app/views/katello/api/v2/common/async.json.rabl within katello/api/v2/layouts/resource (Duration: 13.2ms | Allocations: 10672)
2022-12-06T11:00:00 [I|app|59fc5e67]   Rendered layout /usr/share/gems/gems/katello-4.6.0/app/views/katello/api/v2/layouts/resource.json.erb (Duration: 15.0ms | Allocations: 13230)
2022-12-06T11:00:00 [I|app|59fc5e67] Completed 202 Accepted in 644ms (Views: 17.6ms | ActiveRecord: 129.4ms | Allocations: 154353)
2022-12-06T11:00:01 [E|bac|59fc5e67] _PyEval_EvalFrameDefault returned a result with an error set (Katello::Errors::Pulp3Error)
 59fc5e67 | /usr/share/gems/gems/katello-4.6.0/app/lib/actions/pulp3/abstract_async_task.rb:108:in `block in check_for_errors'
 59fc5e67 | /usr/share/gems/gems/katello-4.6.0/app/lib/actions/pulp3/abstract_async_task.rb:106:in `each'
 59fc5e67 | /usr/share/gems/gems/katello-4.6.0/app/lib/actions/pulp3/abstract_async_task.rb:106:in `check_for_errors'
 59fc5e67 | /usr/share/gems/gems/katello-4.6.0/app/lib/actions/pulp3/abstract_async_task.rb:160:in `poll_external_task'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/action/polling.rb:100:in `poll_external_task_with_rescue'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/action/polling.rb:22:in `run'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/action/cancellable.rb:14:in `run'
 59fc5e67 | /usr/share/gems/gems/katello-4.6.0/app/lib/actions/pulp3/abstract_async_task.rb:10:in `run'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/action.rb:582:in `block (3 levels) in execute_run'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware/stack.rb:27:in `pass'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware.rb:19:in `pass'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware.rb:32:in `run'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware/stack.rb:23:in `call'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware/stack.rb:27:in `pass'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware.rb:19:in `pass'
 59fc5e67 | /usr/share/gems/gems/katello-4.6.0/app/lib/actions/middleware/remote_action.rb:16:in `block in run'
 59fc5e67 | /usr/share/gems/gems/katello-4.6.0/app/lib/actions/middleware/remote_action.rb:40:in `block in as_remote_user'
 59fc5e67 | /usr/share/gems/gems/katello-4.6.0/app/models/katello/concerns/user_extensions.rb:21:in `cp_config'
 59fc5e67 | /usr/share/gems/gems/katello-4.6.0/app/lib/actions/middleware/remote_action.rb:27:in `as_cp_user'
 59fc5e67 | /usr/share/gems/gems/katello-4.6.0/app/lib/actions/middleware/remote_action.rb:39:in `as_remote_user'
 59fc5e67 | /usr/share/gems/gems/katello-4.6.0/app/lib/actions/middleware/remote_action.rb:16:in `run'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware/stack.rb:23:in `call'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware/stack.rb:27:in `pass'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware.rb:19:in `pass'
 59fc5e67 | /usr/share/gems/gems/foreman-tasks-7.0.0/app/lib/actions/middleware/rails_executor_wrap.rb:14:in `block in run'
 59fc5e67 | /usr/share/gems/gems/activesupport-6.1.6.1/lib/active_support/execution_wrapper.rb:91:in `wrap'
 59fc5e67 | /usr/share/gems/gems/foreman-tasks-7.0.0/app/lib/actions/middleware/rails_executor_wrap.rb:13:in `run'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware/stack.rb:23:in `call'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware/stack.rb:27:in `pass'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware.rb:19:in `pass'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/action/progress.rb:31:in `with_progress_calculation'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/action/progress.rb:17:in `run'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware/stack.rb:23:in `call'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware/stack.rb:27:in `pass'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware.rb:19:in `pass'
 59fc5e67 | /usr/share/gems/gems/foreman-tasks-7.0.0/app/lib/actions/middleware/load_setting_values.rb:20:in `run'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware/stack.rb:23:in `call'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware/stack.rb:27:in `pass'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware.rb:19:in `pass'
 59fc5e67 | /usr/share/gems/gems/foreman-tasks-7.0.0/app/lib/actions/middleware/keep_current_request_id.rb:15:in `block in run'
 59fc5e67 | /usr/share/gems/gems/foreman-tasks-7.0.0/app/lib/actions/middleware/keep_current_request_id.rb:52:in `restore_current_request_id'
 59fc5e67 | /usr/share/gems/gems/foreman-tasks-7.0.0/app/lib/actions/middleware/keep_current_request_id.rb:15:in `run'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware/stack.rb:23:in `call'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware/stack.rb:27:in `pass'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware.rb:19:in `pass'
 59fc5e67 | /usr/share/gems/gems/foreman-tasks-7.0.0/app/lib/actions/middleware/keep_current_timezone.rb:15:in `block in run'
 59fc5e67 | /usr/share/gems/gems/foreman-tasks-7.0.0/app/lib/actions/middleware/keep_current_timezone.rb:44:in `restore_curent_timezone'
 59fc5e67 | /usr/share/gems/gems/foreman-tasks-7.0.0/app/lib/actions/middleware/keep_current_timezone.rb:15:in `run'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware/stack.rb:23:in `call'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware/stack.rb:27:in `pass'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware.rb:19:in `pass'
 59fc5e67 | /usr/share/gems/gems/foreman-tasks-7.0.0/app/lib/actions/middleware/keep_current_taxonomies.rb:15:in `block in run'
 59fc5e67 | /usr/share/gems/gems/foreman-tasks-7.0.0/app/lib/actions/middleware/keep_current_taxonomies.rb:45:in `restore_current_taxonomies'
 59fc5e67 | /usr/share/gems/gems/foreman-tasks-7.0.0/app/lib/actions/middleware/keep_current_taxonomies.rb:15:in `run'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware/stack.rb:23:in `call'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware/stack.rb:27:in `pass'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware.rb:19:in `pass'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware.rb:32:in `run'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware/stack.rb:23:in `call'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware/stack.rb:27:in `pass'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware.rb:19:in `pass'
 59fc5e67 | /usr/share/gems/gems/foreman-tasks-7.0.0/app/lib/actions/middleware/keep_current_user.rb:15:in `block in run'
 59fc5e67 | /usr/share/gems/gems/foreman-tasks-7.0.0/app/lib/actions/middleware/keep_current_user.rb:54:in `restore_curent_user'
 59fc5e67 | /usr/share/gems/gems/foreman-tasks-7.0.0/app/lib/actions/middleware/keep_current_user.rb:15:in `run'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware/stack.rb:23:in `call'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/middleware/world.rb:31:in `execute'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/action.rb:581:in `block (2 levels) in execute_run'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/action.rb:580:in `catch'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/action.rb:580:in `block in execute_run'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/action.rb:483:in `block in with_error_handling'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/action.rb:483:in `catch'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/action.rb:483:in `with_error_handling'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/action.rb:575:in `execute_run'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/action.rb:296:in `execute'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:18:in `block (2 levels) in execute'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/execution_plan/steps/abstract.rb:167:in `with_meta_calculation'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:17:in `block in execute'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:32:in `open_action'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:16:in `execute'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/director.rb:94:in `execute'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/executors/sidekiq/worker_jobs.rb:11:in `block (2 levels) in perform'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/executors.rb:18:in `run_user_code'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/executors/sidekiq/worker_jobs.rb:9:in `block in perform'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/executors/sidekiq/worker_jobs.rb:25:in `with_telemetry'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/executors/sidekiq/worker_jobs.rb:8:in `perform'
 59fc5e67 | /usr/share/gems/gems/dynflow-1.6.7/lib/dynflow/executors/sidekiq/serialization.rb:27:in `perform'
 59fc5e67 | [ sidekiq ]
 59fc5e67 | [ concurrent-ruby ]
2022-12-06T11:00:04 [I|aud|59fc5e67] Katello::Repository (28) update event on publication_href /pulp/api/v3/publications/rpm/rpm/58206f0d-2c15-4173-a32e-56cdaf717a79/, /pulp/api/v3/publications/rpm/rpm/dd871231-9b16-4127-a422-76b7871a77b7/
2022-12-06T11:00:05 [I|bac|59fc5e67] Task {label: Actions::Katello::Repository::ImportUpload, id: 302858f7-92ae-4a64-af6a-c826a3c3136c, execution_plan_id: 14c8a299-74f2-4658-aea3-f49b73c9dedb} state changed: stopped  result: warning

Is there any way for us to access the 133MB rpm to debug it?
Thanks.

Your question made me try to re-upload an earlier version of the same package and that one worked without issue, so that means that something is corrupt with the new RPM-package and therefore not an issue of foreman.

I believe we don’t have to investigate this further. Thank you!

Glad you solved the puzzle!