Boost logo

Boost-Build :

Subject: Re: [Boost-build] Early bjam abort
From: Nogradi, Chris (Chris.Nogradi_at_[hidden])
Date: 2012-04-25 14:11:53


Steve,

Thanks for the help with this. I was able to reproduce this in a small test that I have attached in case someone more familiar with the engine knows what the problem might be. I will continue to debug it on my side and see if I can find a fix, though it may take me a bit longer. The issue occurs when generated headers are used and there is recursion in the includes.

The attached test does this w/o concurrency:

$ bjam
...found 15 targets...
...updating 8 targets...
common.mkdir bin
common.mkdir bin\msvc-8.0
common.mkdir bin\msvc-8.0\debug
common.mkdir bin\msvc-8.0\debug\threading-multi
Jamfile</C:/work/bug>.in2out bin\msvc-8.0\debug\threading-multi\header_gen.h
compile-c-c++ bin\msvc-8.0\debug\threading-multi\main.obj
main.c
msvc.link bin\msvc-8.0\debug\threading-multi\test.exe
msvc.manifest bin\msvc-8.0\debug\threading-multi\test.exe
...updated 8 targets...

With concurrency:

$ bjam -j2
...found 15 targets...
...updating 8 targets...
common.mkdir bin
common.mkdir bin\msvc-8.0
common.mkdir bin\msvc-8.0\debug
common.mkdir bin\msvc-8.0\debug\threading-multi
Jamfile</C:/work/bug>.in2out bin\msvc-8.0\debug\threading-multi\header_gen.h
...updated 5 targets...

$ bjam -j2
...found 15 targets...
...updating 3 targets...
compile-c-c++ bin\msvc-8.0\debug\threading-multi\main.obj
main.c
msvc.link bin\msvc-8.0\debug\threading-multi\test.exe
msvc.manifest bin\msvc-8.0\debug\threading-multi\test.exe
...updated 3 targets...

Thanks,

Chris

-----Original Message-----
From: boost-build-bounces_at_[hidden] [mailto:boost-build-bounces_at_[hidden]] On Behalf Of Steven Watanabe
Sent: Monday, April 23, 2012 5:32 PM
To: Boost.Build developer's and user's list
Subject: Re: [Boost-build] Early bjam abort

AMDG

On 04/23/2012 02:37 PM, Nogradi, Chris wrote:
> I have a project with ~70k targets including generated header and source files that builds fine without concurrency (-j1):
>
> ...found 72133 targets...
> ...updating 5981 targets...
> <snip>
> ...updated 6237 targets...
>
> but stops in the middle of the build when using concurrency (-j2 to -j8). There are no failures reported, it just stops and reports the target count that was updated but does not build all targets:
>
> ...found 72133 targets...
> ...updating 5981 targets...
> <snip>
> ...updated 5930 targets...
>
> If I run it again a number of times w/ concurrency enabled it will eventually complete (not sure why target count increased):
>

The target count probably increased because
it includes targets that were found by scanning
generated headers.

> ...found 78019 targets...
> ...updating 2094 targets...
> <snip>
> ...updated 1778 targets...
>
> ...found 78019 targets...
> ...updating 2088 targets...
> <snip>
> ...updated 1772 targets...
>
> ...found 78019 targets...
> ...updating 316 targets...
> <snip>
> ...updated 316 targets...
>
> Any ideas on how to debug this issue?
>

-d+13 might help.
Do the targets that get skipped silently have anything in common?

I'm guessing that the problem is that rescanning
generated headers is messing up asynccnt for
some targets.

> I am using SVN 77778 but have seen the issue since 4-11-2011 (not sure what SVN version at that time).
>

In Christ,
Steven Watanabe
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build

This e-mail and any attachments may contain confidential material for the sole use of the intended recipient. If you are not the intended recipient, please be aware that any disclosure, copying, distribution or use of this e-mail or any attachment is prohibited. If you have received this e-mail in error, please contact the sender and delete all copies.

Thank you for your cooperation.




Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk