[Scons-users] Problems with SCons parallel build

Brady Johnson bradyallenjohnson at gmail.com
Fri Mar 21 18:38:36 EDT 2014


Sorry guys, I spoke too soon. It worked with "-j 4", but then I got greedy
and tried with "-j 12" and "-j 8" and it failed again, saying source files
dont exist, even though they do indeed exist, and they are not generated.
Seems like the "cd" in a Command() was one problem, because it wouldnt work
before with -j 2 nor -j 4. Now there's something else.

Regards,

Brady



On Fri, Mar 21, 2014 at 11:30 PM, Brady Johnson <bradyallenjohnson at gmail.com

> wrote:



> Wow, I fixed it!! Actually a few emails ago when I reported that removing

> all the calls to cd from the Command() builders failed, it failed because

> of what I commented out, later parts of the build needed these files. I

> changed all the calls to "cd /some/dest/dir ; jar xf /some/file" with

> "unzip -d /some/dest/dir /some/file" (no cd's anywhere) and now it works

> great with "-j 4"

>

> So then either Command() isnt creating a sub process, or the child process

> is somehow affecting the parent. Either way, calling "cd" in a Command()

> causes parallel building to not work.

>

> Thanks for your help Gary, Dirk, and Evan!!

>

> Regards,

>

> Brady

>

>

>

> On Fri, Mar 21, 2014 at 10:56 PM, Evan Driscoll <driscoll at cs.wisc.edu>wrote:

>

>> On 2014-03-21 16:50, Brady Johnson wrote:

>>

>>> I commented out all the cd's from the Command() builders, and its

>>> still failing.

>>>

>>> Something else that I just considered: I build several RPMs by

>>> calling os.system('rpmbuild...') directly instead of calling the

>>> SCons rpm builder. I wonder if rpmbuild changes directories,

>>> subsequently changing it for the SCons process. Anybody know if this

>>> could cause problems?

>>>

>>

>> A child process can't change the directory of the parent (or, maybe

>> there's a way if you try really hard and jump through hoops or something).

>> That shouldn't be the cause.

>>

>> One thought you could try: change env['ENV']['PATH'] so that

>> x86_64-dx-linux-gnu-g++ is a script you write that outputs the current

>> directory before running. Would at least tell you if this is a wild goose

>> chase. :-)

>>

>> Evan

>>

>>

>>

>>> Thanks,

>>>

>>> Brady

>>>

>>> On Fri, Mar 21, 2014 at 10:30 PM, Brady Johnson

>>> <bradyallenjohnson at gmail.com> wrote:

>>>

>>> The only cd in the entire project is in the aforementioned call to

>>>> Command(), chdir isn't used anywhere, neither via os nor via

>>>> builders.

>>>>

>>>> Regards,

>>>>

>>>> Brady

>>>>

>>>> On Mar 21, 2014 10:26 PM, "Evan Driscoll" <driscoll at cs.wisc.edu>

>>>> wrote:

>>>> On 2014-03-21 16:04, Gary Oberbrunner wrote:

>>>> "cd" in a command is OK, since that runs in a subprocess. But a

>>>> python chdir() would be very bad, since the whole process has only

>>>> one

>>>> current dir, so you're changing it for all threads if you do that.

>>>>

>>>> Don't forget chdir arguments to builders too.

>>>>

>>>> In other words, when using a parallel build:

>>>>

>>>> 1) Command("cd blah && whatever") is OK

>>>> 2) AnyBuilder(..., chdir=1) or AnyBuilder(..., chdir='blah') is NOT

>>>> 3) os.chdir() from a Python function called by a builder is NOT

>>>>

>>>> Evan

>>>>

>>>> _______________________________________________

>>>> Scons-users mailing list

>>>> Scons-users at scons.org

>>>> http://four.pairlist.net/mailman/listinfo/scons-users [1]

>>>>

>>>

>>>

>>>

>>> Links:

>>> ------

>>> [1] http://four.pairlist.net/mailman/listinfo/scons-users

>>>

>>>

>>> _______________________________________________

>>> Scons-users mailing list

>>> Scons-users at scons.org

>>> http://four.pairlist.net/mailman/listinfo/scons-users

>>>

>> _______________________________________________

>> Scons-users mailing list

>> Scons-users at scons.org

>> http://four.pairlist.net/mailman/listinfo/scons-users

>>

>

>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://four.pairlist.net/pipermail/scons-users/attachments/20140321/77b7c019/attachment.htm


More information about the Scons-users mailing list