[Scons-users] Internal Error: No dependency cycle found
Stefan Ross
stefan at electricimp.com
Wed Nov 11 07:48:31 EST 2015
Okay, I've managed to reproduce this with a small example. The problem
shows up when using all of: variant_dir/SideEffect/parallel builds:
SConstruct:
env = Environment()
def make_file(target, source, env):
with open(str(target[0]), 'w') as f:
f.write('gobldygook')
with open(str(target[0]) + '_side_effect', 'w') as side_effect:
side_effect.write('anything')
env.Append(BUILDERS =
{'make_file': Builder(action=Action(make_file))})
SConscript('SConscript',
variant_dir = 'build',
exports={'env':env},
duplicate=0)
# End of file
SConscript:
Import('env')
primary = env.make_file('output', 'test.cpp')
this_causes_problems = env.SideEffect('output_side_effect', 'output')
# End of file
I may have time later to investigate the root-cause, but might be slow
because I'm not familiar with the SCons source.
Should I file a bug?
Thanks
Stefan
On Wed, Nov 11, 2015 at 11:36 AM, Stefan Ross <stefan at electricimp.com>
wrote:
> Hi Dirk,
>
> I've review the patch, it's related to correct tidy-up in the event that a
> Node fails to build. So I don't think this is directly relevant, as I
> shouldn't be getting any failures in the first place. However, it is
> possible it's in the right area, since I'm seeing the following:
>
> 1) Internal error as already reported.
> 2) Build again with identical command...more targets build, including one
> which both was in the list of Nodes for the internal error, and has a
> dependency on a side-effect Node. The second build is successful.
>
> I'm going to investigate further whether this is related to side-effects.
>
> Finally, the patch doesn't work as-is because get_side_effects is not
> defined. This is noted as an issue with patch v2, but applies to v3 as
> well.
>
> Thanks
>
> Stefan
>
> On Tue, Nov 10, 2015 at 7:32 PM, Stefan Ross <stefan at electricimp.com>
> wrote:
>
>> Hi Dirk,
>>
>> Thanks, I'll try the patch tomorrow.
>>
>> With regards to the other questions:
>>
>> 1) Not having a dependency cycle isn't the problem, it looks like it
>> detects a cycle, then tries to follow it, and finds that in fact there is
>> no cycle.
>> 2) So far I've been unable to reproduce this with a small example. Our
>> application is commercial so I can't provide the original code, and we have
>> several hundred files being built so it may be hard to reduce to an
>> effective example.
>>
>> Thanks
>>
>> Stefan
>>
>> On Tue, Nov 10, 2015 at 6:59 PM, Dirk Bächle <tshortik at gmx.de> wrote:
>>
>>> Hi Stefan,
>>>
>>> On 10.11.2015 18:09, Stefan Ross wrote:
>>>
>>>> Hi all,
>>>>
>>>> I'm hoping you can help with what looks like a bug, but could be an
>>>> artifact of how I've designed my SConscript files.
>>>>
>>>> I'm seeing the following error when doing parallel builds (-j4):
>>>>
>>>> ...
>>>>
>>>> scons: *** Found dependency cycle(s):
>>>> Internal Error: no cycle found for node ...
>>>>
>>>>
>>> this looks like issue #2777 (
>>> http://scons.tigris.org/issues/show_bug.cgi?id=2777 ). Can you try the
>>> patch attached to the bug description, and report back whether it fixes
>>> things for you?
>>>
>>> If yes, we could try to push this fix out with one of the next releases.
>>>
>>> Best regards,
>>>
>>> Dirk
>>>
>>>
>>> _______________________________________________
>>> Scons-users mailing list
>>> Scons-users at scons.org
>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20151111/1d5e1238/attachment-0001.html>
More information about the Scons-users
mailing list