Bug 875314 - google-earth 7.0.1 crashes on startup due to expat
Summary: google-earth 7.0.1 crashes on startup due to expat
Keywords:
Status: CLOSED INSUFFICIENT_DATA
Alias: None
Product: Fedora
Classification: Fedora
Component: expat
Version: 17
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Joe Orton
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-11-10 12:31 UTC by Julian Sikorski
Modified: 2014-06-23 16:31 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-01-09 11:21:10 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
backtrace (7.65 KB, text/plain)
2012-11-10 12:31 UTC, Julian Sikorski
no flags Details
stock persian.conf (9.88 KB, text/plain)
2013-01-08 18:00 UTC, Julian Sikorski
no flags Details

Description Julian Sikorski 2012-11-10 12:31:29 UTC
Created attachment 642108 [details]
backtrace

Description of problem:
The new version of google-earth is crashing on startup, and further investigation reveals it is due to expat failing to parse /etc/fonts/conf.d/65-fonts-persian.conf. Removing that file makes google earth start properly.

Version-Release number of selected component (if applicable):
google-earth-stable-7.0.1.8244-0.x86_64
expat-2.1.0-1.fc17.i686
expat-2.1.0-1.fc17.x86_64
fontconfig-2.8.0-8.fc17.x86_64
fontconfig-2.8.0-8.fc17.i686

How reproducible:
always

Steps to Reproduce:
1. Install google-earth from http://www.google.com/earth/download/thanks.html#os=linux#linux_dl=rpm_64
2. Try to launch it
  
Actual results:
Program crashes on startup

Expected results:
It runs

Additional info:
To get useful gdb output, do the following:
$ cd /opt/google/earth/free/
$ export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
$ gdb googleearth

Comment 1 MartinKG 2012-11-13 17:06:47 UTC
i think you mean this commands

$ cd /opt/google/earth/free/
$ export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
$ gdb googleearth-bin

Comment 2 Julian Sikorski 2012-11-13 21:23:25 UTC
Yeah, I made the same mistake on Fedora Forum. Sorry about that.

Comment 3 Joe Orton 2013-01-08 17:10:02 UTC
Can you:

1) attach the file /etc/fonts/conf.d/65-fonts-persian.conf on your system?

2) try running:

export MALLOC_CHECK_=2

before executing google-earth, and capture a new backtrace.

Comment 4 Julian Sikorski 2013-01-08 18:00:41 UTC
Created attachment 674983 [details]
stock persian.conf

I'm on F-18 now, this is the new backtrace:
(gdb) bt
#0  poolGrow (pool=pool@entry=0x806f018) at lib/xmlparse.c:6215
#1  0x43321f34 in poolAppend (pool=pool@entry=0x806f018, enc=enc@entry=0xf554fc00, 
    ptr=ptr@entry=0x8085c79 "family\">\n\t\t\t<string>serif</string>\n\t\t</test>\n\t\t<test name=\"weight\" compare=\"more_eq\">\n\t\t\t<int>200</int>\n\t\t</test>\n\t\t<test name=\"size\" compare=\"more_eq\">\n\t\t\t<double>24</double>\n\t\t</test>\n\t\t<edit name=\""..., 
    end=end@entry=0x8085c7f "\">\n\t\t\t<string>serif</string>\n\t\t</test>\n\t\t<test name=\"weight\" compare=\"more_eq\">\n\t\t\t<int>200</int>\n\t\t</test>\n\t\t<test name=\"size\" compare=\"more_eq\">\n\t\t\t<double>24</double>\n\t\t</test>\n\t\t<edit name=\"family"...) at lib/xmlparse.c:6148
#2  0x43321f6d in poolStoreString (pool=pool@entry=0x806f018, enc=enc@entry=0xf554fc00, 
    ptr=0x8085c79 "family\">\n\t\t\t<string>serif</string>\n\t\t</test>\n\t\t<test name=\"weight\" compare=\"more_eq\">\n\t\t\t<int>200</int>\n\t\t</test>\n\t\t<test name=\"size\" compare=\"more_eq\">\n\t\t\t<double>24</double>\n\t\t</test>\n\t\t<edit name=\""..., 
    end=0x8085c7f "\">\n\t\t\t<string>serif</string>\n\t\t</test>\n\t\t<test name=\"weight\" compare=\"more_eq\">\n\t\t\t<int>200</int>\n\t\t</test>\n\t\t<test name=\"size\" compare=\"more_eq\">\n\t\t\t<double>24</double>\n\t\t</test>\n\t\t<edit name=\"family"...)
    at lib/xmlparse.c:6201
