Bug#955331: After upgrading to buster, libgobject-2.0.so.0 give error "undefined symbol: g_variant_dict_ref"

Simon McVittie smcv at debian.org
Mon Mar 30 09:18:17 BST 2020


On Mon, 30 Mar 2020 at 01:50:17 +0100, Becka wrote:
> Searching for advice I found bug reports  (894763, 896019) related
> to a different symbol error for the same library, with the discussion
> based on older versions not being deleted.  Although the symlink was to
> the newer file, there was an older version (libgobject-2.0.so.0.3600.4)
> so I deleted this. As that did not make any difference I moved the file
> and symlinks and reinstalled the libglib2.0-0 package.  However this
> did not fix the problem but also showed the error.

This does look a lot like #896019 and #894763.

Do you have an old version of libglib-2.0.so.0 in /lib/i386-linux-gnu?
If you do, it's the same bug. We don't know why this happens: dpkg should
have deleted the old versions years ago, and on most machines it did;
but for some reason, for you and the other people with bugs like this,
it didn't.

Is there anything unusual about this machine that might have resulted
in it being one of the unlucky ones (weird filesystem? unreliable disk?
special kernel? crashes a lot? using experimental versions of dpkg?),
or is it just an ordinary Debian stable system?

You see the symptoms of this bug in libgobject-2.0, but it's actually
caused by the older version of libglib-2.0 being found, so it's mostly
libglib-2.0 that we're interested in.

Please run these commands:

    ls -il /lib/x86_64-linux-gnu/libglib-2.0.so*
    ls -il /usr/lib/x86_64-linux-gnu/libglib-2.0.so*

and send the results to this bug report. I think the result will be
something like this:

    /lib/i386-linux-gnu/libglib-2.0.so -> libglib-2.0.so.0
    /lib/i386-linux-gnu/libglib-2.0.so.0 -> libglib-2.0.so.0.3600.4
    /lib/i386-linux-gnu/libglib-2.0.so.0.3600.4

    /usr/lib/i386-linux-gnu/libglib-2.0.so -> libglib-2.0.so.0
    /usr/lib/i386-linux-gnu/libglib-2.0.so.0 -> libglib-2.0.so.0.5800.3
    /usr/lib/i386-linux-gnu/libglib-2.0.so.0.5800.3

(but please send me the full output even if I am correct, because having
more details like the date and time might help us to figure out how
this could have happened).

If so, move the older version in /lib/i386-linux-gnu out of the way, and
keep the newer version in /usr/lib/i386-linux-gnu. Then reinstall
libglib2.0-0 (not strictly necessary but probably a good idea).

You will probably also have old versions of libgio-2.0.so.0,
libgmodule-2.0.so.0, libgthread-2.0.so.0 in /usr/lib/i386-linux-gnu. It's
probably best if you remove those too.

As far as we can guess, this was caused by something going wrong several
years ago (it would have been at the time you upgraded from GLib 2.36.4
to a newer version, most likely in early 2014 - GLib 2.36.x was never
in a stable release, so you must have been running testing or unstable
at the time). Your logs in /var/log/apt probably don't go back that far,
but if they do, or if you have sufficiently old backups of /var/log/apt,
please show us what happened during that upgrade. Or, if you can remember
something happening that disrupted an upgrade around that time, or the
history of this machine more generally (for example when you switched
between testing and stable), that might also be helpful.

The output of these commands would also be useful information:

for lib in /lib/i386-linux-gnu/*.so.*; do dpkg -S "$lib" >/dev/null || echo "$lib is not owned by a package"; done
for lib in /usr/lib/i386-linux-gnu/*.so.*; do dpkg -S "$lib" >/dev/null || echo "$lib is not owned by a package"; done

(They will take a few minutes to run, especially the second one.)

If they output anything, please send it to this bug, and also try the same
"ls -il" that you did for libgobject-2.0.

    smcv



More information about the pkg-gnome-maintainers mailing list