build order (random) problem with QtGenerated* files

Bug #406343 reported by Janek Kozicki
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Yade
Fix Released
High
Unassigned

Bug Description

Make a fresh checkout, then built with lots of jobs (for example jobs=8).
And there's a 50% chance that you will get this build error:

  yade/gui-qt3/SimulationController.hpp:22 error:QtGeneratedSimulationController.h: No such file or directory

When you invoke scons second time - it will just work.

This problem occurs because sometimes SimulationController.hpp is
included & compiled *before* the file QtGeneratedSimulationController.h
had a chance to be generated. Of course on second build it is already
generated, so the second time it works.

Tags: scons
Revision history for this message
Janek Kozicki (cosurgi) wrote :

maybe the simplest approach would be to compile in two-passes. First (only if QT is enabled) generate all QtGenerated* files - this will be really fast, then do the usual compilation.

Revision history for this message
Václav Šmilauer (eudoxos) wrote :

#1 wouldn't work since scons handles the generation of files by itself.

I tried to add explicit dependency, the problem comes from GLViewer.cpp. Probably an issue of moc generating header files elsewhere than in the same directory and such. I was now able to reproduce the bug in all cases, even with 1 job, just by running scons after "scons clean".

Try r1904 and mark the bug as Fix Released if it is OK for you. For me it is OK now.

Changed in yade:
importance: Undecided → High
milestone: none → 0.20-0
status: New → In Progress
Revision history for this message
Janek Kozicki (cosurgi) wrote :

For me this bug occurred randomly since long time ago (like 6 months). Let's wait few weeks to see if it really does not occur again.

Revision history for this message
Václav Šmilauer (eudoxos) wrote :

Reopen if you encounter it. For me it has not happened since.

Changed in yade:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.