1.1 --- a/src/share/vm/jfr/recorder/storage/jfrStorage.cpp Mon Jun 15 20:21:56 2020 +0100 1.2 +++ b/src/share/vm/jfr/recorder/storage/jfrStorage.cpp Wed Jun 17 11:43:05 2020 +0300 1.3 @@ -340,9 +340,9 @@ 1.4 void JfrStorage::register_full(BufferPtr buffer, Thread* thread) { 1.5 assert(buffer != NULL, "invariant"); 1.6 assert(buffer->retired(), "invariant"); 1.7 + assert(buffer->acquired_by(thread), "invariant"); 1.8 if (!full_buffer_registration(buffer, _age_mspace, control(), thread)) { 1.9 handle_registration_failure(buffer); 1.10 - buffer->release(); 1.11 } 1.12 if (control().should_post_buffer_full_message()) { 1.13 _post_box.post(MSG_FULLBUFFER); 1.14 @@ -377,8 +377,8 @@ 1.15 } 1.16 } 1.17 assert(buffer->empty(), "invariant"); 1.18 + assert(buffer->identity() != NULL, "invariant"); 1.19 control().increment_dead(); 1.20 - buffer->release(); 1.21 buffer->set_retired(); 1.22 } 1.23 1.24 @@ -733,13 +733,14 @@ 1.25 Scavenger(JfrStorageControl& control, Mspace* mspace) : _control(control), _mspace(mspace), _count(0), _amount(0) {} 1.26 bool process(Type* t) { 1.27 if (t->retired()) { 1.28 + assert(t->identity() != NULL, "invariant"); 1.29 + assert(t->empty(), "invariant"); 1.30 assert(!t->transient(), "invariant"); 1.31 assert(!t->lease(), "invariant"); 1.32 - assert(t->empty(), "invariant"); 1.33 - assert(t->identity() == NULL, "invariant"); 1.34 ++_count; 1.35 _amount += t->total_size(); 1.36 t->clear_retired(); 1.37 + t->release(); 1.38 _control.decrement_dead(); 1.39 mspace_release_full_critical(t, _mspace); 1.40 }