Bug 974069

Summary: doxygen-1.8.4 hangs in a infinity loop in some case
Product: [Fedora] Fedora Reporter: Adrien Devresse <adev88>
Component: doxygenAssignee: Than Ngo <than>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: rawhideCC: atu, than
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-06-24 15:34:23 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:

Description Adrien Devresse 2013-06-13 11:40:11 UTC
Description of problem:

doxygen 1.8.4 goes to an inifinity loop inside a koji build when generating documentation.

This bug can be reproduced only in a specific case :
- The platform must be RHEL6 / SL6 
- mock must try to build for a rawhide target
- the src code used for the documentation generation must contains a commented loop ( ex : while(ret <0 ) )

This issue is not minor, all koji builds are under EL6 and are used to build  fedora rawhide, this issue can hangs any src.rpm koji build with a doxygen generation for rawhide.


Version-Release number of selected component (if applicable):
doxygen-1.8.4-1

How reproducible:

On RHEL6/SL6 :

wget http://grid-deployment.web.cern.ch/grid-deployment/dms/lcgutil/tar/davix-0.2.0-1.el5.centos.src.rpm

mock -r fedora-rawhide-x86_64 davix-0.2.0-1.el5.centos.src.rpm

On Koji :


wget http://grid-deployment.web.cern.ch/grid-deployment/dms/lcgutil/tar/davix-0.2.0-1.el5.centos.src.rpm

koji build --scratch rawhide davix-0.2.0-1.el5.centos.src.rpm 


Example :
http://koji.fedoraproject.org/koji/taskinfo?taskID=5471071



Actual results:

-> infinity loop

Expected results:

-> finished with warnings

Additional info:

-> occures only on a EL6 mock building for rawhide, not on a f18 mock building for rawhide


Stack trace :

(gdb) bt
#0  0x0000000000760f60 in QString::findRev (this=this@entry=0x7fffffffd410, str=..., 
    index=<optimized out>, index@entry=-2, cs=cs@entry=true) at qstring.cpp:13064
#1  0x0000000000761111 in QString::findRev (this=this@entry=0x7fffffffd410, c=..., 
    index=index@entry=-2, cs=cs@entry=true) at qstring.cpp:13021
#2  0x0000000000605da2 in findRev (cs=true, index=-2, c=40 '(', this=0x7fffffffd410)
    at ../qtools/qstring.h:736
#3  findParameterList (name=...) at util.cpp:1855
#4  0x0000000000620328 in resolveRef (scName=0x16b4470 "Davix::HttpRequest", 
    name=0x16b9670 "while(ret > 0)", inSeeBlock=<optimized out>, 
    resContext=resContext@entry=0x7fffffffd720, 
    resMember=resMember@entry=0x7fffffffd728, 
    lookForSpecialization=lookForSpecialization@entry=true, currentFile=0x10dbdd0, 
    checkScope=checkScope@entry=true) at util.cpp:4363
#5  0x00000000006c5960 in handleLinkedWord (parent=parent@entry=0x16b9aa0, 
    children=...) at docparser.cpp:1030
#6  0x00000000006d004b in DocPara::parse (this=this@entry=0x16b9a60)
    at docparser.cpp:6311
#7  0x00000000006d98b1 in DocRoot::parse (this=this@entry=0x16b2360)
    at docparser.cpp:6843
#8  0x00000000006d9f81 in validatingParseDoc (
    fileName=fileName@entry=0x16b64b0 "/builddir/build/BUILD/davix-0.2.0/src/request/httprequest.hpp", startLine=startLine@entry=119, ctx=ctx@entry=0x127a9e0, 
    md=md@entry=0x1124360, 
    input=0x16b7ad0 " the multi-part HTTP Request of davix\n should be used for request with a large answer\n\n\n example :\n  DavixError* tmp_err=NULL;\n  beginRequest(&tmp_err) //\n  do{\n       ret= readBlock(buffer, size_read"..., 
    indexWords=indexWords@entry=true, isExample=isExample@entry=false, 
    exampleName=exampleName@entry=0x0, singleLine=false, 
    linkFromIndex=linkFromIndex@entry=false) at docparser.cpp:7085
---Type <return> to continue, or q <return> to quit---
#9  0x000000000059555a in OutputList::generateDoc (this=this@entry=0x1265cf0, 
    fileName=0x16b64b0 "/builddir/build/BUILD/davix-0.2.0/src/request/httprequest.hpp", startLine=startLine@entry=119, ctx=ctx@entry=0x127a9e0, md=md@entry=0x1124360, 
    docStr=..., indexWords=indexWords@entry=true, isExample=isExample@entry=false, 
    exampleName=exampleName@entry=0x0, singleLine=singleLine@entry=false, 
    linkFromIndex=linkFromIndex@entry=false) at outputlist.cpp:153
#10 0x0000000000581452 in MemberDef::writeDocumentation (this=0x1124360, 
    ml=ml@entry=0x11201b0, ol=..., 
    scName=scName@entry=0x16b0050 "Davix::HttpRequest", 
    container=container@entry=0x127a9e0, inGroup=<optimized out>, 
    showEnumValues=showEnumValues@entry=false, showInline=showInline@entry=false)
    at memberdef.cpp:2745
#11 0x000000000058a857 in MemberList::writeDocumentation (this=this@entry=0x11201b0, 
    ol=..., scopeName=0x16b0050 "Davix::HttpRequest", 
    container=container@entry=0x127a9e0, 
    title=title@entry=0x16bb000 "Member Function Documentation", 
    showEnumValues=showEnumValues@entry=false, showInline=showInline@entry=false)
    at memberlist.cpp:655
#12 0x000000000067416e in ClassDef::writeMemberDocumentation (
    this=this@entry=0x127a9e0, ol=..., lt=<optimized out>, title=..., 
    showInline=showInline@entry=false) at classdef.cpp:4269
#13 0x0000000000676984 in ClassDef::writeDocumentationContents (
    this=this@entry=0x127a9e0, ol=...) at classdef.cpp:1944
#14 0x0000000000676df3 in ClassDef::writeDocumentation (this=0x127a9e0, ol=...)
    at classdef.cpp:2046
#15 0x0000000000439626 in generateOutput () at doxygen.cpp:8906
#16 0x000000000040afee in main (argc=2, argv=0x7fffffffe6a8) at main.cpp:38


Adev

Comment 1 Adrien Devresse 2013-06-24 11:31:34 UTC
No news ?

Comment 2 Than Ngo 2013-06-24 15:34:23 UTC
it's fixed in doxygen-1.8.4-2.fc20. You can download the new doxygen package from:
http://koji.fedoraproject.org/koji/taskinfo?taskID=5536046

thanks for your report.

Comment 3 Adrien Devresse 2013-06-24 15:46:54 UTC
Hi Ngo, 

Thank you very much for your fix, but your koji seems to have failed.

Adrien

Comment 4 Than Ngo 2013-06-27 12:55:38 UTC
i already saw the build failure, it's a bug in texlive which has caused this failure. It will take time to fix texlive, so please patient!

Comment 5 Adrien Devresse 2013-06-27 13:00:58 UTC
Thank you Ngo, I'm not in a hurry and it's clearly not urgent.

I reported this just for safety reason, if a mass rebuild occures it can potentially break things: a lot of package use doxygen.



Adrien.