Bug 1027073

Summary: doxygen segmentation fault building plplot documentation
Product: [Fedora] Fedora Reporter: Orion Poplawski <orion>
Component: doxygenAssignee: Than Ngo <than>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 20CC: than
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: doxygen-1.8.6-1.fc20 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-01-08 07:54:04 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 998988    

Description Orion Poplawski 2013-11-06 04:32:49 UTC
Description of problem:

plplot build fails on F20:

http://koji.fedoraproject.org/koji/buildinfo?buildID=476416

...
QGDict::hashAsciiKey: Invalid null key
/builddir/build/BUILD/plplot-5.9.9-svn12479/bindings/java/PLCallbackCT.java:5: warning: Internal inconsistency: scope for class plplot::core::PLCallbackCT not found!
/builddir/build/BUILD/plplot-5.9.9-svn12479/bindings/java/PLCallbackLabel.java:5: warning: Internal inconsistency: scope for class plplot::core::PLCallbackLabel not found!
/builddir/build/BUILD/plplot-5.9.9-svn12479/bindings/java/PLCallbackMapform.java:5: warning: Internal inconsistency: scope for class plplot::core::PLCallbackMapform not found!
/builddir/build/BUILD/plplot-5.9.9-svn12479/bindings/java/PLStream.java:32: warning: Internal inconsistency: scope for class plplot::core::PLStream not found!
/builddir/build/BUILD/plplot-5.9.9-svn12479/fedora/bindings/java/config.java:23: warning: Internal inconsistency: scope for class plplot::core::config not found!
/builddir/build/BUILD/plplot-5.9.9-svn12479/fedora/bindings/java/PLGraphicsIn.java:11: warning: Internal inconsistency: scope for class plplot::core::PLGraphicsIn not found!
/builddir/build/BUILD/plplot-5.9.9-svn12479/fedora/bindings/java/plplotjavac.java:11: warning: Internal inconsistency: scope for class plplot::core::plplotjavac not found!
/builddir/build/BUILD/plplot-5.9.9-svn12479/fedora/bindings/java/plplotjavacConstants.java:11: warning: Internal inconsistency: scope for class plplot::core::plplotjavacConstants not found!
/builddir/build/BUILD/plplot-5.9.9-svn12479/fedora/bindings/java/plplotjavacJNI.java:11: warning: Internal inconsistency: scope for class plplot::core::plplotjavacJNI not found!
error: NamespaceDef::insertMembers(): member `_swig_property' with class scope `' inserted in namespace scope `plplotc'!
/bin/sh: line 1: 28128 Segmentation fault      /usr/bin/doxygen

Version-Release number of selected component (if applicable):
doxygen-1.8.5-1.fc20

Comment 1 Orion Poplawski 2013-11-28 04:45:59 UTC
There are a number of "Invalid null key" messages which may be related.  They seem to come from:

Building group list...
Building directory list...
Building namespace list...

(gdb) bt
#0  qWarning (msg=msg@entry=0xb0e3c8 "QGDict::hashAsciiKey: Invalid null key") at qglobal.cpp:410
#1  0x00000000007622bb in QGDict::hashKeyAscii (this=this@entry=0x251be30, key=key@entry=0x0) at qgdict.cpp:128
#2  0x00000000007631b9 in QGDict::look_ascii (this=0x251be30, key=0x0, d=d@entry=0x0, op=op@entry=0) at qgdict.cpp:399
#3  0x000000000044ef28 in find (k=<optimized out>, this=<optimized out>) at ../qtools/qasciidict.h:66
#4  find (this=<optimized out>, key=...) at sortdict.h:238
#5  FileDef::addUsingDirective (this=this@entry=0x1125c70, nd=nd@entry=0x23e72d0) at filedef.cpp:1110
#6  0x0000000000412c2c in findUsingDirectives (rootNav=0x14c2200) at doxygen.cpp:1946
#7  0x0000000000412775 in findUsingDirectives (rootNav=0x14c2010) at doxygen.cpp:1960
#8  0x0000000000412775 in findUsingDirectives (rootNav=0x165bba0) at doxygen.cpp:1960
#9  0x0000000000412775 in findUsingDirectives (rootNav=rootNav@entry=0x10cad10) at doxygen.cpp:1960
#10 0x0000000000441c0c in parseInput () at doxygen.cpp:10826
#11 0x000000000040b3a9 in main (argc=1, argv=0x7fffffffd7a8) at main.cpp:37
#5  FileDef::addUsingDirective (this=this@entry=0x1125c70, nd=nd@entry=0x23e72d0) at filedef.cpp:1110
1110      if (m_usingDirList->find(nd->qualifiedName())==0)
(gdb) print nd
$3 = (NamespaceDef *) 0x23e72d0
(gdb) print *nd
$4 = {<Definition> = {<DefinitionIntf> = {_vptr.DefinitionIntf = 0x91a850 <vtable for NamespaceDef+16>}, m_impl = 0x23e73e0, m_name = {
      m_data = 0x23a9570 "java::io::"}, m_isSymbol = true, m_symbolName = {m_data = 0x0}, m_defLine = 1, m_defColumn = 1}, visited = false, fileName = {
    m_data = 0x23c3ca0 "namespacejava::io::"}, files = {<QList<char>> = {<QGList> = {<QCollection> = {_vptr.QCollection = 0x792c30 <vtable for QStrList+16>, 
          del_item = true}, firstNode = 0x0, lastNode = 0x0, curNode = 0x0, curIndex = -1, numNodes = 0, iterators = 0x0}, <No data fields>}, dc = true}, 
  usingDirList = 0x0, usingDeclList = 0x0, m_innerCompounds = 0x23e7610, m_allMembersDict = 0x0, m_memberLists = {<QGList> = {<QCollection> = {
        _vptr.QCollection = 0x7950d0 <vtable for QList<MemberList>+16>, del_item = false}, firstNode = 0x0, lastNode = 0x0, curNode = 0x0, curIndex = -1, 
      numNodes = 0, iterators = 0x0}, <No data fields>}, memberGroupSDict = 0x23e76d0, classSDict = 0x23e7490, namespaceSDict = 0x23e7550, m_subGrouping = true, 
  m_type = NamespaceDef::NAMESPACE, m_isPublished = false}
