Bug 1129424

Summary: ISO Repo: unable to successfully sync
Product: Red Hat Satellite Reporter: Brad Buckingham <bbuckingham>
Component: Content ManagementAssignee: Brad Buckingham <bbuckingham>
Status: CLOSED CURRENTRELEASE QA Contact: sthirugn <sthirugn>
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.0.4CC: daviddavis, jdexter, jmontleo, mmccune, omaciel, sthirugn, xdmoon
Target Milestone: UnspecifiedKeywords: Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
URL: http://projects.theforeman.org/issues/7110
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-09-11 12:24:31 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 Brad Buckingham 2014-08-12 17:46:41 UTC
Description of problem:

Unable to successfully sync an ISO repository.

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

How reproducible:
Always (for me)

Steps to Reproduce:
1. import manifest
2. enable an ISO repo (e.g. Red Hat Enterprise Linux 6 Server ISOs x86_64 6Server)
3. sync the repo (e.g. Content -> Sync Status)

Actual results:

The sync fails indicating 'Sync Incomplete'.

From dynflow, an error is shown during:

Run: Step 6: Actions::Pulp::Repository::DistributorPublish 

Expected results:

The sync to complete successfully.

Additional info:

This issue was observed while testing out the fix in katello PR: https://github.com/Katello/katello/pull/4554

The full dynflow at the failed step looks like:

Started at: 2014-08-12 12:54:55 -0400

Ended at: 2014-08-12 12:54:55 -0400

Real time: 0.03s

Execution time (excluding suspended state): 0.03s

Input:

---
pulp_id: Default_Organization-Red_Hat_Enterprise_Linux_Server-Red_Hat_Enterprise_Linux_6_Server_ISOs_x86_64_6Server
dependency:
- exception: 
  task_type: pulp.server.tasks.repository.sync_with_auto_publish
  _href: /pulp/api/v2/tasks/c05a7856-ae8d-4746-9c13-d7cce78a7b2a/
  task_id: c05a7856-ae8d-4746-9c13-d7cce78a7b2a
  tags:
  - pulp:repository:Default_Organization-Red_Hat_Enterprise_Linux_Server-Red_Hat_Enterprise_Linux_6_Server_ISOs_x86_64_6Server
  - pulp:action:sync
  finish_time: '2014-08-12T16:54:53Z'
  _ns: task_status
  start_time: '2014-08-12T16:54:52Z'
  traceback: 
  spawned_tasks:
  - _href: /pulp/api/v2/tasks/db7d93a2-165b-4ea7-80ae-f872148513df/
    task_id: db7d93a2-165b-4ea7-80ae-f872148513df
  progress_report:
    iso_importer:
      total_bytes: 11534336000
      traceback: 
      error_message: 
      finished_bytes: 11534336000
      num_isos: 3
      state: complete
      iso_error_messages: []
      num_isos_finished: 3
      state_times:
        not_started: '2014-08-12T14:28:06'
        manifest_in_progress: '2014-08-12T14:28:06'
        complete: '2014-08-12T16:54:52'
        isos_in_progress: '2014-08-12T14:28:07'
  queue: reserved_resource_worker-3.dq
  state: finished
  result:
    importer_type_id: iso_importer
    importer_id: iso_importer
    exception: 
    repo_id: Default_Organization-Red_Hat_Enterprise_Linux_Server-Red_Hat_Enterprise_Linux_6_Server_ISOs_x86_64_6Server
    removed_count: 0
    started: '2014-08-12T10:28:06-04:00'
    _ns: repo_sync_results
    completed: '2014-08-12T12:54:52-04:00'
    traceback: 
    summary:
      error_message: 
      traceback: 
      finished_bytes: 11534336000
      num_isos: 3
      state: complete
      iso_error_messages: []
      state_times:
        not_started: '2014-08-12T14:28:06'
        manifest_in_progress: '2014-08-12T14:28:06'
        complete: '2014-08-12T16:54:52'
        isos_in_progress: '2014-08-12T14:28:07'
      num_isos_finished: 3
      total_bytes: 11534336000
    added_count: 3
    error_message: 
    updated_count: 0
    details: 
    id: 53ea46dccf07f519d214aeb3
    result: success
  error: 
  _id:
    $oid: 53ea2476c803e95c3c35e8ff
  id: 53ea2476cf07f51925118282
