The bug is discovered during backport.
The following assertion is intended to check that there is not more committed regions for the region to be released. It is not the case for partial releases, which can still have committed regions for the reserved regions that are not going to be released.
VMMemRegion* next_region = (VMMemRegion*)peek_next();
// should not have any committed memory in this reserved region
assert(next_region == NULL || !next_region->is_committed_region(), "Sanity check");