[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#911225: tech-ctte: Advice on stale libraries in a higher-precedence path entry



Le mercredi, 17 octobre 2018, 11.59:09 h CEST Simon McVittie a écrit :
> I would like advice from the technical committee on
> <https://bugs.debian.org/896019>. I am not asking for anyone to be
> overruled.

Thanks for your bugreport, thanks also for specifying you're expecting the TC 
to act under §6.1.5.

> In #896019 and #894763, it appears that some upgraded systems somehow
> still contain a copy of libglib-2.0.so.0.4200.0 (corresponding to
> GLib from jessie) in /lib/MULTIARCH. We don't know how this can have
> happened. There are suggestions that it might have been caused by
> filesystem corruption or installed by third-party software.

It's _very_ suspicious that it's the exact same version, on two different 
architectures. I skimmed through piuparts logs and didn't note anything 
special.

Just because I don't know enough piuparts, I tried installing libglib2.0 
2.42.0-2 in a jessie chroot, upgraded it and `dpkg -i`ed the stretch version 
on top; the *.4200.* file disappears indeed.

> When it does, ldconfig sees that the obsolete library
> has SONAME libglib-2.0.so.0, and creates a symlink
> /lib/MULTIARCH/libglib-2.0.so.0. This takes precedence over the
> newer version of libglib-2.0.so.0 that is correctly installed in
> /usr/lib/MULTIARCH, resulting in the new libgobject-2.0.so.0 failing
> to load, because it uses symbols that are only present in the new
> libglib-2.0.so.0.
> 
> Possible resolutions include:
> 
> * Do nothing; consider the systems with a leftover
>   /lib/MULTIARCH/libglib-2.0.so.0.4200.0 to be an unsupported local
>   misconfiguration (this is the status quo)
> 
> * Move libglib-2.0.so.0 back to /lib/MULTIARCH permanently, at a
>   long-term complexity cost
> 
> * Take steps to delete /lib/MULTIARCH/libglib-2.0.so.0.* during upgrade,
>   taking care to avoid deleting files that are really on
>   /usr/lib/MULTIARCH in merged-/usr systems, at a significant complexity
>   cost, with some risk of deleting necessary files if we get it wrong
> 
> * Advocate merged /usr where this class of problem cannot happen :-)
> 
> Do technical committee members (other than me) have any thoughts on this?

Under the current analysis, it seems that these spurious files:
* originate from Debian-provided binary packages (the timestamps match)
* haven't been removed for some yet-to-be-found reason (dpkg/apt corner-case?)
* have appeared on two different architectures (kinda-ruling out the third-
party software hypothesis)

(I'd be very curious to know what sequence of events lead to such files being 
leftovers…)

With that in mind (and pretty much inline with what the TC offered as advice 
in #865929) and although it probably doesn't respect the Debian Policy letter, 
I'm of the current opinion that a variant of your third option above is the 
best course of action: in the preinst of libglib2.0, forcibly remove the 
offending files from /lib/MULTIARCH/ if these are not known from dpkg and 
match known checksums. Given the amount of bugs you mentionned (a handful), 
I'd start with a closed list of offendants, that you can always extend later. 
Given that it'd be a later version of libglib2.0 cleaning up traces of earlier 
versions of itself, I see no real concern with that approach.

If third party packages really unpack files in /lib instead of their private 
directory, then pulling the Debian carpet under their feet feels only fair 
game to me. And trying the automated removal of these in Debian unstable is a 
pretty good way to find out if such hypothetical cases exist.

I hope it helps!

Cheers,
    OdyX

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: