changeset 1975:d9310331a29c

7003860: G1: assert(_cur_alloc_region == NULL || !expect_null_cur_alloc_region) fails Summary: Wrong assumption about expecting the current alloc region expected to be NULL in expand_and_allocate(). Reviewed-by: brutisso, ysr
author tonyp
date Thu, 02 Dec 2010 13:20:39 -0500
parents fd1d227ef1b9
children 42f65821fa4e 016a3628c885 3cd116fd11be
files src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
diffstat 1 files changed, 5 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp	Wed Dec 01 17:34:02 2010 -0800
+++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp	Thu Dec 02 13:20:39 2010 -0500
@@ -920,8 +920,10 @@
                                            bool expect_null_cur_alloc_region) {
   assert_at_safepoint();
   assert(_cur_alloc_region == NULL || !expect_null_cur_alloc_region,
-         "The current alloc region should only be non-NULL if we're "
-         "expecting it not to be NULL");
+         err_msg("the current alloc region was unexpectedly found "
+                 "to be non-NULL, cur alloc region: "PTR_FORMAT" "
+                 "expect_null_cur_alloc_region: %d word_size: "SIZE_FORMAT,
+                 _cur_alloc_region, expect_null_cur_alloc_region, word_size));
 
   if (!isHumongous(word_size)) {
     if (!expect_null_cur_alloc_region) {
@@ -1597,7 +1599,7 @@
   assert(regions_accounted_for(), "Region leakage!");
 
   return attempt_allocation_at_safepoint(word_size,
-                                      true /* expect_null_cur_alloc_region */);
+                                     false /* expect_null_cur_alloc_region */);
 }
 
 size_t G1CollectedHeap::free_region_if_totally_empty(HeapRegion* hr) {