[Scons-users] Internal Error: No dependency cycle found

Stefan Ross stefan at electricimp.com
Wed Nov 11 07:49:11 EST 2015


Oh, forgot to mention...the example is fine with scons, fails with scons
-j2.

Stefan

On Wed, Nov 11, 2015 at 12:48 PM, Stefan Ross <stefan at electricimp.com>
wrote:

> 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/6cf06fcf/attachment.html>


More information about the Scons-users mailing list