Symptoms
- Unable to install Plesk updates on Ubuntu 14.04 or Ubuntu 16.04. The following error is displayed in the Plesk interface:
PLESK_ERROR: E: dpkg was interrupted, you must manually run ‘dpkg –configure -a’ to correct the problem.
-
The following explanation can be found in
/var/log/plesk/systemupdatestool.log
# cat /var/log/plesk/systemupdatestool.log | tail -n3
2017-04-02 06:22:15 INFO: pum is called with arguments: [‘–list’, ‘–repo-info’, ‘–json’]
2017-04-02 06:22:15 ERROR: Previous Plesk installer call finished unsuccessfully. PUM will not perform any update operations until Plesk installation is fixed.
2017-04-02 06:22:15 ERROR: Exited with returncode 50. -
dpkg --configure -a
command hangs at restarting AppArmor and after that server reboot is required:Setting up apparmor (2.10.95-0ubuntu2.6) ...
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
Cause
Bug in the Ubuntu Kernel which was resolved in the kernel version 4.4.0-38.57
#1579135:Â AppArmor profile reloading causes an intermittent kernel BUG
Resolution
Warning: We strongly recommend to backup the whole server before applying the steps below. If your Plesk is running inside a virtual container, contact your service provider to create a backup and in order to verify if the kernel version is supported.
- Make sure that error is the same as in symptoms.
- Log in to the server via SSH.
- Temporarily remove AppArmor post-install scripts in order to prevent AppArmor from reloading:
# mv /var/lib/dpkg/info/apparmor.postinst ~/
# mv /var/lib/dpkg/info/apparmor-profiles.postinst ~/ - Disable AppArmor:
# service apparmor stop
# service apparmor teardown
# update-rc.d -f apparmor remove - Run
to fix the initial error:
dpkg --configure -a
# dpkg –configure -a
- Upgrade Ubuntu kernel to version 4.4.0-38.57 or newer and reboot the server. For example, for version 4.4.0-72:
# apt update
# apt install linux-image-4.4.0-72-generic
# sudo reboot - Move back AppArmor post-install scripts and reconfigure apparmor-profiles package:
# mv ~/apparmor.postinst /var/lib/dpkg/info/
# mv ~/apparmor-profiles.postinst /var/lib/dpkg/info/
# dpkg-reconfigure apparmor
# dpkg-reconfigure apparmor-profiles - Start AppArmor:
# service apparmor start