Project

General

Profile

Bug #15971

Unable to sync Docker Containers to Satellite if repository already exists

Added by Justin Sherrill almost 3 years ago. Updated about 1 year ago.

Status:
Closed
Priority:
High
Assignee:
Category:
Repositories
Target version:
Difficulty:
Triaged:
Yes
Bugzilla link:
Team Backlog:
Fixed in Releases:
Found in Releases:

Description

Cloned from https://bugzilla.redhat.com/show_bug.cgi?id=1349980
Description of problem:

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

How reproducible:
60%

Steps to Reproduce:
1. Create a new product with associated repositories from Docker Registry
2. Sync containers successfully
3. Try to resync repositories via API

Actual results:

Actions::Katello::Repository::IndexContent

Input:

{"id"=>59, "contents_changed"=>true, "current_user_id"=>3, "locale"=>"en"}

Output:

{}

Exception:

NoMethodError: undefined method `[]' for nil:NilClass

Backtrace:

/git/katello/app/models/katello/glue/pulp/repo.rb:466:in `create_docker_tag'
/git/katello/app/models/katello/glue/pulp/repo.rb:447:in `block in index_db_docker_manifests'
/git/katello/app/models/katello/glue/pulp/repo.rb:444:in `each'
/git/katello/app/models/katello/glue/pulp/repo.rb:444:in `index_db_docker_manifests'
/git/katello/app/models/katello/glue/pulp/repo.rb:849:in `index_content'
/git/katello/app/lib/actions/katello/repository/index_content.rb:16:in `run'
/git/.rvm/gems/ruby-2.2.4/gems/dynflow-0.8.11/lib/dynflow/action.rb:506:in `block (3 levels) in execute_run'
/git/.rvm/gems/ruby-2.2.4/gems/dynflow-0.8.11/lib/dynflow/middleware/stack.rb:26:in `call'
/git/.rvm/gems/ruby-2.2.4/gems/dynflow-0.8.11/lib/dynflow/middleware/stack.rb:26:in `pass'
/git/.rvm/gems/ruby-2.2.4/gems/dynflow-0.8.11/lib/dynflow/middleware.rb:17:in `pass'
/git/katello/app/lib/actions/middleware/execute_if_contents_changed.rb:5:in `run'
/git/.rvm/gems/ruby-2.2.4/gems/dynflow-0.8.11/lib/dynflow/middleware/stack.rb:22:in `call'
/git/.rvm/gems/ruby-2.2.4/gems/dynflow-0.8.11/lib/dynflow/middleware/stack.rb:26:in `pass'
/git/.rvm/gems/ruby-2.2.4/gems/dynflow-0.8.11/lib/dynflow/middleware.rb:17:in `pass'
/git/foreman-tasks/app/lib/actions/middleware/keep_current_user.rb:30:in `block in run'
/git/foreman-tasks/app/lib/actions/middleware/keep_current_user.rb:53:in `restore_curent_user'
/git/foreman-tasks/app/lib/actions/middleware/keep_current_user.rb:30:in `run'
/git/.rvm/gems/ruby-2.2.4/gems/dynflow-0.8.11/lib/dynflow/middleware/stack.rb:22:in `call'
/git/.rvm/gems/ruby-2.2.4/gems/dynflow-0.8.11/lib/dynflow/middleware/stack.rb:26:in `pass'
/git/.rvm/gems/ruby-2.2.4/gems/dynflow-0.8.11/lib/dynflow/middleware.rb:17:in `pass'
/git/.rvm/gems/ruby-2.2.4/gems/dynflow-0.8.11/lib/dynflow/action/progress.rb:30:in `with_progress_calculation'
/git/.rvm/gems/ruby-2.2.4/gems/dynflow-0.8.11/lib/dynflow/action/progress.rb:16:in `run'
/git/.rvm/gems/ruby-2.2.4/gems/dynflow-0.8.11/lib/dynflow/middleware/stack.rb:22:in `call'
/git/.rvm/gems/ruby-2.2.4/gems/dynflow-0.8.11/lib/dynflow/middleware/stack.rb:26:in `pass'
/git/.rvm/gems/ruby-2.2.4/gems/dynflow-0.8.11/lib/dynflow/middleware.rb:17:in `pass'
/git/katello/app/lib/actions/middleware/keep_locale.rb:11:in `block in run'
/git/katello/app/lib/actions/middleware/keep_locale.rb:22:in `with_locale'
/git/katello/app/lib/actions/middleware/keep_locale.rb:11:in `run'
/git/.rvm/gems/ruby-2.2.4/gems/dynflow-0.8.11/lib/dynflow/middleware/stack.rb:22:in `call'
/git/.rvm/gems/ruby-2.2.4/gems/dynflow-0.8.11/lib/dynflow/middleware/stack.rb:26:in `pass'
/git/.rvm/gems/ruby-2.2.4/gems/dynflow-0.8.11/lib/dynflow/middleware.rb:17:in `pass'
/git/.rvm/gems/ruby-2.2.4/gems/dynflow-0.8.11/lib/dynflow/middleware.rb:30:in `run'
/git/.rvm/gems/ruby-2.2.4/gems/dynflow-0.8.11/lib/dynflow/middleware/stack.rb:22:in `call'
/git/.rvm/gems/ruby-2.2.4/gems/dynflow-0.8.11/lib/dynflow/middleware/world.rb:30:in `execute'
/git/.rvm/gems/ruby-2.2.4/gems/dynflow-0.8.11/lib/dynflow/action.rb:505:in `block (2 levels) in execute_run'
/git/.rvm/gems/ruby-2.2.4/gems/dynflow-0.8.11/lib/dynflow/action.rb:504:in `catch'

Expected results:

Associated Docker repositories are properly synced without error

Additional info:

As part of QCI we have integrated syncing Docker containers to Satellite for our OpenShift deployments. I generally do not have any problems when resyncing the repositories manually from the WebUI but I do see this associated error frequently when resyncing using the API.

Associated revisions

Revision 4f30704e (diff)
Added by Justin Sherrill almost 3 years ago

Fixes #15971 - ignore docker tags that are not present (#6226)

History

#1 Updated by The Foreman Bot almost 3 years ago

  • Status changed from New to Ready For Testing
  • Pull request https://github.com/Katello/katello/pull/6226 added

#2 Updated by Justin Sherrill almost 3 years ago

  • Status changed from Ready For Testing to Closed
  • Legacy Backlogs Release (now unused) set to 162

Also available in: Atom PDF