Conffile prompt for /etc/init.d/networking on update to 0.7.5ubuntu3

Bug #1181856 reported by Iain Lane
18
This bug affects 2 people
Affects Status Importance Assigned to Milestone
ifupdown (Ubuntu)
Fix Released
High
Unassigned

Bug Description

I've never modified this. In ubuntu2 it was a symlink to /lib/init/upstart-job and in ubuntu3 it became a real file again, per the new policy for shipping upstart jobs.

I got a conffile prompt for its creation (the diff showed the entire file being added).

ProblemType: Bug
DistroRelease: Ubuntu 13.10
Package: ifupdown 0.7.5ubuntu3
ProcVersionSignature: Ubuntu 3.8.0-19.29-generic 3.8.8
Uname: Linux 3.8.0-19-generic x86_64
NonfreeKernelModules: nvidia wl
ApportVersion: 2.10.1-0ubuntu1
Architecture: amd64
Date: Sun May 19 21:37:35 2013
InstallationDate: Installed on 2012-10-18 (213 days ago)
InstallationMedia: Ubuntu 12.04.1 LTS "Precise Pangolin" - Release amd64 (20120823.1)
MarkForUpload: True
SourcePackage: ifupdown
UpgradeStatus: Upgraded to saucy on 2013-01-10 (129 days ago)

Revision history for this message
Iain Lane (laney) wrote :
Revision history for this message
Launchpad Janitor (janitor) wrote :

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

Changed in ifupdown (Ubuntu):
status: New → Confirmed
Revision history for this message
Steve Langasek (vorlon) wrote :

Hi Laney,

Can you please show the full upgrade history of this package on your system (from /var/log/apt/term.log or /var/log/dpkg.log)? I didn't see this problem here; I suppose the package took a different upgrade path on your system historically, resulting in a different state of the conffile.

Changed in ifupdown (Ubuntu):
status: Confirmed → Incomplete
Revision history for this message
Steve Langasek (vorlon) wrote :

(Note that, in theory, we should be able to get all the information we need to know from /var/lib/dpkg/status... but only *before* this has been changed by dpkg as part of the upgrade to the new version.)

Revision history for this message
Iain Lane (laney) wrote :

Yep, here's the executive summary which seems to go right back to when I installed the system:

laney@iota> zgrep ifupdown dpkg.log* | sort -t : -k 2 | sed -n '1p; /upgrade/p'
dpkg.log.7.gz:2012-08-23 16:51:00 install ifupdown <none> 0.7~beta2ubuntu8
dpkg.log.7.gz:2012-10-18 11:41:42 upgrade ifupdown:amd64 0.7~beta2ubuntu8 0.7.2ubuntu2
dpkg.log.4.gz:2013-01-10 16:09:11 upgrade ifupdown:amd64 0.7.2ubuntu2 0.7.5ubuntu2
dpkg.log:2013-05-19 21:33:55 upgrade ifupdown:amd64 0.7.5ubuntu2 0.7.5ubuntu3

full grep attached too.

I didn't get this on my other system which goes like this

dpkg.log.7.gz:2012-10-07 07:32:34 install ifupdown:amd64 <none> 0.7.2ubuntu1
dpkg.log.7.gz:2012-10-10 09:46:11 upgrade ifupdown:amd64 0.7.2ubuntu1 0.7.2ubuntu2
dpkg.log.6.gz:2012-11-06 15:24:12 upgrade ifupdown:amd64 0.7.2ubuntu2 0.7.5ubuntu1
dpkg.log.5.gz:2012-12-13 09:46:56 upgrade ifupdown:amd64 0.7.5ubuntu1 0.7.5ubuntu2
dpkg.log:2013-05-20 09:16:59 upgrade ifupdown:amd64 0.7.5ubuntu2 0.7.5ubuntu3

Revision history for this message
Steve Langasek (vorlon) wrote :

Got it, thanks. So this is reproducible on a system that's continuously upgraded from precise->quantal->raring->saucy. The reason is that, in the precise->quantal upgrade, /etc/init.d/networking is taken over as a conffile from netbase, and due to an ordering difference on upgrade vs. new install, this gets stored to the conffile database with the md5sum of /lib/init/upstart-job. Thus, when removing the conffile from the system in the ifupdown preinst, dpkg views this as a "local diff" to the previous conffile version and prompts about the local change.

When the first install is from quantal or later, dpkg does *not* store the md5sum for /etc/init.d/networking -> /lib/init/upstart-job. Instead it stores the file state as 'newconffile'.

So to reproduce this in a clean raring environment, it's sufficient to run the following command:

 sudo sed -i -e'/etc.init.d.networking/ s/newconffile/ce96a6f22cc836088eef6673d853a765/' /var/lib/dpkg/status

(this is the md5sum of the precise version of /lib/init/upstart-job.)

So this is reproducible, now to figure out how to get around dpkg here.

Changed in ifupdown (Ubuntu):
importance: Undecided → Medium
status: Incomplete → Triaged
Steve Langasek (vorlon)
Changed in ifupdown (Ubuntu):
importance: Medium → High
Steve Langasek (vorlon)
Changed in ifupdown (Ubuntu):
status: Triaged → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ifupdown - 0.7.5ubuntu4

---------------
ifupdown (0.7.5ubuntu4) saucy; urgency=low

  * Due to the checkered history of /etc/init.d/networking, only remove the
    upstart-job symlink in the preinst if the dpkg status is 'newconffile',
    to avoid bogus conffile prompts on upgrade, and manually manipulate the
    new conffile into place in the postinst. LP: #1181856.
 -- Steve Langasek <email address hidden> Mon, 20 May 2013 19:05:31 +0000

Changed in ifupdown (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.