Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 156115 - dev-games/cegui-0.5.0: build hangs in doxygen call when USE=doc is set
Summary: dev-games/cegui-0.5.0: build hangs in doxygen call when USE=doc is set
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Games
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-11-24 03:56 UTC by Martin von Gagern
Modified: 2009-06-07 20:50 UTC (History)
3 users (show)

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


Attachments
log of a hanging cegui emerge (dev-games:cegui-0.5.0:20061124-035509.log,257.25 KB, text/plain)
2006-11-24 03:57 UTC, Martin von Gagern
Details
emerge --info (emerge.info,3.43 KB, text/plain)
2006-11-24 03:58 UTC, Martin von Gagern
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Martin von Gagern 2006-11-24 03:56:13 UTC
My emerge of dev-games/cegui-0.5.0 did not proceed for several hours.

The lowest leaf in pstree was doxygen.

strace attached to doxygen said it was in no syscall.

ltrace only printed the following two lines:
  --- SIGSTOP (Stopped (signal)) ---
  --- SIGSTOP (Stopped (signal)) ---

/proc/PID/fd shows me 4 open fds, two of them ends of a pipe:
0 -> /dev/pts/5
1 -> pipe:[4319228]
2 -> pipe:[4319228]
3 -> /var...work/CEGUI-0.5.0/documentation/api_reference/doxygen_objdb_6948.tmp

Some lines from the messages on screen, will attach full log later on:
...
Parsing file /var/tmp/portage/dev-games/cegui-0.5.0/work/CEGUI-0.5.0/src/falagard/CEGUIFalWidgetLookFeel.cpp...
Preprocessing /var/tmp/portage/dev-games/cegui-0.5.0/work/CEGUI-0.5.0/src/falagar/var/tmp/portage/dev-games/cegui-0.5.0/work/CEGUI-0.5.0/src/CEGUISystem.cpp:99: Warning: Compound CEGUI::MouseClickTrackerImpl is not documented.
/var/tmp/portage/dev-games/cegui-0.5.0/work/CEGUI-0.5.0/include/CEGUIDefaultResourceProvider.h:47: Warning: Compound CEGUI::DefaultResourceProvider is not documented.
...
Possible recursive class relation while inside CEGUI::String::const_iterator and looking for CEGUI::String
Possible recursive class relation while inside CEGUI::String::const_iterator and looking for CEGUI::String
Possible recursive class relation while inside CEGUI::String::const_iterator and looking for CEGUI::MultiColumnList::ListRow
Possible recursive class relation while inside CEGUI::String::const_iterator and looking for CEGUI::MultiColumnList::ListRow
Possible recursive class relation while inside CEGUI::String::const_iterator and looking for CEGUI::String::iterator< const const std::random_access_iterator_tag, uint32, std::ptrdiff_t, uint32 *, uint32 & >                                                                                                              

Killing doxygen worked, i.e. ebuild aborted, but at least it did respond.

emerge --resume hangs again, so it is reproducible.

USE flags were "doc opengl xml -devil -examples -expat -lua -xerces-c"

Without the doc USE flag everything works just fine.
Comment 1 Martin von Gagern 2006-11-24 03:57:43 UTC
Created attachment 102647 [details]
log of a hanging cegui emerge
Comment 2 Martin von Gagern 2006-11-24 03:58:31 UTC
Created attachment 102648 [details]
emerge --info
Comment 3 Tristan Heaven (RETIRED) gentoo-dev 2006-11-28 15:07:54 UTC
It works with doxygen-1.4.7 but not 1.5.1
Comment 4 Martin von Gagern 2007-02-08 18:12:46 UTC
Problem persists with cegui-0.5.0b.
Comment 5 Jason Collison 2007-03-05 22:02:11 UTC
I can confirm this problem on my system. cegui emerge would hang in the section mentioned above. Disabling the "doc" use flag allowed cegui to compile.

jason
Comment 6 Francisco José Cañizares Santofimia 2007-04-03 18:01:04 UTC
Same here.
Comment 7 Steve Arnold gentoo-dev 2007-04-05 06:33:59 UTC
This looks like a problem here, when doxygen goes from falgar to falgard:

Preprocessing /var/tmp/portage/dev-games/cegui-0.5.0/work/CEGUI-0.5.0/src/falagar/var/tmp/portage/...

It's literally a recursion in the portage path.  Try patching the ebuild or makefiles to get rid of the extra ${D}...
Comment 8 Martin von Gagern 2007-04-16 19:35:06 UTC
Still an issue with cegui-0.5.0b-r1.

Now the beginning of the problem looks like this:
Preprocessing /var/tmp/portage/dev-games/cegui-0.5.0b-r1/work/CEGUI-0.5.0/src/falagard/CEGUIFalXMLEnumHelper.cpp...
Parsing file /var/tmp/portage/dev-games/cegui-0.5.0b-r1/work/CEGUI-0.5.0/src/falagard/CEGUIFalXMLEnumHelper.cpp...
Preprocessing /var/tmp/portage/dev-games/cegui-0.5.0b-r1/work/CEGUI-0.5.0/src/implementations/mac/macPlugins.cpp...
Parsing file /var/tmp/portage/dev-games/cegui-0.5.0b-r1/work/CEGUI-0.5.0/src/implementations/mac/macPlugins/var/tmp/portage/dev-games/cegui-0.5.0b-r1/work/CEGUI-0.5.0/src/CEGUISystem.cpp:99: Warning: Compound CEGUI::MouseClickTrackerImpl is not documented.

macPlugins does not exist by itself, only macPlugins.cpp and macPlugins.h.

(In reply to comment #7)
> It's literally a recursion in the portage path.  Try patching the ebuild or
> makefiles to get rid of the extra ${D}...

This is ${WORKDIR}, not ${D}. I don't know how doxygen is supposed to work, but the doxyfile looks like files were located by traversing the tree:
INPUT                  = include/ src/
FILE_PATTERNS          = *.h *.cpp *.hpp
RECURSIVE              = YES
So if suddenly there is some weird nonexistant path, then something went wrong with this tree traversal. Nothing a simple patch to the cegui sources will solve.

I ran doxygen in strace manually to locate the problem, but it worked past the described problem only to hang later on after printing "Inheriting documentation...". After that was only a brk call, which completed all right, and then nothing more until I sent a SIGINT.

Next I tried ltrace, which is slow, and creates a huge trace file if used unrestricted. I canceled the run when the ltrace output had exceeded 3GB, by then it was in the "Building full member lists recursively" phase, seemed to still work properly, had not printed a recursive looking path, but had complained about "Possible recursive class relation while inside CEGUI::String::iterator" and const_iterator as well.

Looking at the log from the build associated with comment #4, I found that there, too, there was no recursive path, the warnings, and I had to kill it in the "Inheriting documentation" phase. So I would guess that those strange paths are not the cause of the issue, but rather another symptom of maybe the same problem.

There is a new doxygen release (see bug 174831) but looking at the changelog I expect no miracles from this upgrade.
Comment 9 Tristan Heaven (RETIRED) gentoo-dev 2007-04-26 18:27:40 UTC
Works again with doxygen-1.5.2

Thanks for looking into it.