Katello-remove fails when interacting with any mounted filesystem

Solution In Progress - Updated -

Issue

Katello-remove doesn't deal well with mounted file systems.

root@apsrd01871:/root
# katello-remove -y

Starting removal

Stopping services

Removing RPMs

Cleaning up configuration files

Cleaning up log files
/usr/share/ruby/fileutils.rb:1433:in `rmdir': Device or resource busy - /var/log/candlepin (Errno::EBUSY)
        from /usr/share/ruby/fileutils.rb:1433:in `block in remove_dir1'
        from /usr/share/ruby/fileutils.rb:1444:in `platform_support'
        from /usr/share/ruby/fileutils.rb:1432:in `remove_dir1'
        from /usr/share/ruby/fileutils.rb:1425:in `remove'
        from /usr/share/ruby/fileutils.rb:770:in `block in remove_entry'
        from /usr/share/ruby/fileutils.rb:1481:in `postorder_traverse'
        from /usr/share/ruby/fileutils.rb:768:in `remove_entry'
        from /usr/share/ruby/fileutils.rb:626:in `block in rm_r'
        from /usr/share/ruby/fileutils.rb:622:in `each'
        from /usr/share/ruby/fileutils.rb:622:in `rm_r'
        from /sbin/katello-remove:182:in `remove'
        from /sbin/katello-remove:233:in `<main>'

You also can't run katello-remove again unless you install katello-common again.

If I umount the 3 mounted file systems then it will run.

root@apsrd01871:/
# umount /var/log/httpd
root@apsrd01871:/
# umount /var/log/candlepin
root@apsrd01871:/
# umount /var/cache/pulp
root@apsrd01871:/
# katello-remove -y

Starting removal

Stopping services

Removing RPMs

Cleaning up configuration files

Cleaning up log files

Cleaning up certs

Cleaning up content

Removing Databases and Pulp storage on Filesystem

 /var/lib/mongodb is part of a mounted filesystem, skipping. You will need to remove /var/lib/mongodb manually.

 /var/lib/pgsql is part of a mounted filesystem, skipping. You will need to remove /var/lib/pgsql manually.

 /var/lib/pulp is part of a mounted filesystem, skipping. You will need to remove /var/lib/pulp manually.

Finished
root@apsrd01871:/
#
CONTENT = [
  '/opt/puppetlabs',
  '/opt/theforeman',
  '/root/.cache/apipie_bindings',
  '/root/.hammer',
  '/usr/lib/pulp',
  '/usr/libexec/foreman-proxy',
  '/usr/share/candlepin',
  '/usr/share/foreman-installer-katello',
  '/usr/share/foreman-installer',
  '/usr/share/foreman-proxy',
  '/usr/share/foreman',
  '/usr/share/katello-installer-base',
  '/usr/share/katello',
  '/usr/share/pulp',
  '/usr/share/puppet',
  '/usr/share/qpid-tools',
  '/usr/share/qpid',
  '/usr/share/tomcat',
  '/var/cache/',
  '/var/lib/candlepin',
  '/var/lib/foreman-maintain',
  '/var/lib/foreman',
  '/var/lib/katello',
  '/var/lib/puppet',
  '/var/lib/qpidd',
  '/var/lib/tomcat',
  '/var/opt/theforeman',
  '/var/tmp/foreman-proxy'
]

CONTENT is missing /var/lib/foreman-proxy

I think it should also be able to clean up the contents of the mounted file systems.
It lists them in katello-remove:

MOUNTS = [
  '/var/lib/mongodb',
  '/var/lib/pgsql',
  '/var/lib/pulp'
]

I would think it should dynamically figure out what is mounted and just clean it out and do the right thing. I would also be okay if it wants to give me a list that I need to manually clean up, just don't fail.

Environment

Red Hat Satellite 6.5

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content