#3  0x43324981 in storeAtts (parser=parser@entry=0x806ee78, enc=enc@entry=0xf554fc00, 
    attStr=0x8085c6d "<test name=\"family\">\n\t\t\t<string>serif</string>\n\t\t</test>\n\t\t<test name=\"weight\" compare=\"more_eq\">\n\t\t\t<int>200</int>\n\t\t</test>\n\t\t<test name=\"size\" compare=\"more_eq\">\n\t\t\t<double>24</double>\n\t\t</test>\n\t\t"..., tagNamePtr=tagNamePtr@entry=0x80803c4, bindingsPtr=bindingsPtr@entry=0x80803e4) at lib/xmlparse.c:2810
#4  0x4332576f in doContent (parser=parser@entry=0x806ee78, startTagLevel=startTagLevel@entry=0, enc=0xf554fc00, 
    s=0x8085c6d "<test name=\"family\">\n\t\t\t<string>serif</string>\n\t\t</test>\n\t\t<test name=\"weight\" compare=\"more_eq\">\n\t\t\t<int>200</int>\n\t\t</test>\n\t\t<test name=\"size\" compare=\"more_eq\">\n\t\t\t<double>24</double>\n\t\t</test>\n\t\t"..., 
    s@entry=0x80859a8 "<family>Koodak</family>\n\t\t\t<family>Terafik</family>\n\t\t</accept>\n\t</alias>\n\n\t<!-- Persian monospace fonts -->\n\t<alias>\n\t\t<family>monospace</family>\n\t\t<accept>\n\t\t\t<!-- Not really monospace -->\n\t\t\t<famil"..., 
    end=end@entry=0x808612e "", nextPtr=nextPtr@entry=0x806ee90, haveMore=1 '\001') at lib/xmlparse.c:2439
#5  0x433268b3 in contentProcessor (parser=0x806ee78, 
    start=0x80859a8 "<family>Koodak</family>\n\t\t\t<family>Terafik</family>\n\t\t</accept>\n\t</alias>\n\n\t<!-- Persian monospace fonts -->\n\t<alias>\n\t\t<family>monospace</family>\n\t\t<accept>\n\t\t\t<!-- Not really monospace -->\n\t\t\t<famil"..., 
    end=0x808612e "", endPtr=0x806ee90) at lib/xmlparse.c:2105
#6  0x4332ac8f in XML_ParseBuffer (parser=parser@entry=0x806ee78, len=len@entry=1926, isFinal=isFinal@entry=0)
    at lib/xmlparse.c:1651
#7  0x432f82b1 in IA__FcConfigParseAndLoad (config=config@entry=0x80609b0, 
    name=0x806e048 "/etc/fonts/conf.d/65-fonts-persian.conf", complain=complain@entry=0) at fcxml.c:2967
#8  0x432f85a9 in FcConfigParseAndLoadDir (complain=0, dir=0x8064d70 "/etc/fonts/conf.d", name=0xffffbacc "/etc/fonts/conf.d", 
    config=0x80609b0) at fcxml.c:2832
#9  IA__FcConfigParseAndLoad (config=0x80609b0, name=name@entry=0xffffbacc "/etc/fonts/conf.d", complain=complain@entry=0)
    at fcxml.c:2903
#10 0x432f8a3e in FcParseInclude (parse=0xffffb9f0) at fcxml.c:2081
#11 FcEndElement (userData=0xffffb9f0, name=0x805f668 "include") at fcxml.c:2551
#12 0x43325a4e in doContent (parser=parser@entry=0x805fa48, startTagLevel=startTagLevel@entry=0, enc=0xf554fc00, 
    s=0x8061a10 "</include>\n\n<!-- Font cache directory list -->\n\n\t<cachedir>/var/cache/fontconfig</cachedir>\n\t<cachedir prefix=\"xdg\">fontconfig</cachedir>\n\t<!-- the following element will be removed in the future -->\n"..., 
    s@entry=0x80612a3 "<fontconfig>\n\n<!--\n\tDO NOT EDIT THIS FILE.\n\tIT WILL BE REPLACED WHEN FONTCONFIG IS UPDATED.\n\tLOCAL CHANGES BELONG IN 'local.conf'.\n\n\tThe intent of this standard configuration file is to be adequate fo"..., 
    end=end@entry=0x80627ee "", nextPtr=nextPtr@entry=0x805fa60, haveMore=1 '\001') at lib/xmlparse.c:2532
