Failed upgrade from 14.04 to 16.04 : package sysv-rc 2.88dsf-59.3ubuntu2 failed to install/upgrade: subprocess installed post-installation script returned error exit status 1

Bug #1610241 reported by Mossroy on 2016-08-05
78
This bug affects 15 people
Affects Status Importance Assigned to Milestone
One Hundred Papercuts
Critical
Unassigned
sysvinit (Ubuntu)
Critical
Unassigned
Nominated for Xenial by Alberto Salvia Novella
update-manager (Ubuntu)
Critical
Unassigned
Nominated for Xenial by Alberto Salvia Novella
virtuoso-opensource (Ubuntu)
Critical
Unassigned
Nominated for Xenial by Alberto Salvia Novella

Bug Description

This happened on an computer that was installed many years ago, and upgraded on each LTS version.
When upgrading from 14.04 to 16.04.1, it started telling me that something wrong happened with sysv-rc, then that there were some "initscripts dependency problems" making it "leaving unconfigured".
Then many packages were reported as incorrectly setup : procps, udev, initramfs, keyboard-configuration, console-setup, plymouth, cups, upower, gnome-session, gnome-shell, udisk, gvfs, software-center, mountall, upstart, etc.

After reading the log files, I found out that this was caused by insserv, reporting "insserv rejected the script header", coming from package virtuoso-nepomuk having an incorrect header in /etc/init.d : "missing end of LSB comment", "missing LSB tags and overrides".
This package http://packages.ubuntu.com/precise/database/virtuoso-nepomuk was existing on 12.04, but was removed afterwards.
The latest version 6.1.4+dfsg1-0ubuntu1 indeed contains an incorrect header in /etc/init.d/virtuoso-nepomuk.

I managed to solve the issue by adding the "END INIT INFO" in this file, like below :

#! /bin/sh
#
# virtuoso OpenLink Virtuoso Open-Source Edition
#
# Written by OpenLink Virtuoso Maintainer
# <email address hidden>
#
# Version: @(#)virtuoso 6.1.4 25-Mar-2011 <email address hidden>
#

### BEGIN INIT INFO
# Provides: virtuoso
# Required-Start: $syslog
# Required-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start Virtuoso database server on startup
# Description: Start and stop the primary instance of Virtuoso running
# in /var/lib/virtuoso/db/. The first time this runs, it loads the
# Conductor administrative package.
### END INIT INFO

Then a "sudo apt-get upgrade" allowed me to finish the installation successfully.

ProblemType: Package
DistroRelease: Ubuntu 16.04
Package: sysv-rc 2.88dsf-59.3ubuntu2
ProcVersionSignature: Ubuntu 4.4.0-31.50-generic 4.4.13
Uname: Linux 4.4.0-31-generic i686
NonfreeKernelModules: nvidia_uvm nvidia
ApportVersion: 2.20.1-0ubuntu2.1
Architecture: i386
Date: Fri Aug 5 11:21:42 2016
ErrorMessage: subprocess installed post-installation script returned error exit status 1
InstallationDate: Installed on 2010-05-22 (2267 days ago)
InstallationMedia: Ubuntu 10.04 LTS "Lucid Lynx" - Release i386 (20100429)
PackageArchitecture: all
RelatedPackageVersions:
 dpkg 1.18.4ubuntu1.1
 apt 1.2.12~ubuntu16.04.1
SourcePackage: sysvinit
Title: package sysv-rc 2.88dsf-59.3ubuntu2 failed to install/upgrade: subprocess installed post-installation script returned error exit status 1
UpgradeStatus: Upgraded to xenial on 2016-08-05 (0 days ago)

Mossroy (mossroy) wrote :
tags: removed: need-duplicate-check
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in sysvinit (Ubuntu):
status: New → Confirmed
Changed in sysvinit (Ubuntu):
importance: Undecided → Critical
Changed in hundredpapercuts:
status: New → Confirmed
importance: Undecided → Critical
Mossroy (mossroy) wrote :

