On 2017-11-20 19:13, Mikulas Patocka wrote: > Package: libc6-amd64 > Version: 2.25-1 > Severity: critical > Justification: breaks the whole system > > Dear Maintainer, > > *** Reporter, please consider answering these questions, where appropriate *** > > * What led up to the situation? > > I have a x86-64 system with i386 and x32 foreign architectures (because I > need to develop software for i386 and x32 architectures). > > * What exactly did you do (or not do) that was effective (or > ineffective)? > > I ran apt update and apt upgrade. Apt tried to upgrade to libc-2.25. > > * What was the outcome of this action? > > Halfway through apt upgrade it failed and I ended up with unusable system > where > large number of binaries were segfauting on startup without doign anything. > > * What outcome did you expect instead? > > The upgrade to libc-2.25 should work. > > > The reason for the catastrophic failure is this: > > There is package libc6-amd64:i386 and libc6-amd64:x32 (which provide
I guess you mean you have installed one of the two, not both. > x86-64 libc in /lib64/). This package is not technically needed (because > x86-64 libc is already installed in /lib/x86_64-linux-gnu/), but it is > installed nonetheless because of some dependencies. Just to be clear, as said in my other email, this *is* technically needed as gcc-multilib is not able to make use of the libc in /lib/x86_64-linux-gnu. > apt makes sure that all libc packages are upgraded at once to the same > version. However, during the upgrade process, the package > libc6-amd64 is upgraded before libc6:amd64. So, during the upgrade, we > temporarily have two libcs with different versions on the system, and this > mismatch makes most of the x86-64 binaries crash. Due to the crashes, the > upgrade doesn't proceed and it doesn't install the correct libc version in > /lib/x86_64-linux-gnu/. > > The result is unusable system. I have done some tests, and while I confirm that libc6-i386:amd64 is unpacked much before libc6:amd64, it doesn't cause any issue here. Indeed the search path in ld.so is to give higher priority to /lib/x86_64-linux-gnu/ over /lib64. I have even been able to install libc6:amd64 in version 2.24 (using force-all), while keeping libc6-amd64:i386 in version 2.25. The only way to change the priority of the two path is using a non-standard ld.so.conf. Have you made any change to /etc/ld.so.conf or /etc/ld.so.conf.d/*? Maybe you can share the content of this file and this directory. -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurel...@aurel32.net http://www.aurel32.net