Bug 4784 - acoread segmantation fault
: acoread segmantation fault
Product: Desktop Bugs
Classification: ROSA Desktop
Component: Main Packages
: Fresh
: All Linux
: Normal normal
: ---
Assigned To: ROSA Linux Bugs
: ROSA Linux Bugs
Depends on:
  Show dependency treegraph
Reported: 2014-12-12 10:54 MSK by Vladimir Potapov
Modified: 2015-06-16 19:11 MSD (History)
4 users (show)

See Also:
RPM Package: acroread
Bad POT generating:

Stack Trace (758.42 KB, text/plain)
2015-06-16 18:18 MSD, Zombie Ryushu
Another Stack Trace (184.91 KB, text/plain)
2015-06-16 19:11 MSD, Zombie Ryushu

Note You need to log in before you can comment on or make changes to this bug.
Description Vladimir Potapov 2014-12-12 10:54:35 MSK
in X64 ROSA Fresh R5
$ acroread
segmentation fault
Comment 1 Eugene Shatokhin 2014-12-12 10:58:55 MSK
Could you install debug info for acroread, run it under GDB and get the backtrace when the app crashes?
Comment 2 Denis Silakov 2014-12-12 15:21:46 MSK
Acroread doesn't have debuginfo package. It is a closed source application and we simply reuse rpm from adobe. In addition, it is an obsolete package - Adobe doesn't provide Reader for linux anymore.

Another thing is that acroread is 32bit-only application. Maybe some additional 32bit dependencies should be installed in 64 bit system or some other fixes are required in Reader config...
Comment 3 Vladimir Potapov 2014-12-12 16:15:12 MSK
may be https://aur.archlinux.org/packages/acroread help it?
Comment 4 Eugene Shatokhin 2014-12-12 17:26:02 MSK
(In reply to comment #2)
> Acroread doesn't have debuginfo package. It is a closed source application
> and we simply reuse rpm from adobe.

Well, then the GDB's backtrace could still provide some hints on what is needed.
Comment 5 ghibo 2015-06-04 18:04:58 MSD
Here is a backtrace of the segfault:

Program received signal SIGSEGV, Segmentation fault.
0xf61ec700 in two_way_long_needle () from /lib/libc.so.6
(gdb) bt
#0  0xf61ec700 in two_way_long_needle () from /lib/libc.so.6
#1  0xf52c143f in ?? () from /usr/lib/libfontconfig.so.1
#2  0xf52c3270 in FcFreeTypeQueryFace () from /usr/lib/libfontconfig.so.1
#3  0xf52c40d0 in FcFreeTypeQuery () from /usr/lib/libfontconfig.so.1
#4  0xf52bef74 in ?? () from /usr/lib/libfontconfig.so.1
#5  0xf52bf2be in ?? () from /usr/lib/libfontconfig.so.1
#6  0xf52bf408 in ?? () from /usr/lib/libfontconfig.so.1
#7  0xf52bad17 in ?? () from /usr/lib/libfontconfig.so.1
#8  0xf52badd9 in FcConfigBuildFonts () from /usr/lib/libfontconfig.so.1

The problem seems in the libfontconfig1 library, which is at the latest version anyway.

Note that what triggers the crash is the TrueType font "Liberation":, removing that package (e.g. forcing with rpm -e --nodeps fonts-ttf-liberation) would lead to a working acroread. Note also that any other Liberation font package, including those from older distro, including fonts-ttf-liberation-1.05.2-7-rosa.lts2012.0.noarch.rpm (from Rosa2012.0), fonts-ttf-liberation-2.00.1-3-omv2014.0.noarch.rpm (from OMV 2014.1) and fonts-ttf-liberation-1.05.2-2mdv2010.1.noarch.rpm (from Mandriva 2010.2) installed as althernative to the Rosa 2014.1 fonts-ttf-liberation package will trigger the segfault too.

Some little hints. There is a list of warning running acroread, those can be fixed installing the following 32 bit packages (into the 64bit installation):


and then

mkdir /etc/pango/i386
pango-querymodules32 > /etc/pango/i386/pango.modules

but those are, anyway, not enough to get rid the segfaults, just the warnings.
Maybe you can add those package to the next acroread build RPM.
Comment 6 ghibo 2015-06-04 18:06:41 MSD
just a comment. The command of the previous comment is


and not pango-querymodules32
Comment 7 Zombie Ryushu 2015-06-16 16:15:44 MSD
Is there a way to instl the liberation fonts but have acroread not load them?
Comment 8 ghibo 2015-06-16 17:39:52 MSD
IMHO the problem is triggered by some bug in this particular version of fontconfig or freetype2 or the combination of both (maybe it's the same problem which causes gnome to fail to start, dunno) which should be probably fixed or debugged. Apart this, fontconfig usually looks in several places including $XDG_CONFIG_HOME/fontconfig/fonts.conf, where one can exclude some font using the <selectfont><rejectfont><pattern>...</pattern></rejectfont></selectfont>. Maybe a workaround could be to provide a wrapper with a local fonts.conf where some font family it's excluded. Dunno if it is enforcable.
Comment 9 Zombie Ryushu 2015-06-16 18:16:10 MSD
I have it segfaulting on one user but not a different one.
Comment 10 Zombie Ryushu 2015-06-16 18:18:59 MSD
Created attachment 4106 [details]
Stack Trace
Comment 11 ghibo 2015-06-16 18:28:20 MSD
There is also a newer fontconfig 2.11.94 here:

Comment 12 ghibo 2015-06-16 18:52:36 MSD
You seem getting segfaults on Cantarell and not on Liberation...
Comment 13 Zombie Ryushu 2015-06-16 18:55:55 MSD
I get segfaults on both and had to uninstall them both.
Comment 14 Zombie Ryushu 2015-06-16 19:04:38 MSD
open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/gdk-pixbuf.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US.utf8/LC_MESSAGES/gdk-pixbuf.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/gdk-pixbuf.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/gdk-pixbuf.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/gdk-pixbuf.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/gdk-pixbuf.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
rt_sigaction(SIGQUIT, {0x850aafa, [], 0}, NULL, 8) = 0
rt_sigaction(SIGTERM, {0x850aafa, [], 0}, NULL, 8) = 0
rt_sigaction(SIGINT, {0x850aafa, [], 0}, NULL, 8) = 0
rt_sigaction(SIGABRT, {0x850aafa, [], 0}, NULL, 8) = 0
rt_sigaction(SIGBUS, {0x850aafa, [], 0}, NULL, 8) = 0
rt_sigaction(SIGILL, {0x850aafa, [], 0}, NULL, 8) = 0
rt_sigaction(SIGSEGV, {0x850aafa, [], 0}, NULL, 8) = 0
rt_sigaction(SIGFPE, {0x850aafa, [], 0}, NULL, 8) = 0
rt_sigaction(SIGABRT, {0x850aafa, [], 0}, NULL, 8) = 0
rt_sigaction(SIGUSR2, {0x850aafa, [], 0}, NULL, 8) = 0
rt_sigaction(SIGCHLD, {SIG_IGN, [], 0}, NULL, 8) = 0

What does this mean?
Comment 15 Zombie Ryushu 2015-06-16 19:11:34 MSD
Created attachment 4109 [details]
Another Stack Trace