#13 0x433268b3 in contentProcessor (parser=parser@entry=0x805fa48, 
    start=start@entry=0x80612a3 "<fontconfig>\n\n<!--\n\tDO NOT EDIT THIS FILE.\n\tIT WILL BE REPLACED WHEN FONTCONFIG IS UPDATED.\n\tLOCAL CHANGES BELONG IN 'local.conf'.\n\n\tThe intent of this standard configuration file is to be adequate fo"..., 
    end=end@entry=0x80627ee "", endPtr=endPtr@entry=0x805fa60) at lib/xmlparse.c:2105
#14 0x433284c8 in doProlog (parser=parser@entry=0x805fa48, enc=<optimized out>, 
    s=0x80612a3 "<fontconfig>\n\n<!--\n\tDO NOT EDIT THIS FILE.\n\tIT WILL BE REPLACED WHEN FONTCONFIG IS UPDATED.\n\tLOCAL CHANGES BELONG IN 'local.conf'.\n\n\tThe intent of this standard configuration file is to be adequate fo"..., 
    s@entry=0x8061220 "<?xml version=\"1.0\"?>\n<!DOCTYPE fontconfig SYSTEM \"fonts.dtd\">\n<!-- /etc/fonts/fonts.conf file to configure system font access -->\n<fontconfig>\n\n<!--\n\tDO NOT EDIT THIS FILE.\n\tIT WILL BE REPLACED WHEN "..., 
    end=end@entry=0x80627ee "", tok=<optimized out>, 
    next=0x80612a3 "<fontconfig>\n\n<!--\n\tDO NOT EDIT THIS FILE.\n\tIT WILL BE REPLACED WHEN FONTCONFIG IS UPDATED.\n\tLOCAL CHANGES BELONG IN 'local.conf'.\n\n\tThe intent of this standard configuration file is to be adequate fo"..., 
    nextPtr=nextPtr@entry=0x805fa60, haveMore=1 '\001') at lib/xmlparse.c:4016
#15 0x43328c63 in prologProcessor (parser=0x805fa48, 
    s=0x8061220 "<?xml version=\"1.0\"?>\n<!DOCTYPE fontconfig SYSTEM \"fonts.dtd\">\n<!-- /etc/fonts/fonts.conf file to configure system font access -->\n<fontconfig>\n\n<!--\n\tDO NOT EDIT THIS FILE.\n\tIT WILL BE REPLACED WHEN "..., end=0x80627ee "", 
    nextPtr=0x805fa60) at lib/xmlparse.c:3739
#16 0x4332ac8f in XML_ParseBuffer (parser=parser@entry=0x805fa48, len=len@entry=5582, isFinal=isFinal@entry=0)
    at lib/xmlparse.c:1651
#17 0x432f82b1 in IA__FcConfigParseAndLoad (config=config@entry=0x80609b0, name=name@entry=0x0, complain=complain@entry=1)
    at fcxml.c:2967
#18 0x432eb2b7 in IA__FcInitLoadConfig () at fcinit.c:67
#19 0x432eb45a in IA__FcInitLoadConfigAndFonts () at fcinit.c:117
#20 0x432eb6ed in IA__FcInit () at fcinit.c:140
#21 0xf73c202f in qt_init(QApplicationPrivate*, int, _XDisplay*, unsigned long, unsigned long) () from ./libQtGui.so.4
#22 0xf733cb2a in QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) () from ./libQtGui.so.4
#23 0xf733da53 in QApplication::QApplication(int&, char**, int) () from ./libQtGui.so.4
#24 0xf7ef1e79 in earth::client::Application::Application(int&, char**) () from ./libgoogleearth_free.so
#25 0xf7e5e7ff in ?? () from ./libgoogleearth_free.so
#26 0xf7e5ebb9 in earthmain () from ./libgoogleearth_free.so
#27 0x0804877b in ?? ()
#28 0x42aa5865 in __libc_start_main () from /lib/libc.so.6
#29 0x080486c1 in ?? ()

Comment 5 Joe Orton 2013-01-09 11:21:10 UTC
Well, it's a heap corruption bug.  valgrind emits a couple of warnings before the crash inside expat.  It's highly likely to be a bug outside expat.  Please report it to Google.


Note You need to log in before you can comment on or make changes to this bug.