Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
this is to fix #70231.
for regions we could run into this situation -
object is the last object before
heap_segment_allocated (hs)
T0 calls
NextObj
, gets next obj which starts atheap_segment_allocated (hs)
T1 changes
ephemeral_heap_segment
tohs
T0 does these comparisons
both still false because
alloc_allocated
hasn't been changed just yet (and the oldalloc_allocated
is larger than nextobj)T0 validates next obj, concludes its
m_alignpad
is not 0, assertsT1 forms an allocation context starting at
heap_segment_allocated
, clears memory so by the time the dump is taken,m_alignpad
is already cleared (actually we clear it ina_fit_segment_end
)I'm fixing this by saving the
ephemeral_heap_segment
andalloc_allocated
and bail if nextobj is not on the saved eph seg or if those 2 saved values are no long in sync.