[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