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