A simple way to fix this would be to deploy a newer version of virtuoso-nepomuk for Trusty (or for Xenial, depending on the order of upgrades), with a fixed content in /etc/init.d/virtuoso-nepomuk (the only necessary change is to add the "### END INIT INFO" line).

Another approach would be to be more flexible when reading the /etc/init.d/* files, and assume the "### END INIT INFO" line at the end of the comment lines started by "### BEGIN INIT INFO", if this end line is not there. That would allow to handle this issue on other packages that might be in the same case. I would find that much cleaner, but it might be a bit more difficult.

A completely different approach would be to check the /etc/init.d/* files before starting the upgrade, and prevent the user from starting the upgrade if a non-compliant file is found. Ideally, it would also tell him which package causes the issue, and suggest to remove it.

In any case, leaving an end-user with a half-upgraded system like that is VERY bad.

Second option will break (https://refspecs.linuxbase.org/LSB_3.0.0/LSB-PDA/LSB-PDA/initscrcomconv.html).

I would implement the other two.

Changed in virtuoso-opensource (Ubuntu):
status: New → Confirmed
importance: Undecided → Critical
Changed in update-manager (Ubuntu):
status: New → Confirmed
importance: Undecided → Critical
Changed in sysvinit (Ubuntu):
status: Confirmed → Invalid
Changed in hundredpapercuts:
status: Confirmed → Triaged
Changed in update-manager (Ubuntu):
status: Confirmed → Triaged
Changed in virtuoso-opensource (Ubuntu):
status: Confirmed → Triaged
abner (a75) on 2016-09-13
Changed in hundredpapercuts:
assignee: nobody → abner (a75)
Changed in sysvinit (Ubuntu):
assignee: nobody → abner (a75)
Changed in update-manager (Ubuntu):
assignee: nobody → abner (a75)
Changed in virtuoso-opensource (Ubuntu):
assignee: nobody → abner (a75)
status: Triaged → In Progress
Changed in update-manager (Ubuntu):
status: Triaged → In Progress
Changed in hundredpapercuts:
status: Triaged → Confirmed
Changed in sysvinit (Ubuntu):
status: Invalid → Fix Released
Changed in virtuoso-opensource (Ubuntu):
status: In Progress → Confirmed
Changed in virtuoso-opensource (Ubuntu):
status: Confirmed → In Progress
Changed in sysvinit (Ubuntu):
status: Fix Released → Invalid
Changed in update-manager (Ubuntu):
status: In Progress → Invalid
Changed in virtuoso-opensource (Ubuntu):
status: In Progress → Triaged
Changed in hundredpapercuts:
status: Confirmed → Triaged
assignee: abner (a75) → nobody
Changed in sysvinit (Ubuntu):
assignee: abner (a75) → nobody
Changed in update-manager (Ubuntu):
assignee: abner (a75) → nobody
Changed in virtuoso-opensource (Ubuntu):
assignee: abner (a75) → nobody
Philippe Coval (rzr) wrote :

Renaming the file helped to finish the installation

/etc/init.d/virtuoso-nepomuk.bak

m1fcj (hakan-koseoglu) wrote :

Absolute hero. After so many months this was filed, I cannot believe I'm still hitting it whilst upgrading my LTS.

Norbert (nrbrtx) wrote :

Got this bug durin upgrade from 12.04 -> 14.04 -> 16.04 on stage 14.04 -> 16.04.

tags: removed: i386
Tracy Cann (tracycann) wrote :

Can anyone following this bug help me fix my computer. See bug 655738. I would rather pursue the fix the error and finish the upgrade route. But I need step by step directions. Thanks.

Tracy Cann (tracycann) wrote :

Bug 655738 isn't right. Here is the link to the bug or question I submitted.
https://answers.launchpad.net/ubuntu/+question/655738

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers