Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 452006 - dev-libs/icu-50.1.1 breaks app-office/libreoffice-{3.6.4.3,4.0.0.1} - Segfault in icu::LEFontInstance::mapCharToGlyph
Summary: dev-libs/icu-50.1.1 breaks app-office/libreoffice-{3.6.4.3,4.0.0.1} - Segfaul...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Office Team
URL:
Whiteboard:
Keywords:
: 453090 (view as bug list)
Depends on:
Blocks:
 
Reported: 2013-01-14 10:32 UTC by Bernd Feige
Modified: 2013-03-06 21:38 UTC (History)
18 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
gdbtrace.log from libreoffice --backtrace (4.0.0.1) (gdbtrace.log,12.89 KB, text/plain)
2013-01-14 10:33 UTC, Bernd Feige
Details
detailed backtrace (libreoffice-4.0.0.1 with debugging symbols) (detailed backtrace for libreoffice-4.0.0.1.txt,58.57 KB, text/plain)
2013-01-15 04:43 UTC, Alexandre Rostovtsev (RETIRED)
Details
emerge --info icu libreoffice (emerge --info icu libreoffice.txt,6.85 KB, text/plain)
2013-01-18 04:24 UTC, Alexandre Rostovtsev (RETIRED)
Details
emerge --info icu libreoffice (info_libreoffice.txt,5.88 KB, text/plain)
2013-01-18 09:14 UTC, Roman Dilken
Details
emerge-info-icu-libreoffice-non-crashing (emerge-info-icu-libreoffice.txt,5.46 KB, text/plain)
2013-01-18 12:17 UTC, Derk W te Bokkel
Details
icu-50.1-50.1.1-includes.diff (icu-50.1-50.1.1-includes.diff,11.45 KB, text/plain)
2013-01-19 04:14 UTC, Bartosz Brachaczek
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Bernd Feige 2013-01-14 10:32:19 UTC
Now that icu-50.1.1 was unmasked, libreoffice crashes. Reverting to icu-50.1-r2 fixes the problem.
This occurs both with libreoffice-3.6.4.3 (but not always, only with some files, and sometimes the contents is visible shortly before the crash) and with libreoffice-4.0.0.1 (directly at start, even when no document is loaded).
I tried to reset LANG and LC_* (LANG=de_DE.UTF-8 here), the crash happens nonetheless.
The problem is not related to gcc-4.7 (didn't unmask that, I'm on ~amd64).

Reproducible: Always
Comment 1 Bernd Feige 2013-01-14 10:33:20 UTC
Created attachment 335584 [details]
gdbtrace.log from libreoffice --backtrace (4.0.0.1)
Comment 2 jospezial 2013-01-14 12:17:12 UTC
same here when I did something with a table in calc:

[ 7195.975237] soffice.bin[2126]: segfault at 1 ip 00007fb4dedd89be sp 00007fffd2605700 error 4 in libicule.so.50.1.1[7fb4dedc4000+40000]

dev-libs/icu-50.1.1 was built with the following:
USE="-debug -doc -examples -static-libs"


app-office/libreoffice-3.6.4.3 was built with the following:
USE="binfilter branding cups dbus gstreamer gtk java kde (multilib) opengl vba webdav (-aqua) -binfilterdebug -eds -gnome -jemalloc -mysql -odk -postgres -test" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer -nlpsolver -pdfimport -scripting-beanshell -scripting-javascript -wiki-publisher"
Comment 3 Small_Penguin 2013-01-14 17:56:43 UTC
Confirmed using 4.0.0.1, libreoffice segfaults at startup. Reverting back to icu-50.1-r2 fixes the problem.
Comment 4 Derk W te Bokkel 2013-01-14 21:10:29 UTC
if libreoffice is compiled against icu-50.1.1 then the segfault does not seem to occur so .. has the ABI changed slightly between these versions?

This was tested on one machine only so far ..
Comment 5 Robert Cabrera 2013-01-14 22:42:55 UTC
I too am having this issue on my ~amd64 laptop.

Libreoffice-4.0.0.1 was segfaulting since the update to icu-50.1.1. I reverted back to icu-50.1-r2 and it worked well. I then tried recompiling libreoffice-4.0.0.1 against the new icu-50.1.1 and 5 hours later it still segfaults.

I then masked icu-50.1.1 and downgraded to icu-50.1-r2 and all is working well again.

It seems to be a reoccurring issue that an icu update it wreaks havoc and breaks something on my system.
Comment 6 Alexandre Rostovtsev (RETIRED) gentoo-dev 2013-01-15 04:43:09 UTC
Created attachment 335672 [details]
detailed backtrace (libreoffice-4.0.0.1 with debugging symbols)

Here is a detailed backtrace generated by abrt for libreoffice-4.0.0.1 + icu-50.1.1 on a system where libreoffice was built with debugging symbols.
Comment 7 William Seager 2013-01-15 16:04:59 UTC
I have the segfault at startup problem

kernel: soffice.bin[20038]: segfault at 266e31dc ip b0d704c2 sp bfcf7a74 error 4 in libgcc3_uno.so[b0d6e000+c000]


But this occurred with icu-49.1.2 and icu-50.1-r2

So for me, the problem remains
Comment 8 Bartosz Brachaczek 2013-01-15 16:12:38 UTC
(In reply to comment #7)
The file libgcc3_uno.so is not part of icu, it's part of libreoffice itself. Go to bug #451778.
Comment 9 William Seager 2013-01-15 16:32:02 UTC
(In reply to comment #8)
oops - sorry about that ... didn't actually realize
there were two bugs hereabouts
Comment 10 Derk W te Bokkel 2013-01-18 03:40:23 UTC
so evidently people are haing problems .. :^) but why .. I've got three amd64~ machines with amd or intel  multi-core processors with 4 compiled instances of libreoffice-4.0.0.1 with icu-50.1.1 .. all with similar use flags except some without java set

as follows:

app-office/libreoffice-4.0.0.1  USE="branding cups dbus gstreamer gtk java opengl vba webdav (-aqua) -bluetooth -debug -eds -gnome -gtk3 -jemalloc -kde -mysql -nsplugin -odk -postgres -telepathy {-test}" LIBREOFFICE_EXTENSIONS="presenter-minimizer -nlpsolver -scripting-beanshell -scripting-javascript -wiki-publisher" PYTHON_SINGLE_TARGET="python2_7 (-python3_3)" PYTHON_TARGETS="python2_7 (-python3_3)" 0 kB


none of these instances has segfaulted on start-up or during some regular usage .. so what flags have you got set that are different than the  above  and perhaps result in the segfaults?

the dev's can't solve the issue without data ..
Comment 11 Alexandre Rostovtsev (RETIRED) gentoo-dev 2013-01-18 04:24:56 UTC
Created attachment 336002 [details]
emerge --info icu libreoffice

(In reply to comment #10)
> none of these instances has segfaulted on start-up or during some regular
> usage .. so what flags have you got set that are different than the  above 
> and perhaps result in the segfaults?

app-office/libreoffice-4.0.0.1 was built with the following:
USE="bluetooth branding cups dbus eds gnome gstreamer gtk gtk3 java jemalloc kde mysql opengl postgres vba webdav (-aqua) -debug -nsplugin -odk -telepathy -test" LIBREOFFICE_EXTENSIONS="nlpsolver presenter-minimizer -scripting-beanshell -scripting-javascript -wiki-publisher" PYTHON_SINGLE_TARGET="python2_7 -python3_3" PYTHON_TARGETS="python2_7 python3_3"

Full emerge --info output in the attachment.
Comment 12 Martin Jansa 2013-01-18 08:13:53 UTC
For me it segfaulted like this on amd64, but segfault is gone after rebuilding libreoffice again after icu was upgraded from 50.1 to 50.1.1. The same as:
https://bugs.gentoo.org/show_bug.cgi?id=452006#c4
Comment 13 Roman Dilken 2013-01-18 09:13:29 UTC
USE-Flags for my build:

dev-libs/icu-50.1.1 was built with the following:
USE="-debug -doc -examples -static-libs"


app-office/libreoffice-4.0.0.1 was built with the following:
USE="bluetooth branding cups dbus gtk nsplugin opengl vba webdav (-aqua) -debug -eds -gnome -gstreamer -gtk3 -java -jemalloc -kde -mysql -odk -postgres -telepathy -test" LIBREOFFICE_EXTENSIONS="presenter-minimizer -nlpsolver -scripting-beanshell -scripting-javascript -wiki-publisher" PYTHON_SINGLE_TARGET="python2_7 -python3_3" PYTHON_TARGETS="python2_7 -python3_3"

Full emerge --info attached.
Comment 14 Roman Dilken 2013-01-18 09:14:22 UTC
Created attachment 336026 [details]
emerge --info icu libreoffice
Comment 15 Carlos Silva 2013-01-18 10:18:15 UTC
I can say that I had the "segfault while loading" problem, and after recompile against the latest icu it is working fine.
Comment 16 Roman Dilken 2013-01-18 10:21:36 UTC
Yes, the same here as I see now. After recompile the problem seems gone.
Comment 17 Derk W te Bokkel 2013-01-18 12:17:17 UTC
Created attachment 336044 [details]
emerge-info-icu-libreoffice-non-crashing

this is from one of the machines that does not segfault the other two (3 installs) are very similar
Comment 18 Bernd Feige 2013-01-18 12:29:00 UTC
(In reply to comment #10)

> the dev's can't solve the issue without data ..

Here, the crash occured with
app-office/libreoffice-4.0.0.1 USE="branding cups dbus eds gnome gstreamer gtk gtk3 java opengl postgres vba webdav (-aqua) -bluetooth -debug -jemalloc -kde -mysql -nsplugin -odk -telepathy -test" LIBREOFFICE_EXTENSIONS="nlpsolver presenter-minimizer -scripting-beanshell -scripting-javascript -wiki-publisher" PYTHON_SINGLE_TARGET="python2_7 -python3_3" PYTHON_TARGETS="python2_7 -python3_3"

libreoffice was compiled against icu-50.1-r2. After upgrading to icu-50.1.1, the described crash occurred in both libreoffice versions. Now that I recompiled libreoffice-4.0.0.1 with icu-50.1.1 the crash cannot be provoked any more. Probably it's similar with libreoffice-3.6.4. Strange that a minor version step can have such effects...
Comment 19 Fred Krogh 2013-01-18 16:05:41 UTC
As for others, after compiling libreoffice with icu-50.1.1 it works.  Before the recompile it did not.
Comment 20 Robert Cabrera 2013-01-18 22:13:08 UTC
(In reply to comment #19)
> As for others, after compiling libreoffice with icu-50.1.1 it works.  Before
> the recompile it did not.

If you took a moment to read my post above, you'd notice that I did recompile libreoffice after the update to icu and it failed to launch with the same segfault.

Now I don't know what other variables exist between our two systems, as mine is running ~amd64 and several "cutting edge" important packages currently "masked" including gcc-4.7.2 and glibc-2.17.

The point is however, that recompiling libreoffice after the icu update isn't the solution for everyone as the problem does persist for some of us.

Ciao
Comment 21 Derk W te Bokkel 2013-01-18 23:03:53 UTC
it is an ABI issue.  libreoffice-4.0.0.1 built against icu-50.1.1 then icu downgraded to icu-50.1-r2 will crash on start-up .. (3 attempts logged)

Jan 18 17:49:13 zlink1 kernel: [14833.227205] soffice.bin[4468]: segfault at 1e299bb9f ip 00007f766c971808 sp 00007fff05107ca0 error 4 in libicule.so.50.1[7f766c95d000+40000]
Jan 18 17:49:22 zlink1 kernel: [14841.923066] soffice.bin[4498]: segfault at 181513b9f ip 00007f4a3bf2d808 sp 00007fffdd83d830 error 4 in libicule.so.50.1[7f4a3bf19000+40000]
Jan 18 17:49:35 zlink1 kernel: [14855.081680] soffice.bin[4532]: segfault at 144f99b9f ip 00007fdb1dc70808 sp 00007fff81c23000 error 4 in libicule.so.50.1[7fdb1dc5c000+40000]

reverted to icu-50.1.1 and libreoffice starts normally

point being the ABI for icu changed again between these minor versions .. nasty!
Comment 22 Bartosz Brachaczek 2013-01-19 04:14:17 UTC
Created attachment 336086 [details]
icu-50.1-50.1.1-includes.diff

(In reply to comment #21)
That's right. They added new virtual function getFontTable(LETag,size_t&) to the LEFontInstance class, which breaks ABI. The funny things is that they officially don't care about C++ binary compatibility even between minor releases. Thus, every package using ICU's C++ API should be rebuilt after changing ICU version, even if the soname doesn't change.

I'm attaching diff between the headers installed by icu-50.1 and icu-50.1.1 for reference.
Comment 23 Derk W te Bokkel 2013-01-19 05:50:22 UTC
so should gentoo adopt a policy of not bumping for minor point versions of icu  .. or should slot s be use to prevent rebuild of things like libreoffice .. or some kind of icu version locks to specific libreoffice versions for instance .. just thoughts not every one wants to recompile libreoffice everytime icu upgrades ..
Comment 24 Tomáš Chvátal (RETIRED) gentoo-dev 2013-01-19 09:03:06 UTC
Nah, we should introduce subslots for each release to be ${PV}.

That will enforce rebuilds, apart from that anyone who unmask icu should really test it on runtime, not just compilation wise...
Comment 25 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2013-01-20 08:36:38 UTC
*** Bug 453090 has been marked as a duplicate of this bug. ***
Comment 26 Robert Cabrera 2013-01-21 01:43:35 UTC
Well I after reading the last few posts here I thought I'd give another try at unmasking icu-50.1.1 and updating again.

It seems that libreoffice and several packages that it pulls in are the only users depending upon ICU on my system. I thought that perhaps I might be missing a dependency or dependcies when rebuilding packages after the ICU update and that this might be what's leading to libreoffice segfaulting.

Since I'm a portage 2.2.x user, I gambled that if I emerged -C icu that all of the packages requiring rebuilding would be brought into the rebuild cue with an emerge @preserved-rebuild.

Now many hours later, I'm able to report success, LibreOffice is working as expected!!!

I can't for the life of me figure out which of the packages I was failing to rebuild before, but the fact remains that if all of the packages depending on icu are rebuilt prior to rebuilding libreoffice then it will launch without segfaulting afterwards.

For some reason updating icu doesn't trigger rebuilding all of the packages built against it at @preserved-rebuild or with revdep-rebuild unless I remove icu from my system. Weird, very weird indeed!
Comment 27 Vasco Gervasi 2013-01-28 17:09:49 UTC
I have done the same thing as Robert Cabrera but same problem with 4.0rc2.
The only one that I didn't remerge was chromium because of json-cpp problem.
Comment 28 Tomáš Chvátal (RETIRED) gentoo-dev 2013-02-06 14:55:40 UTC
This crasher should be fixed in 50.1.2. Could you please verify that it works for you too?
Comment 29 Robert Cabrera 2013-02-07 18:35:58 UTC
This is getting to be a pain in the @$$! After finally getting libreoffice to work with icu-50.1.1, the new icu-50.1.2 broke it again! UUuuuuGGgggg!!!!

So I spent the night recompiling all apps depending on icu, including libreoffice-4.0.0.2 (which now works fine) only find this afternoon a newer version of libreoffice in the upgrade cue along with 250-plus kde apps. I guess I'll be busy for awhile. :(
Comment 30 Vasco Gervasi 2013-02-08 22:08:08 UTC
Just compiled libreoffice-4.0.0.3 against icu-50.1.2 = same error.
Comment 31 Fred Krogh 2013-02-08 22:12:03 UTC
libreoffice-4.0.0.3 with icu-50.1.2 is working just fine here on an amd64~ system.
Comment 32 Vasco Gervasi 2013-02-09 08:38:01 UTC
I am on ~x86.
Did you recompile anything before libreoffice?
Comment 33 Fred Krogh 2013-02-09 16:32:46 UTC
I sync and emerge world on most days.  I currently have apache 2.4+ and shoerewall 4.5.11.2 masked.
Comment 34 Bernd Feige 2013-02-18 11:41:09 UTC
(In reply to comment #28)
> This crasher should be fixed in 50.1.2. Could you please verify that it
> works for you too?

Dear Tomáš,

As long as libreoffice(-4.0.0.3) is recompiled after icu installation, it works here with 50.1.2, just as before with 50.1.1. I can confirm comment #29 - a libreoffice recompile is again needed after upgrading from 50.1.1 to 50.1.2.
After temporarily downgrading to icu-50.1-r2, libreoffice compiled against 50.1.2 still worked according to superficial testing. So this may indicate that libreoffice compiled against 50.1 will continue working with 50.1.2, as intended.
How did you fix the ABI mismatch??

Regards,
Bernd
Comment 35 Tomáš Chvátal (RETIRED) gentoo-dev 2013-03-06 21:38:34 UTC
(In reply to comment #34)
> (In reply to comment #28)
> > This crasher should be fixed in 50.1.2. Could you please verify that it
> > works for you too?
> 
> Dear Tomáš,
> 
> As long as libreoffice(-4.0.0.3) is recompiled after icu installation, it
> works here with 50.1.2, just as before with 50.1.1. I can confirm comment
> #29 - a libreoffice recompile is again needed after upgrading from 50.1.1 to
> 50.1.2.
> After temporarily downgrading to icu-50.1-r2, libreoffice compiled against
> 50.1.2 still worked according to superficial testing. So this may indicate
> that libreoffice compiled against 50.1 will continue working with 50.1.2, as
> intended.
> How did you fix the ABI mismatch??
> 
I did not fix the abi mismatch, it should get fixed automatically by the subslots portage feature.

Thanks for the verification of the issue and I will thus close this as fixed and remove 50.1.1 from main tree to prevent people getting burned by the issue.