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

Bug#895649: inkscape: Segfault closing dialog after importing PDF



I just ran into (and resolved) this.  It appears to be a packaging / dynamic-linking problem.  Fundamentally, it seems that inkscape is not compatible with having multiple versions of libpoppler present and usable.  This also explains why this issue is so consistent for the people who encounter it, but never occurs for the people who don't encounter it.

My first thought, on seeing the ldd output in this bug, was "isn't it weird that inkscape is picking up two different versions of the same library?"  This turned out to be the fundamental issue.

My ldd output looked like this when I was experiencing the crash:
$ldd /usr/bin/inkscape | grep poppler
    libpoppler.so.82 => /usr/lib/x86_64-linux-gnu/libpoppler.so.82 (0x00007f09b1c4b000)     libpoppler-glib.so.8 => /usr/lib/x86_64-linux-gnu/libpoppler-glib.so.8 (0x00007f09b19ef000)     libpoppler.so.72 => /usr/lib/x86_64-linux-gnu/libpoppler.so.72 (0x00007f09a8e74000)

I then checked to see which versions of libpoppler were installed.  It was a whole bunch of them:
15:20:51> [xsdg{angular}@/usr/lib/x86_64-linux-gnu]
$dpkg -S libpoppler*
libpoppler-cpp0v5:amd64: /usr/lib/x86_64-linux-gnu/libpoppler-cpp.so.0
libpoppler-cpp-dev:amd64: /usr/lib/x86_64-linux-gnu/libpoppler-cpp.so
libpoppler-cpp0v5:amd64: /usr/lib/x86_64-linux-gnu/libpoppler-cpp.so.0.3.0
libpoppler-cpp0v5:amd64: /usr/lib/x86_64-linux-gnu/libpoppler-cpp.so.0
libpoppler-cpp0v5:amd64: /usr/lib/x86_64-linux-gnu/libpoppler-cpp.so.0.3.0
libpoppler-cpp0v5:amd64: /usr/lib/x86_64-linux-gnu/libpoppler-cpp.so.0.3.0
libpoppler-glib-dev: /usr/lib/x86_64-linux-gnu/libpoppler-glib.so
libpoppler-glib8:amd64: /usr/lib/x86_64-linux-gnu/libpoppler-glib.so.8.9.0
libpoppler-glib8:amd64: /usr/lib/x86_64-linux-gnu/libpoppler-glib.so.8
libpoppler-glib8:amd64: /usr/lib/x86_64-linux-gnu/libpoppler-glib.so.8.9.0
libpoppler-glib8:amd64: /usr/lib/x86_64-linux-gnu/libpoppler-glib.so.8
libpoppler-glib8:amd64: /usr/lib/x86_64-linux-gnu/libpoppler-glib.so.8.9.0
libpoppler68:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.68.0.0
libpoppler-dev:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so
libpoppler72:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.72.0.0
libpoppler64:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.64
libpoppler73:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.73.0.0
libpoppler68:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.68
libpoppler80:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.80.0.0
libpoppler82:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.82.0.0
libpoppler64:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.64.0.0
libpoppler82:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.82
libpoppler80:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.80
libpoppler74:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.74.0.0
libpoppler74:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.74
libpoppler72:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.72
libpoppler73:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.73
libpoppler64:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.64
libpoppler64:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.64.0.0
libpoppler64:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.64.0.0
libpoppler68:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.68.0.0
libpoppler68:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.68
libpoppler68:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.68.0.0
libpoppler72:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.72.0.0
libpoppler72:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.72
libpoppler72:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.72.0.0
libpoppler73:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.73.0.0
libpoppler73:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.73
libpoppler73:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.73.0.0
libpoppler74:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.74.0.0
libpoppler74:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.74
libpoppler74:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.74.0.0
libpoppler80:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.80.0.0
libpoppler80:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.80
libpoppler80:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.80.0.0
libpoppler82:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.82.0.0
libpoppler82:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.82
libpoppler82:amd64: /usr/lib/x86_64-linux-gnu/libpoppler.so.82.0.0

I uninstalled all of the deprecated versions and upgraded to the latest:
(excerpt from /var/log/aptitude):
[REMOVE (PURGE)] libpoppler64:amd64 0.48.0-2
[REMOVE (PURGE)] libpoppler68:amd64 0.57.0-2
[REMOVE (PURGE)] libpoppler72:amd64 0.61.1-2
[REMOVE (PURGE)] libpoppler73:amd64 0.62.0-2
[REMOVE (PURGE)] libpoppler74:amd64 0.63.0-2
[REMOVE (PURGE)] libpoppler80:amd64 0.69.0-2
[UPGRADE] gir1.2-poppler-0.18:amd64 0.61.1-2 -> 0.71.0-6
[UPGRADE] libpoppler-cpp-dev:amd64 0.61.1-2 -> 0.71.0-6
[UPGRADE] libpoppler-cpp0v5:amd64 0.61.1-2 -> 0.71.0-6
[UPGRADE] libpoppler-dev:amd64 0.61.1-2 -> 0.71.0-6
[UPGRADE] libpoppler-glib-dev:amd64 0.61.1-2 -> 0.71.0-6
[UPGRADE] libpoppler-glib8:amd64 0.61.1-2 -> 0.71.0-6
[UPGRADE] libpoppler-private-dev:amd64 0.61.1-2 -> 0.71.0-6
[UPGRADE] libpoppler82:amd64 0.71.0-5 -> 0.71.0-6
[UPGRADE] poppler-utils:amd64 0.57.0-2 -> 0.71.0-6

At which point my ldd output looked like this:
$ldd /usr/bin/inkscape | grep poppler
    libpoppler.so.82 => /usr/lib/x86_64-linux-gnu/libpoppler.so.82 (0x00007f22b7363000)     libpoppler-glib.so.8 => /usr/lib/x86_64-linux-gnu/libpoppler-glib.so.8 (0x00007f22b7308000)

And now inkscape PDF import works normally again.

--xsdg


Reply to: