Skip to content

Scanner will run on files before they are re-built. #3022

Open
@bdbaddog

Description

@bdbaddog

This issue was originally created at: 2016-02-23 04:56:59.
This issue was reported by: epistax.

epistax said at 2016-02-23 04:56:59

(See attachment for example)

If a file is built as a target in one step of the build, and used as a source file in another part of the build, and if a scanner is associated with that type of file, then it's possible (with multiple jobs) that the file will be re-built in the middle of being scanned. This can lead to an error in the user-supplied scanner, or an internal error inside SCons.

The error in the user-supplied scanner varies.

The error within SCons is the "TypeError: Tried to lookup File '...' as a Dir" where '...' is the directory containing the file in question above. This occurs even if the directory isn't a build target and is always-there. (Maybe related to issue #2648 ?)

epistax said at 2016-02-23 04:58:02

Created an attachment (id=965)
Example SConstruct demonstrating issue.

wblevins001 said at 2016-02-23 05:25:59

Added output snippet from the original email chain.

c:\workdir\software2\projects\test>scons -j 2
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
scanning project.prj
done scanning project.prj
>scanning project.prj
>>>>create_project_file(["project.prj"], ["source_1.dat", "source_2.dat"])
>>>>building project.prj
>done scanning project.prj
done building project.prj
scanning project.prj
done scanning project.prj
version_action(["derp.txt"], ["project.prj"])
compiler_action(["out.bin"], ["project.prj", "derp.txt"])
creating out.bin
done creating out.bin
scons: done building targets.

epistax attached SConstruct at 2016-02-23 04:58:02.
Example SConstruct demonstrating issue.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions