[Satellite 6] Content-view publish failing with error: "PLP0000: /var/lib/pulp/published/yum/http/repos/xxx/os exists, but should be a symlink. Cannot find published directory."

Solution Verified - Updated -

Environment

  • Red Hat Satellite v 6.x

Issue

  • Content-View publish failing for some repositories with error:
PLP0000: /var/lib/pulp/published/yum/http/repos/xxx/Library/content/dist/rhel/server/xxx/os exists, but should be a symlink.  Cannot find published directory.
  • Cannot publish a new version of content-view

Resolution

  • Identify the affected repositories on the Satellite:
      # hammer repository list --organization <org name>  
  • Using hammer command to validate content on the Satellite:
      # hammer repository synchronize --id <ID> --validate-contents yes

Note:This will force a sync on the repository and create the missing symlinks to the rpms on the filesystem if missing.

  • Once this completes you may resume publishing and promoting your content views.

Diagnostic Steps

  • /var/log/foreman/production.log:
[foreman-tasks/action] [E] PLP0000: /var/lib/pulp/published/yum/http/repos/xxx/Library/content/dist/rhel/server/xxx/os exists, but should be a symlink.  Cannot find published directory. (Katello::Errors::PulpError)
 | /opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.0.0.163/app/lib/actions/pulp/abstract_async_task.rb:121:in `block in external_task='
 | /opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.0.0.163/app/lib/actions/pulp/abstract_async_task.rb:119:in `each'
 | /opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.0.0.163/app/lib/actions/pulp/abstract_async_task.rb:119:in `external_task='
 | /opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-0.8.13.6/lib/dynflow/action/polling.rb:98:in `poll_external_task_with_rescue'
 | /opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-0.8.13.6/lib/dynflow/action/polling.rb:21:in `run'
/lib/concurrent/executor/ruby_thread_pool_executor.rb:322:in `block (3 levels) in create_worker'
 | /opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-1.0.0/lib/concurrent/executor/ruby_thread_pool_executor.rb:305:in `loop'
 | /opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-1.0.0/lib/concurrent/executor/ruby_thread_pool_executor.rb:305:in `block (2 levels) in create_worker'
 | /opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-1.0.0/lib/concurrent/executor/ruby_thread_pool_executor.rb:304:in `catch'
 | /opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-1.0.0/lib/concurrent/executor/ruby_thread_pool_executor.rb:304:in `block in create_worker'
 | /opt/theforeman/tfm/root/usr/share/gems/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `call'
 | /opt/theforeman/tfm/root/usr/share/gems/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `block in create_with_logging_context'

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.