- exception: 
  task_type: pulp.server.managers.repo.publish.publish
  _href: /pulp/api/v2/tasks/db7d93a2-165b-4ea7-80ae-f872148513df/
  task_id: db7d93a2-165b-4ea7-80ae-f872148513df
  tags:
  - pulp:repository:Default_Organization-Red_Hat_Enterprise_Linux_Server-Red_Hat_Enterprise_Linux_6_Server_ISOs_x86_64_6Server
  - pulp:action:publish
  finish_time: '2014-08-12T16:54:53Z'
  _ns: task_status
  start_time: '2014-08-12T16:54:53Z'
  traceback: 
  spawned_tasks: []
  progress_report:
    adf18495-7058-44f5-b482-5a91b30c810f:
      state: complete
      error_message: 
      traceback: 
      state_times:
        not_started: '2014-08-12T16:54:53'
        in_progress: '2014-08-12T16:54:53'
        complete: '2014-08-12T16:54:53'
  queue: reserved_resource_worker-3.dq
  state: finished
  result:
    exception: 
    repo_id: Default_Organization-Red_Hat_Enterprise_Linux_Server-Red_Hat_Enterprise_Linux_6_Server_ISOs_x86_64_6Server
    started: '2014-08-12T12:54:53-04:00'
    _ns: repo_publish_results
    completed: '2014-08-12T12:54:53-04:00'
    traceback: 
    distributor_type_id: iso_distributor
    summary:
      state_times:
        not_started: '2014-08-12T16:54:53'
        in_progress: '2014-08-12T16:54:53'
        complete: '2014-08-12T16:54:53'
      state: complete
      error_message: 
      traceback: 
    error_message: 
    details: 
    distributor_id: adf18495-7058-44f5-b482-5a91b30c810f
    id: 53ea46ddcf07f519d214aeb6
    result: success
  error: 
  _id:
    $oid: 53ea46ddc803e95c3c35e938
  id: 53ea46ddcf07f519d214aeb4
distributor_type_id: nodes_http_distributor
remote_user: admin-4faca49f
locale: en
Output:

--- {}
Error:

NoMethodError

undefined method `[]' for nil:NilClass

---
- /home/bbucking/github/katello/app/lib/actions/pulp/repository/distributor_publish.rb:35:in
  `distributor_id'
- /home/bbucking/github/katello/app/lib/actions/pulp/repository/distributor_publish.rb:27:in
  `invoke_external_task'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/action/polling.rb:70:in
  `initiate_external_action'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/action/polling.rb:12:in
  `run'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/action/cancellable.rb:9:in
  `run'
- /home/bbucking/github/katello/app/lib/actions/pulp/abstract_async_task.rb:57:in
  `run'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/action.rb:443:in
  `block (3 levels) in execute_run'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/middleware/stack.rb:26:in
  `call'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/middleware/stack.rb:26:in
  `pass'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/middleware.rb:16:in
  `pass'
- /home/bbucking/github/katello/app/lib/actions/middleware/remote_action.rb:25:in
  `block in run'
- /home/bbucking/github/katello/app/lib/actions/middleware/remote_action.rb:51:in
  `block (2 levels) in as_remote_user'
- /home/bbucking/github/katello/app/lib/katello/util/thread_session.rb:85:in `set_pulp_config'
- /home/bbucking/github/katello/app/lib/actions/middleware/remote_action.rb:41:in
  `as_pulp_user'
- /home/bbucking/github/katello/app/lib/actions/middleware/remote_action.rb:50:in
  `block in as_remote_user'
- /home/bbucking/github/katello/app/lib/katello/util/thread_session.rb:92:in `set_cp_config'
- /home/bbucking/github/katello/app/lib/actions/middleware/remote_action.rb:36:in
  `as_cp_user'
- /home/bbucking/github/katello/app/lib/actions/middleware/remote_action.rb:49:in
  `as_remote_user'
- /home/bbucking/github/katello/app/lib/actions/middleware/remote_action.rb:25:in
  `run'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/middleware/stack.rb:22:in
  `call'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/middleware/stack.rb:26:in
  `pass'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/middleware.rb:16:in
  `pass'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/action/progress.rb:30:in
  `with_progress_calculation'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/action/progress.rb:16:in
  `run'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/middleware/stack.rb:22:in
  `call'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/middleware/stack.rb:26:in
  `pass'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/middleware.rb:16:in
  `pass'
- /home/bbucking/github/katello/app/lib/actions/middleware/keep_locale.rb:24:in `block
  in run'
- /home/bbucking/github/katello/app/lib/actions/middleware/keep_locale.rb:35:in `with_locale'
- /home/bbucking/github/katello/app/lib/actions/middleware/keep_locale.rb:24:in `run'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/middleware/stack.rb:22:in
  `call'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/middleware/world.rb:30:in
  `execute'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/action.rb:442:in
  `block (2 levels) in execute_run'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/action.rb:441:in
  `catch'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/action.rb:441:in
  `block in execute_run'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/action.rb:365:in
  `call'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/action.rb:365:in
  `block in with_error_handling'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/action.rb:365:in
  `catch'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/action.rb:365:in
  `with_error_handling'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/action.rb:436:in
  `execute_run'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/action.rb:230:in
  `execute'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:9:in
  `block (2 levels) in execute'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/execution_plan/steps/abstract.rb:152:in
  `call'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/execution_plan/steps/abstract.rb:152:in
  `with_meta_calculation'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:8:in
  `block in execute'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:22:in
  `open_action'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:7:in
  `execute'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/executors/parallel/worker.rb:20:in
  `block in on_message'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/algebrick-0.4.0/lib/algebrick.rb:859:in
  `block in assigns'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/algebrick-0.4.0/lib/algebrick.rb:858:in
  `tap'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/algebrick-0.4.0/lib/algebrick.rb:858:in
  `assigns'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/algebrick-0.4.0/lib/algebrick.rb:138:in
  `match_value'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/algebrick-0.4.0/lib/algebrick.rb:116:in
  `block in match'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/algebrick-0.4.0/lib/algebrick.rb:115:in
  `each'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/algebrick-0.4.0/lib/algebrick.rb:115:in
  `match'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/executors/parallel/worker.rb:17:in
  `on_message'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/micro_actor.rb:82:in
  `on_envelope'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/micro_actor.rb:72:in
  `receive'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/micro_actor.rb:99:in
  `block (2 levels) in run'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/micro_actor.rb:99:in
  `loop'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/micro_actor.rb:99:in
  `block in run'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/micro_actor.rb:99:in
  `catch'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/micro_actor.rb:99:in
  `run'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/dynflow-0.7.2/lib/dynflow/micro_actor.rb:13:in
  `block in initialize'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in
  `call'
