> Andrew Gierth <email@example.com>:
> > I think there are more barriers missing in lundump.c, specifically when
> > string values are loaded into the constants vector (and debug vector) of
> > a prototype; this needs a barrier (since the prototype might have been
> > marked) but I see no sign of one.
> Though I'm a bit uneasy sprinkling barriers in so many places where
> there used to be none, looks like the attached (updated) patch
> mitigates the problem, even for cases of multiple failures on MIPS.
Indeed, there seems to be several barriers missing in lundump.c, besides
that one in lparser.c. I am still not sure why this happened, but I
suspect this comes from before emergency collections. Without emergency
collections, lundump.c never runs the GC, and therefore it didn't need
barriers. When we added emergency collections, there was great concern
about everything being properly anchored all the time (and lots of tests
around that issue), but we did not focus on the problem of barriers.
Since this problem also seems to affect Lua 5.3.5, will there be a new Lua 5.3 patch release (5.3.6?) with the fix for this problem?