- Package:
- libjson-pp-perl
- Source:
- libjson-pp-perl
- Submitter:
- "brian m. carlson"
- Date:
- 2014-11-02 20:00:21 UTC
- Severity:
- normal
I'm unable to get dpkg to do anything useful with this package. I can't
upgrade to the supposedly fixed version, and now aptitude refuses to do
anything else without either removing or upgrading libjson-pp-perl.
vauxhall no % sudo dpkg -P libjson-pp-perl
(Reading database ... 511466 files and directories currently installed.)
Removing libjson-pp-perl (2.27300-1) ...
No diversion 'diversion of /usr/bin/json_pp to /usr/bin/json_pp.bundled by libjson-pp-perl', none removed.
Removing 'diversion of /usr/share/man/man1/json_pp.1.gz to /usr/share/man/man1/json_pp.1.bundled.gz by libjson-pp-perl'
dpkg-divert: error: rename involves overwriting `/usr/share/man/man1/json_pp.1.gz' with
different file `/usr/share/man/man1/json_pp.1.bundled.gz', not allowed
dpkg: error processing package libjson-pp-perl (--purge):
subprocess installed post-removal script returned error exit status 2
Errors were encountered while processing:
libjson-pp-perl
vauxhall no % sudo dpkg -i /var/cache/apt/archives/libjson-pp-perl_2.27300-2_all.deb
Selecting previously unselected package libjson-pp-perl.
(Reading database ... 511471 files and directories currently installed.)
Preparing to unpack .../libjson-pp-perl_2.27300-2_all.deb ...
Removing 'diversion of /usr/share/man/man1/json_pp.1.gz to /usr/share/man/man1/json_pp.1.bundled.gz by libjson-pp-perl'
dpkg-divert: error: rename involves overwriting `/usr/share/man/man1/json_pp.1.gz' with
different file `/usr/share/man/man1/json_pp.1.bundled.gz', not allowed
dpkg: error processing archive /var/cache/apt/archives/libjson-pp-perl_2.27300-2_all.deb (--install):
subprocess new pre-installation script returned error exit status 2
Errors were encountered while processing:
/var/cache/apt/archives/libjson-pp-perl_2.27300-2_all.deb
Control: notfound -1 2.27300-1 Control: found -1 2.27300-2 Hrm. Something is broken here indeed; I'm just wondering how you got into this situation; my aptitude log shows on Mon, Oct 20 2014: [UPGRADE] libjson-pp-perl:amd64 2.27300-1 -> 2.27300-2 and this went obviously fine. And I've never seen dpkg-divert saying "rename involves overwriting .. with different file .., not allowed". Let's try: # dpkg -l libjson-pp-perl .. ii libjson-pp-perl 2.27300-2 all module for manipulating JSON-formatted data (P # aptitude purge libjson-pp-perl [needs a downgrade of cpanminus. ok.] Removing libjson-pp-perl (2.27300-2) ... Removing 'diversion of /usr/bin/json_pp to /usr/bin/json_pp.bundled by libjson-pp-perl' Removing 'diversion of /usr/share/man/man1/json_pp.1.gz to /usr/share/man/man1/json_pp.bundled.1.gz by libjson-pp-perl' Purging configuration files for libjson-pp-perl (2.27300-2) ... .. # aptitude install libjson-pp-perl=2.27300-1 .. Preparing to unpack .../libjson-pp-perl_2.27300-1_all.deb ... Adding 'diversion of /usr/bin/json_pp to /usr/bin/json_pp.bundled by libjson-pp-perl' Adding 'diversion of /usr/share/man/man1/json_pp.1.gz to /usr/share/man/man1/json_pp.1.bundled.gz by libjson-pp-perl' Unpacking libjson-pp-perl (2.27300-1) ... .. # aptitude install libjson-pp-perl=2.27300-2 .. Preparing to unpack .../libjson-pp-perl_2.27300-2_all.deb ... Removing 'diversion of /usr/share/man/man1/json_pp.1.gz to /usr/share/man/man1/json_pp.1.bundled.gz by libjson-pp-perl' Leaving 'diversion of /usr/bin/json_pp to /usr/bin/json_pp.bundled by libjson-pp-perl' Adding 'diversion of /usr/share/man/man1/json_pp.1.gz to /usr/share/man/man1/json_pp.bundled.1.gz by libjson-pp-perl' Unpacking libjson-pp-perl (2.27300-2) over (2.27300-1) ... .. All as expected. Anyone around with any idea? Cheers, gregor
I've attached the relevant portions of my dpkg.log in the hopes that might provide some useful information.
Thank you. So this starts with 2.27203-1 ... ... and installs 2.27300-1. "status installed" sounds good. Same days later ... ... 2.27300-1 is installed again (hu?). Again "status installed". Good. 20 minutes later it gets installed again (hu?), but now it it ends up half-installed ... For comparison, that's how it looks like for me: % grep json-pp ~log/dpkg.log 2014-10-10 13:39:45 upgrade libjson-pp-perl:all 2.27203-1 2.27300-1 2014-10-10 13:39:45 status half-configured libjson-pp-perl:all 2.27203-1 2014-10-10 13:39:45 status unpacked libjson-pp-perl:all 2.27203-1 2014-10-10 13:39:45 status half-installed libjson-pp-perl:all 2.27203-1 2014-10-10 13:39:45 status half-installed libjson-pp-perl:all 2.27203-1 2014-10-10 13:39:45 status half-installed libjson-pp-perl:all 2.27203-1 2014-10-10 13:39:45 status unpacked libjson-pp-perl:all 2.27300-1 2014-10-10 13:39:45 status unpacked libjson-pp-perl:all 2.27300-1 2014-10-10 13:40:05 configure libjson-pp-perl:all 2.27300-1 <none> 2014-10-10 13:40:05 status unpacked libjson-pp-perl:all 2.27300-1 2014-10-10 13:40:05 status half-configured libjson-pp-perl:all 2.27300-1 2014-10-10 13:40:05 status installed libjson-pp-perl:all 2.27300-1 2014-10-20 18:42:57 upgrade libjson-pp-perl:all 2.27300-1 2.27300-2 2014-10-20 18:42:57 status half-configured libjson-pp-perl:all 2.27300-1 2014-10-20 18:42:57 status unpacked libjson-pp-perl:all 2.27300-1 2014-10-20 18:42:57 status half-installed libjson-pp-perl:all 2.27300-1 2014-10-20 18:42:57 status half-installed libjson-pp-perl:all 2.27300-1 2014-10-20 18:42:57 status half-installed libjson-pp-perl:all 2.27300-1 2014-10-20 18:42:57 status unpacked libjson-pp-perl:all 2.27300-2 2014-10-20 18:42:57 status unpacked libjson-pp-perl:all 2.27300-2 2014-10-20 18:43:10 configure libjson-pp-perl:all 2.27300-2 <none> 2014-10-20 18:43:10 status unpacked libjson-pp-perl:all 2.27300-2 2014-10-20 18:43:10 status half-configured libjson-pp-perl:all 2.27300-2 2014-10-20 18:43:10 status installed libjson-pp-perl:all 2.27300-2 Some things I don't understand in your log: - the missing "upgrade" and "configure" lines - that 2.27300-1 (tries to) get(s) installed 3 times Cheers, gregor, still confused
Sorry about that. I used awk to select the appropriate lines, and in some cases the package is in a differently-numbered field. I've attached one that contains the upgrade and configure lines this time. I used aptitude, so I'm not sure why that happened. I think aptitude tries to reinstall the package if it fails the first time.
Thanks, now it gets more interesting :) Ok, upgrade 2.27203-1 -> 2.27300-1 succeeds. 12 days later: Upgrade 2.27300-1 -> 2.27300-2 attempted but ... // compared with my log: 2014-10-20 18:42:57 upgrade libjson-pp-perl:all 2.27300-1 2.27300-2 2014-10-20 18:42:57 status half-configured libjson-pp-perl:all 2.27300-1 2014-10-20 18:42:57 status unpacked libjson-pp-perl:all 2.27300-1 2014-10-20 18:42:57 status half-installed libjson-pp-perl:all 2.27300-1 2014-10-20 18:42:57 status half-installed libjson-pp-perl:all 2.27300-1 2014-10-20 18:42:57 status half-installed libjson-pp-perl:all 2.27300-1 2014-10-20 18:42:57 status unpacked libjson-pp-perl:all 2.27300-2 2014-10-20 18:42:57 status unpacked libjson-pp-perl:all 2.27300-2 2014-10-20 18:43:10 configure libjson-pp-perl:all 2.27300-2 <none> 2014-10-20 18:43:10 status unpacked libjson-pp-perl:all 2.27300-2 2014-10-20 18:43:10 status half-configured libjson-pp-perl:all 2.27300-2 2014-10-20 18:43:10 status installed libjson-pp-perl:all 2.27300-2 // ... 2.27300-2 never gets unpacked. That's probably where the dpkg-divert dance fails. I still have no clue what fails here, and if the cause is in the package or some local glitch, but hopefully we now have enough information so that someone sees more than me. Cheers, gregor
Hello To get a similar error message while upgrading libjson-pp-perl, I had to create a bogus /usr/share/man/man1/json_pp.bundled.1.gz before upgrading libjson-pp-perl to version 2.27300-2: # echo foobar > /usr/share/man/man1/json_pp.bundled.1.gz $ sudo aptitude install libjson-pp-perl/testing [ ok ] $ sudo aptitude install libjson-pp-perl The following packages will be upgraded: libjson-pp-perl 1 packages upgraded, 0 newly installed, 0 to remove and 712 not upgraded. Need to get 0 B/51.8 kB of archives. After unpacking 1,024 B will be used. Do you want to continue? [Y/n/?] Reading changelogs... Done (Reading database ... 365498 files and directories currently installed.) Preparing to unpack .../libjson-pp-perl_2.27300-2_all.deb ... Removing 'diversion of /usr/share/man/man1/json_pp.1.gz to /usr/share/man/man1/json_pp.1.bundled.gz by libjson-pp-perl' Leaving 'diversion of /usr/bin/json_pp to /usr/bin/json_pp.bundled by libjson- pp-perl' Adding 'diversion of /usr/share/man/man1/json_pp.1.gz to /usr/share/man/man1/json_pp.bundled.1.gz by libjson-pp-perl' dpkg-divert: error: rename involves overwriting `/usr/share/man/man1/json_pp.bundled.1.gz' with different file `/usr/share/man/man1/json_pp.1.gz', not allowed dpkg: error processing archive /var/cache/apt/archives/libjson-pp- perl_2.27300-2_all.deb (--unpack): subprocess new pre-installation script returned error exit status 2 Errors were encountered while processing: /var/cache/apt/archives/libjson-pp-perl_2.27300-2_all.deb E: Sub-process /usr/bin/dpkg returned an error code (1) Failed to perform requested operation on package. Trying to recover: I suspect that the error on your system comes from a similar cause. Could you: - purge libjson-pp-perl - remove any existing /usr/share/man/man1/json_pp.bundled.1.gz file (do *not* remove /usr/share/man/man1/json_pp.1.gz ) - install libjson-pp-perl Hope this helps
Not without removing the diversion first. The original bug report demonstrates that I can't remove the package. Whether /usr/share/man/man1/json_pp.1.bundled.gz exists or not doesn't affect that. (It did not exist originally.) I managed to fix it by doing "dpkg-divert --remove /usr/share/man/man1/json_pp.1.gz", which allowed the package to be removed. Whatever the underlying issue was should probably still be fixed, although this allows me to get aptitude working again.
We can't reproduce this issue, so we can't really fix it and this issue cannot be considered as grave. So, I've reduced it's severity to "normal". Feel free to ping us if you find a way to reproduce this issue. All the best