28 Nov 2019 GC Update

This post is an update on my ongoing GC crash investigation. For an introduction see GC Crash Summary.

Adding some information based on memory from before creating this blog:

As part of my earlier (undocumented) investigations I added some assertions to check that when a Stack Page is being freed the current framePointer isn’t on it.

It turns out that it happens quite a lot. Most of the time there isn’t any corruption, so my suspicion is that framePointer isn’t being used during this time. But it also happens right around the time the crash happens, so…

Setting framePointer to NULL every time the page is freed under it shows… no change to the crash. It looks like the framePointer isn’t valid at all times, but this doesn’t actually cause a problem.

What would be nice is to modify StackInterpreter>>printCallStack so that it warns you when framePoiner is pointing to a free stack page.

Categories:
Written on November 28, 2019