package ubuntu-docs 12.04.6 failed to install/upgrade: symbolic link '/usr/share/help/ja/ubuntu-help/music-player-notrecognized.page' size has changed from 69 to 4

Bug #1364642 reported by Theo Scholten
256
This bug affects 31 people
Affects Status Importance Assigned to Milestone
dpkg (Ubuntu)
Confirmed
High
Unassigned
dpkg (openSUSE)
New
Undecided
Unassigned
gnome-user-docs (Ubuntu)
Confirmed
High
Unassigned
ubuntu-docs (Ubuntu)
Confirmed
High
Unassigned

Bug Description

I cannot install all updates.

ProblemType: Package
DistroRelease: Ubuntu 14.04
Package: ubuntu-docs 12.04.6
ProcVersionSignature: Ubuntu 3.13.0-35.62-generic 3.13.11.6
Uname: Linux 3.13.0-35-generic i686
ApportVersion: 2.14.1-0ubuntu3.3
Architecture: i386
Date: Tue Sep 2 23:39:46 2014
DuplicateSignature: package:ubuntu-docs:12.04.6:symbolic link '/usr/share/help/ja/ubuntu-help/music-player-notrecognized.page' size has changed from 69 to 4
ErrorMessage: symbolic link '/usr/share/help/ja/ubuntu-help/music-player-notrecognized.page' size has changed from 69 to 4
InstallationDate: Installed on 2013-12-27 (248 days ago)
InstallationMedia: Ubuntu 12.04.2 LTS "Precise Pangolin" - Release i386 (20130213)
PackageArchitecture: all
SourcePackage: ubuntu-docs
Title: package ubuntu-docs 12.04.6 failed to install/upgrade: symbolic link '/usr/share/help/ja/ubuntu-help/music-player-notrecognized.page' size has changed from 69 to 4
UpgradeStatus: Upgraded to trusty on 2014-08-12 (21 days ago)

Revision history for this message
Theo Scholten (tmascholten) wrote :
tags: removed: need-duplicate-check
Revision history for this message
Gunnar Hjalmarsson (gunnarhj) wrote :

Hi Theo,

The nature of the error indicates an hardware problem. You can probably fix it for you by running:

sudo apt-get purge ubuntu-docs
sudo apt-get install ubuntu-docs

Revision history for this message
Gunnar Hjalmarsson (gunnarhj) wrote :

Hi Martin,

This kind of error happens quite often. Upgrading works if you manually remove the erroneous symlink. Given that, would removing all the symlinks in a prerm script be a totally crazy idea?

for lang in $( ls /usr/share/help ); do
    test "$lang" = 'C' && continue
    test -d "/usr/share/help/$lang" || continue
    help_dir="/usr/share/help/$lang"/ubuntu-help
    for link in $( ls "$help_dir" ); do
        test -h "$help_dir/$link" || continue
        rm "$help_dir/$link"
    done
    for link in $( ls "$help_dir/figures" ); do
        test -h "$help_dir/figures/$link" || continue
        rm "$help_dir/figures/$link"
    done
done

Revision history for this message
Martin Pitt (pitti) wrote :

Gunnar, "quite often" sounds worrysome -- this smells like a dpkg bug then? Did you see more duplicates of this?

This is an utterly complex and probably brittle workaround. If we need such a workaround, then the pre*inst* should call "dpkg -L <pkgname>" (this needs to be generated by debian/rules), iterate over all entries, and remove any which are a symlink. If it's a dpkg bug it would really be better to fix it there (needs a reproducer then), if it's really a hardware bug then no amount of software workarounds will help against those :/. But if you see many duplicates, it's more likely a dpkg bug.

Revision history for this message
Gunnar Hjalmarsson (gunnarhj) wrote :

These are the latest of the kind, except for this one:

https://launchpad.net/bugs/1365719

https://launchpad.net/bugs/1363695

https://launchpad.net/bugs/1347781

https://launchpad.net/bugs/1346809

https://launchpad.net/bugs/1346754

https://launchpad.net/bugs/1341690

https://launchpad.net/bugs/1315177

https://launchpad.net/bugs/1295481

https://launchpad.net/bugs/1295442

Some are detected to be hardware issues, some are not. Also when it's considered a hardware issue people have reported that a removal fixes the issue; see for instance comment #5 in bug #1346809.

Is it really necessary that dpkg carries out that check? Can't it just install the link and overwrite whatever with the same name was there before? I agree it would be good to fix it in dpkg. If that's not possible, some workaround in ubuntu-docs would indeed be helpful.

Revision history for this message
Martin Pitt (pitti) wrote :

Ah, I think the "hardware error" is a false positive here. dpkg needs to check existing symlinks on unpack in order to actually respect them - - i. .e the admin might have moved a directory to a different place and put a symlink instead, and dpkg respects/maintains that. Thus a package can never replace a symlink with a directory (i. . e. that needs an explicit symlink removal in its preinst).

I'm not sure why it does the size check, or whether that's coming from some lower level.

Changed in dpkg (Ubuntu):
importance: Undecided → High
Revision history for this message
Launchpad Janitor (janitor) wrote :

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

Changed in dpkg (Ubuntu):
status: New → Confirmed
Changed in ubuntu-docs (Ubuntu):
status: New → Confirmed
Changed in ubuntu-docs (Ubuntu):
importance: Undecided → High
Changed in gnome-user-docs (Ubuntu):
importance: Undecided → High
status: New → Confirmed
Revision history for this message
Bruce Newman (bruce-landshut) wrote :

I will use as is.

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

Other bug subscribers

Remote bug watches

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