- /home/bbucking/.rvm/gems/ruby-1.9.3-p448@fortello/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in
  `block in create_with_logging_context'

Comment 3 David Davis 2014-08-12 19:14:01 UTC
*** Bug 1129432 has been marked as a duplicate of this bug. ***

Comment 4 Brad Buckingham 2014-08-15 16:03:14 UTC
The error that is occuring during the sync is related to the fact that ISO repos (file type) are not associated with a 'node distributor', which is used to support distributing content to the capsule.  Based on discussion in IRC with Justin and Mike, we don't really feel it makes sense to distribute ISOs to the capsules; therefore, in order to fix this bug, will skip the node metadata generation for ISO repos.

Comment 5 Brad Buckingham 2014-08-15 16:23:21 UTC
Created redmine issue http://projects.theforeman.org/issues/7110 from this bug

Comment 6 Brad Buckingham 2014-08-15 18:26:40 UTC
Proposed fix in Katello PR: 
   https://github.com/Katello/katello/pull/4588

Comment 9 sthirugn@redhat.com 2014-08-21 15:07:44 UTC
Verified. Successfully synced ISO repo.  But noticed two other issues and created new BZs:
https://bugzilla.redhat.com/show_bug.cgi?id=1132572
https://bugzilla.redhat.com/show_bug.cgi?id=1132576

Version Tested:
GA Snap 6 - Satellite-6.0.4-RHEL-6-20140820.1

* apr-util-ldap-1.3.9-3.el6_0.1.x86_64
* candlepin-0.9.23-1.el6_5.noarch
* candlepin-common-1.0.1-1.el6_5.noarch
* candlepin-scl-1-5.el6_4.noarch
* candlepin-scl-quartz-2.1.5-5.el6_4.noarch
* candlepin-scl-rhino-1.7R3-1.el6_4.noarch
* candlepin-scl-runtime-1-5.el6_4.noarch
* candlepin-selinux-0.9.23-1.el6_5.noarch
* candlepin-tomcat6-0.9.23-1.el6_5.noarch
* elasticsearch-0.90.10-6.el6sat.noarch
* foreman-1.6.0.41-1.el6sat.noarch
* foreman-compute-1.6.0.41-1.el6sat.noarch
* foreman-gce-1.6.0.41-1.el6sat.noarch
* foreman-libvirt-1.6.0.41-1.el6sat.noarch
* foreman-ovirt-1.6.0.41-1.el6sat.noarch
* foreman-postgresql-1.6.0.41-1.el6sat.noarch
* foreman-proxy-1.6.0.29-1.el6sat.noarch
* foreman-selinux-1.6.0.7-1.el6sat.noarch
* foreman-vmware-1.6.0.41-1.el6sat.noarch
* katello-1.5.0-29.el6sat.noarch
* katello-ca-1.0-1.noarch
* katello-certs-tools-1.5.6-1.el6sat.noarch
* katello-installer-0.0.60-1.el6sat.noarch
* openldap-2.4.23-34.el6_5.1.x86_64
* openldap-devel-2.4.23-34.el6_5.1.x86_64
* pulp-katello-0.3-3.el6sat.noarch
* pulp-nodes-common-2.4.0-0.30.beta.el6sat.noarch
* pulp-nodes-parent-2.4.0-0.30.beta.el6sat.noarch
* pulp-puppet-plugins-2.4.0-0.30.beta.el6sat.noarch
* pulp-puppet-tools-2.4.0-0.30.beta.el6sat.noarch
* pulp-rpm-plugins-2.4.0-0.30.beta.el6sat.noarch
* pulp-selinux-2.4.0-0.30.beta.el6sat.noarch
* pulp-server-2.4.0-0.30.beta.el6sat.noarch
* python-ldap-2.3.10-1.el6.x86_64
* ruby193-rubygem-net-ldap-0.3.1-3.el6sat.noarch
* ruby193-rubygem-runcible-1.1.0-2.el6sat.noarch

Comment 10 Bryan Kearney 2014-09-11 12:24:31 UTC
This was delivered with Satellite 6.0 which was released on 10 September 2014.