8202772: NMT thread stack tracking causes crashes on AIX jdk-11+18
authorstuefe
Wed, 13 Jun 2018 06:35:04 +0200
changeset 50535 e1b3def12624
parent 50534 a6a44177f99c
child 50536 8434981a4137
8202772: NMT thread stack tracking causes crashes on AIX Reviewed-by: goetz, zgu
src/hotspot/share/services/memTracker.hpp
test/hotspot/gtest/runtime/test_committed_virtualmemory.cpp
--- a/src/hotspot/share/services/memTracker.hpp	Tue Jun 12 21:29:47 2018 -0700
+++ b/src/hotspot/share/services/memTracker.hpp	Wed Jun 13 06:35:04 2018 +0200
@@ -241,6 +241,11 @@
     }
   }
 
+#ifdef _AIX
+  // See JDK-8202772 - temporarily disable thread stack tracking on AIX.
+  static inline void record_thread_stack(void* addr, size_t size) {}
+  static inline void release_thread_stack(void* addr, size_t size) {}
+#else
   static inline void record_thread_stack(void* addr, size_t size) {
     if (tracking_level() < NMT_summary) return;
     if (addr != NULL) {
@@ -260,6 +265,7 @@
       VirtualMemoryTracker::remove_released_region((address)addr, size);
     }
   }
+#endif
 
   // Query lock is used to synchronize the access to tracking data.
   // So far, it is only used by JCmd query, but it may be used by
--- a/test/hotspot/gtest/runtime/test_committed_virtualmemory.cpp	Tue Jun 12 21:29:47 2018 -0700
+++ b/test/hotspot/gtest/runtime/test_committed_virtualmemory.cpp	Wed Jun 13 06:35:04 2018 +0200
@@ -38,6 +38,8 @@
 class CommittedVirtualMemoryTest {
 public:
   static void test() {
+#ifndef _AIX
+    // See JDK-8202772: temporarily disabled.
     Thread* thr = Thread::current();
     address stack_end = thr->stack_end();
     size_t  stack_size = thr->stack_size();
@@ -81,6 +83,7 @@
     ASSERT_TRUE(i >= 1);
     ASSERT_TRUE(found_stack_top);
     ASSERT_TRUE(found_i_addr);
+#endif // !_AIX
   }
 
   static void check_covered_pages(address addr, size_t size, address base, size_t touch_pages, int* page_num) {