(gdb) print nd->qualifiedName()
$5 = {m_data = 0x0}

Comment 2 Orion Poplawski 2013-11-28 04:49:25 UTC
Building group list...
Building directory list...
Building namespace list...
QGDict::hashAsciiKey: Invalid null key
QGDict::hashAsciiKey: Invalid null key
Building file list...
Building class list...
Associating documentation with classes...
Computing nesting relations for classes...
/export/home/orion/fedora/plplot/plplot-5.9.9-svn12479/bindings/java/PLCallbackCT.java:5: warning: Internal inconsistency: scope for class plplot::core::PLCallbackCT not found!
/export/home/orion/fedora/plplot/plplot-5.9.9-svn12479/bindings/java/PLCallbackLabel.java:5: warning: Internal inconsistency: scope for class plplot::core::PLCallbackLabel not found!
/export/home/orion/fedora/plplot/plplot-5.9.9-svn12479/bindings/java/PLCallbackMapform.java:5: warning: Internal inconsistency: scope for class plplot::core::PLCallbackMapform not found!
/export/home/orion/fedora/plplot/plplot-5.9.9-svn12479/bindings/java/PLStream.java:32: warning: Internal inconsistency: scope for class plplot::core::PLStream not found!
/export/home/orion/fedora/plplot/plplot-5.9.9-svn12479/fedora/bindings/java/config.java:23: warning: Internal inconsistency: scope for class plplot::core::config not found!
/export/home/orion/fedora/plplot/plplot-5.9.9-svn12479/fedora/bindings/java/PLGraphicsIn.java:11: warning: Internal inconsistency: scope for class plplot::core::PLGraphicsIn not found!
/export/home/orion/fedora/plplot/plplot-5.9.9-svn12479/fedora/bindings/java/plplotjavac.java:11: warning: Internal inconsistency: scope for class plplot::core::plplotjavac not found!
/export/home/orion/fedora/plplot/plplot-5.9.9-svn12479/fedora/bindings/java/plplotjavacConstants.java:11: warning: Internal inconsistency: scope for class plplot::core::plplotjavacConstants not found!
/export/home/orion/fedora/plplot/plplot-5.9.9-svn12479/fedora/bindings/java/plplotjavacJNI.java:11: warning: Internal inconsistency: scope for class plplot::core::plplotjavacJNI not found!
Building example list...
Searching for enumerations...
Searching for documented typedefs...
Searching for members imported via using declarations...
Searching for included using directives...
Searching for documented variables...
error: NamespaceDef::insertMembers(): member `_swig_property' with class scope `' inserted in namespace scope `plplotc'!
Building interface member list...
Building member list...
Searching for friends...
Searching for documented defines...
Computing class inheritance relations...
Computing class usage relations...

Program received signal SIGSEGV, Segmentation fault.
extractClassNameFromType (type=..., pos=@0x7fffffffd12c: 0, name=..., templSpec=..., lang=SrcLangExt_Fortran) at util.cpp:5865
5865        if (type.at(pos)==',') return -1;
(gdb) print type
$2 = (const QCString &) @0x7fffffffd130: {m_data = 0x0}

So we may at least be able to avoid a segfault by checking for a non-null "type", but I suspect that this is a symptom of another issue.

Comment 3 Fedora Update System 2013-12-27 17:08:17 UTC
doxygen-1.8.6-1.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/doxygen-1.8.6-1.fc20

Comment 4 Fedora Update System 2013-12-28 02:11:39 UTC
Package doxygen-1.8.6-1.fc20:
* should fix your issue,
* was pushed to the Fedora 20 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing doxygen-1.8.6-1.fc20'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2013-24032/doxygen-1.8.6-1.fc20
then log in and leave karma (feedback).

Comment 5 Fedora Update System 2014-01-08 07:54:04 UTC
doxygen-1.8.6-1.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.