Mercurial > hg > graal-compiler
comparison src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @ 3982:273b46400613
7086533: G1: assert(!_g1->is_obj_dead(obj)): We should not be preserving dead objs: g1CollectedHeap.cpp:3835
Summary: Some objects may not be marked in the event of an evacuation failure in a partially young GC, during a marking cycle. Avoid this situation by not allowing partially young GCs during a marking cycle.
Reviewed-by: tonyp, ysr, brutisso
author | johnc |
---|---|
date | Wed, 28 Sep 2011 10:36:31 -0700 |
parents | 8229bd737950 |
children | 811ec3d0833b |
comparison
equal
deleted
inserted
replaced
3981:e807478bf9ca | 3982:273b46400613 |
---|---|
3362 { | 3362 { |
3363 // This call will decide whether this pause is an initial-mark | 3363 // This call will decide whether this pause is an initial-mark |
3364 // pause. If it is, during_initial_mark_pause() will return true | 3364 // pause. If it is, during_initial_mark_pause() will return true |
3365 // for the duration of this pause. | 3365 // for the duration of this pause. |
3366 g1_policy()->decide_on_conc_mark_initiation(); | 3366 g1_policy()->decide_on_conc_mark_initiation(); |
3367 | |
3368 // We do not allow initial-mark to be piggy-backed on a | |
3369 // partially-young GC. | |
3370 assert(!g1_policy()->during_initial_mark_pause() || | |
3371 g1_policy()->full_young_gcs(), "sanity"); | |
3372 | |
3373 // We also do not allow partially-young GCs during marking. | |
3374 assert(!mark_in_progress() || g1_policy()->full_young_gcs(), "sanity"); | |
3367 | 3375 |
3368 char verbose_str[128]; | 3376 char verbose_str[128]; |
3369 sprintf(verbose_str, "GC pause "); | 3377 sprintf(verbose_str, "GC pause "); |
3370 if (g1_policy()->full_young_gcs()) { | 3378 if (g1_policy()->full_young_gcs()) { |
3371 strcat(verbose_str, "(young)"); | 3379 strcat(verbose_str, "(young)"); |