-
Enhancement
-
Resolution: Fixed
-
P4
-
17, 18
-
b03
The _misc flags are set via OR operations which aren't safe to do concurrently. We should make setting these flags safe. Besides linked-to bug, there aren't any known bugs with them right now.
Atomically set all of them? Most are set during classfile parsing or loading.
_misc_rewritten -> set during linking with exclusive access
_misc_has_nonstatic_fields -> classfile parsing
_misc_should_verify_class -> classfile parsing
_misc_unused -> not used
_misc_is_contended -> classfile parsing
_misc_has_nonstatic_concrete_methods -> classfile parsing
_misc_declares_nonstatic_concrete_methods -> classfile parsing
_misc_has_been_redefined -> set in a redefinition safepoint
_misc_shared_loading_failed -> set during class loading (exclusive access to InstanceKlass?)
_misc_is_scratch_class -> set during the redefinition safepoint
_misc_is_shared_boot_class -> assign_class_loader_type() calls at a safepoint for CDS
_misc_is_shared_platform_class "
_misc_is_shared_app_class "
_misc_has_resolved_methods -> This is unsafe and called during linkResolver
_misc_has_contended_annotations -> classfile parsing
Maybe has_resolved_methods should be moved to AccessFlags for atomic setting.
Atomically set all of them? Most are set during classfile parsing or loading.
_misc_rewritten -> set during linking with exclusive access
_misc_has_nonstatic_fields -> classfile parsing
_misc_should_verify_class -> classfile parsing
_misc_unused -> not used
_misc_is_contended -> classfile parsing
_misc_has_nonstatic_concrete_methods -> classfile parsing
_misc_declares_nonstatic_concrete_methods -> classfile parsing
_misc_has_been_redefined -> set in a redefinition safepoint
_misc_shared_loading_failed -> set during class loading (exclusive access to InstanceKlass?)
_misc_is_scratch_class -> set during the redefinition safepoint
_misc_is_shared_boot_class -> assign_class_loader_type() calls at a safepoint for CDS
_misc_is_shared_platform_class "
_misc_is_shared_app_class "
_misc_has_resolved_methods -> This is unsafe and called during linkResolver
_misc_has_contended_annotations -> classfile parsing
Maybe has_resolved_methods should be moved to AccessFlags for atomic setting.
- relates to
-
JDK-8276177 nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption failed with "assert(def_ik->is_being_redefined()) failed: should be being redefined to get here"
- Resolved