scons --tree=status raises an exception

Joel Ostraat <[email protected]>
Newsgroups gmane.comp.programming.tools.scons.devel
Message-ID <CAHTwFpHpC7_NXJgXi3=54wuvyfaqS+St-4V9OqnkjiA-be9D1A@mail.gmail.com>
On 2016-09-29 19:44, Dirk Bächle wrote:

> Hi Joel,
>
> On 29.09.2016 16:25, Joel Ostraat wrote:
> > I chatted with Bill Deegan on IRC yesterday.  He encouraged me to file a
> bug report
> > (http://scons.tigris.org/issues/show_bug.cgi?id=3033) and ask how this
> might be fixed.  To reiterate my thoughts and questions from
> > the bug report:
> >
> > Looking into it a little, I think that SCons.Node.FS.File.executor
> should never be None.  The uses of get_executor() prior to this
> > change seem to expect it to return either a valid Executor object, or
> raise an exception leaving the executor attribute non-existent.
> >
> > I was able to prevent the problem by changing the line
> > https://bitbucket.org/scons/scons/commits/a8570fab2b7b2f3f1c
> e520528908904b9584e1f9#Lsrc/engine/SCons/Node/FS.pyT2786 to
> > self.reset_executor() and removing a few other checks for "self.executor
> is None" also added in that commit.  But I don't know if
> > that's the right solution.
> >
> > Perhaps there is some extra meaning meant to be conveyed when that
> executor attribute is be None.  If that's true, then there are
> > many other places where the return value of get_executor() should be
> checked against None.
> >
>
> welcome to the dev list! The log message (as well as the various
> comments/documentation around the changes) of the commit
> a8570fab2b7b that you mention in your bug report, hint at what the change
> tries to accomplish. The executor is reset to "None",
> after building the target or finding that it's up-to-date, such that the
> garbage collector can free its memory. This is important in
> large projects (100000+ files) where the amount of memory used by the
> Executor objects reach a significant percentage and help to
> drive the whole build process into swapping much sooner.
>
> > I've been using SCons for a while, but know very little about the
> internals of SCons.  Any direction on how to fix this would be
> > appreciated.
> >
>
> If you see/can identify several other places and situations where a valid
> executor seems to be expected, they probably need a guard
> against "executor == None". Would you be able to have a look at that and
> try to come up with a pull request? That would be awesome.
>
>
Thanks for the insight!  Looking at it from the other angle you suggested,
I think the problem is in FS.changed (which is what Bill had first thought
anyway).  I'm putting together a patch and will submit a pull request.

Thanks again for helping me out as I navigate these new things!

- Joel

_______________________________________________
Scons-dev mailing list
[email protected]
https://pairlist2.pair.net/mailman/listinfo/scons-dev
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.