RFR: 8201409: JDWP debugger initialization hangs intermittently
Andrew Leonard
andrew_m_leonard at uk.ibm.com
Thu May 3 14:18:15 UTC 2018
Hi Serguei,
I've done some debug, and there seems to be some difference in behaviour
with Hotspot with regards the report VM_INIT command, i'm not sure I quite
understand why... so i'm consulting with a colleague to get some help.
I'll update the bug when I have some more information.
Thanks
Andrew
Andrew Leonard
Java Runtimes Development
IBM Hursley
IBM United Kingdom Ltd
Phone internal: 245913, external: 01962 815913
internet email: andrew_m_leonard at uk.ibm.com
From: "serguei.spitsyn at oracle.com" <serguei.spitsyn at oracle.com>
To: Andrew Leonard <andrew_m_leonard at uk.ibm.com>
Cc: serviceability-dev at openjdk.java.net
Date: 24/04/2018 01:47
Subject: Re: RFR: 8201409: JDWP debugger initialization hangs
intermittently
The most relevant stack traces from Solaris pstack dump are:
12 ----------------- lwp# 2 / thread# 2 --------------------
13 ffffffff7eae9b3c lwp_cond_wait (100123448, 100123430, 0, 0)
14 fffffffd12331a94 void os::PlatformEvent::park() (100123400, e6c40,
e6c00, 0, fffffffd12adbf00, 100123430) + c4
15 fffffffd122c6038 int Monitor::IWait(Thread*,long) (100122f30,
100122000, 0, fffffffd12b4dba8, 0, 100122f50) + 98
16 fffffffd122c6a4c bool Monitor::wait(bool,long,bool) (100122f30, 1,
0, 0, ffff2155, 100122000) + 7c
17 fffffffd125464e8 int JavaThread::java_suspend_self() (100122000, 1,
40000000, 1001220b8, 100122f30, 100122f30) + a8
18 fffffffd120c84a4 int JvmtiRawMonitor::raw_wait(long,bool,Thread*)
(10079e3b0, 10079e430, 1, 100122000, 94400, fffffffd12b70600) + 254
19 fffffffd120942ec jvmtiError
JvmtiEnv::RawMonitorWait(JvmtiRawMonitor*,long) (4, 10079e3b0,
ffffffffffffffff, 100122000, 0, fffffffd12adbf00) + 5c
20 fffffffd0f8385bc debugMonitorWait (fffffffd0f946268, c10, c00,
fffffffd0f945580, fffffffd0f945580, 0) + 3c
21 fffffffd0f825140 enqueueCommand (1007a0a20, ffffffffffefc418,
103800, ffffffffffefc3e8, 0, fffffffd0f945580) + 140
22 fffffffd0f826e58 eventHelper_reportEvents (0, 10079a000, 0,
1007a0a20, 1, 1) + 108
23 fffffffd0f81b4c0 initialize (1001222e0, c00, 4, fffffffd0f83edc0,
fffffffd0f9460d0, fffffffd0f945580) + 540
24 fffffffd0f81a77c cbEarlyException (fffffffd0f946190, 1001222e0,
1005953a0, fffffffd0f83eaa0, fffffffd0f946268, 1005953a8) + 21c
25 fffffffd120af6a4 void
JvmtiExport::post_exception_throw(JavaThread*,Method*,unsigned
char*,oopDesc*) (100122000, fffffffd12b78f38, 100764b40, 62cb91b50,
100122d48, fffffffd12b7a618) + 15b4
26 fffffffd11c27484 unsigned
char*InterpreterRuntime::exception_handler_for_exception(JavaThread*,oopDesc*)
(0, ffffffff4a0014e0, 100122000, ffffffff4a001470, 100122d40,
fffffffd12adbf00) + 704
27 ffffffff6100eac0 * JITDebug.debugTarget()V+29
28 ffffffff61009ecc * JITDebug.parseArgs([Ljava/lang/String;)Z+50
29 ffffffff610084ac * JITDebug.main([Ljava/lang/String;)V+8
30 ffffffff610003c0 ???????? (ffffffff7d0ffc20, ffffffff7d0ffe30, a,
ffffffff4a000f18, ffffffff6100ff40, ffffffff7d0ffd78) + fff8006cc46de0b0
31 fffffffd11c43134 void JavaCalls::call_helper(JavaValue*,const
methodHandle&,JavaCallArguments*,Thread*) (ffffffff7d0ffe28,
ffffffff4a000f18, ffffffff7d0ffd68, ffffffff7d0ffde8, e, ffffffff61000340)
+ 2e4
32 fffffffd11cfd95c jni_CallStaticVoidMethod (1001222e0, 1400, 1c,
ffffffff7d0ffde8, 100122000, 153d) + 5bc
33 fffffffd12c0603c JavaMain (ac8, 100123780, 100123798, 1,
fffffffd12b605f0, fffffffd11cfd3a0) + 81c
34 ffffffff7eae4b38 _lwp_start (0, 0, 0, 0, 0, 0)
216 ----------------- lwp# 18 / thread# 18 --------------------
217 ffffffff7eae9b3c lwp_cond_wait (10078cd48, 10078cd30, 0, 0)
218 fffffffd12331a94 void os::PlatformEvent::park() (10078cd00, e6c40,
e6c00, 0, fffffffd12adbf00, 10078cd30) + c4
219 fffffffd120c7b00 int JvmtiRawMonitor::SimpleWait(Thread*,long)
(10078a470, 10079c000, ffffffffffffffff, fffffffd120c50e0, 1, 0) + 100
220 fffffffd120c8328 int JvmtiRawMonitor::raw_wait(long,bool,Thread*)
(10078a470, ffffffffffffffff, 1, 10079c000, ffffffffffd880ac,
fffffffd12adbf00) + d8
221 fffffffd120942ec jvmtiError
JvmtiEnv::RawMonitorWait(JvmtiRawMonitor*,long) (4, 10078a470,
ffffffffffffffff, 10079c000, 0, fffffffd12adbf00) + 5c
222 fffffffd0f8385bc debugMonitorWait (fffffffd0f946268, c10, c00,
fffffffd0f945580, fffffffd0f946190, 0) + 3c
223 fffffffd0f81adac debugInit_waitVMInitComplete (0, f28,
fffffffd0f945580, c00, fffffffd0f844888, 1) + 3c
224 fffffffd0f81caac debugLoop_run (105c00, f50, fffffffd0f945580, 1,
fffffffd0f9464d0, 0) + 6c
225 fffffffd0f8335b4 connectionInitiated (fffffffd0f705250, 1000, 1,
fffffffd0f945580, fffffffd0f9468d8, 0) + e4
226 fffffffd0f833800 acceptThread (0, fffffffd0f705260, 1007973c0,
fffffffd0f843de0, fffffffd0f945580, fffffffd0f946190) + 110
227 fffffffd120c0934 void JvmtiAgentThread::call_start_function()
(10079c000, 0, 0, fffffffd12adbf00, fffffffd12b78f38, 0) + 1b4
228 fffffffd125445fc void JavaThread::thread_main_inner() (10079c000,
3d8, 1005bd3f8, 1005bd020, ffffffff48cffbb8, fffffffd12bb62a0) + 8c
229 fffffffd12544534 void JavaThread::run() (10079c000, b, 12,
62cb92b48, 0, 22) + 4a4
230 fffffffd12324ca0 thread_native_entry (0, 10079c000, 0, 10079c9d0,
fffffffd12adbf00, 50dc) + 320
231 ffffffff7eae4b38 _lwp_start (0, 0, 0, 0, 0, 0)
232 ----------------- lwp# 19 / thread# 19 --------------------
233 ffffffff7eae9b3c lwp_cond_wait (10079f748, 10079f730, 0, 0)
234 fffffffd12331a94 void os::PlatformEvent::park() (10079f700, e6c40,
e6c00, 0, fffffffd12adbf00, 10079f730) + c4
235 fffffffd120c7b00 int JvmtiRawMonitor::SimpleWait(Thread*,long)
(10079e4b0, 10079e800, ffffffffffffffff, fffffffd120c50e0, 1, 0) + 100
236 fffffffd120c8328 int JvmtiRawMonitor::raw_wait(long,bool,Thread*)
(10079e4b0, ffffffffffffffff, 1, 10079e800, ffffffffffd880ac,
fffffffd12adbf00) + d8
237 fffffffd120942ec jvmtiError
JvmtiEnv::RawMonitorWait(JvmtiRawMonitor*,long) (4, 10079e4b0,
ffffffffffffffff, 10079e800, 0, fffffffd12adbf00) + 5c
238 fffffffd0f8385bc debugMonitorWait (fffffffd0f946268, c10, c00,
fffffffd0f945580, fffffffd0f946190, 0) + 3c
239 fffffffd0f8261f8 doBlockCommandLoop (800, 1028, fffffffd0f945580,
1000, fffffffd0f945580, 0) + 48
240 fffffffd0f826448 commandLoop (c10, 10079eae0, 1, fffffffd0f945580,
fffffffd0f94612c, 1007a0a20) + f8
241 fffffffd120c0934 void JvmtiAgentThread::call_start_function()
(10079e800, 0, 0, fffffffd12adbf00, fffffffd12b78f38, 0) + 1b4
242 fffffffd125445fc void JavaThread::thread_main_inner() (10079e800,
3d8, 1005c1a78, 1005c16a0, ffffffff48affb38, fffffffd12bb62a0) + 8c
243 fffffffd12544534 void JavaThread::run() (10079e800, c, 13,
62cb92d50, 0, 18) + 4a4
244 fffffffd12324ca0 thread_native_entry (0, 10079e800, 0, 10079d0e0,
fffffffd12adbf00, 50dc) + 320
245 ffffffff7eae4b38 _lwp_start (0, 0, 0, 0, 0, 0)
Below is a full pstack dump.
Thanks,
Serguei
1 20700:
/var/tmp/sspitsyn/jdk-ibm/build/solaris-sparcv9-normal-server-release/
2 ----------------- lwp# 1 / thread# 1 --------------------
3 ffffffff7eae9a88 lwp_wait (2, ffffffff7fffe45c)
4 ffffffff7eae0ce0 _thrp_join (2, 0, ffffffff7fffe5c0, 1, 0,
ffffffff7fffe5cc) + 3c
5 ffffffff7eae0e4c thr_join (2, 0, ffffffff7fffe5c0, ffffffff7fffe680,
0, 3) + 14
6 fffffffd12c104a0 ContinueInNewThread0 (fffffffd12c05820, 100000,
ffffffff7fffe680, fffffffffffffff8, 0, 100000) + 30
7 fffffffd12c0e090 ContinueInNewThread (ffffffff7fffe8a8,
fffffffd11d27440, 111000, ffffffffffeeef60, fffffffd11d26de0,
fffffffd11d27a30) + 90
8 fffffffd12c1052c JVMInit (ffffffff7fffe8a8, 0, 1, 100102f38, 1,
100105760) + 2c
9 fffffffd12c057e8 JLI_Launch (b08, ffffffffffeff2a0, 0, 0, 0, 0) +
2f8
10 0000000100000efc main (6, ffffffff7ffff6b8, 6, ffffffff7ee00140,
100000f80, 100000f80) + 1bc
11 0000000100000d08 _start (0, 0, 0, 0, 0, 100101040) + 108
12 ----------------- lwp# 2 / thread# 2 --------------------
13 ffffffff7eae9b3c lwp_cond_wait (100123448, 100123430, 0, 0)
14 fffffffd12331a94 void os::PlatformEvent::park() (100123400, e6c40,
e6c00, 0, fffffffd12adbf00, 100123430) + c4
15 fffffffd122c6038 int Monitor::IWait(Thread*,long) (100122f30,
100122000, 0, fffffffd12b4dba8, 0, 100122f50) + 98
16 fffffffd122c6a4c bool Monitor::wait(bool,long,bool) (100122f30, 1,
0, 0, ffff2155, 100122000) + 7c
17 fffffffd125464e8 int JavaThread::java_suspend_self() (100122000, 1,
40000000, 1001220b8, 100122f30, 100122f30) + a8
18 fffffffd120c84a4 int JvmtiRawMonitor::raw_wait(long,bool,Thread*)
(10079e3b0, 10079e430, 1, 100122000, 94400, fffffffd12b70600) + 254
19 fffffffd120942ec jvmtiError
JvmtiEnv::RawMonitorWait(JvmtiRawMonitor*,long) (4, 10079e3b0,
ffffffffffffffff, 100122000, 0, fffffffd12adbf00) + 5c
20 fffffffd0f8385bc debugMonitorWait (fffffffd0f946268, c10, c00,
fffffffd0f945580, fffffffd0f945580, 0) + 3c
21 fffffffd0f825140 enqueueCommand (1007a0a20, ffffffffffefc418,
103800, ffffffffffefc3e8, 0, fffffffd0f945580) + 140
22 fffffffd0f826e58 eventHelper_reportEvents (0, 10079a000, 0,
1007a0a20, 1, 1) + 108
23 fffffffd0f81b4c0 initialize (1001222e0, c00, 4, fffffffd0f83edc0,
fffffffd0f9460d0, fffffffd0f945580) + 540
24 fffffffd0f81a77c cbEarlyException (fffffffd0f946190, 1001222e0,
1005953a0, fffffffd0f83eaa0, fffffffd0f946268, 1005953a8) + 21c
25 fffffffd120af6a4 void
JvmtiExport::post_exception_throw(JavaThread*,Method*,unsigned
char*,oopDesc*) (100122000, fffffffd12b78f38, 100764b40, 62cb91b50,
100122d48, fffffffd12b7a618) + 15b4
26 fffffffd11c27484 unsigned
char*InterpreterRuntime::exception_handler_for_exception(JavaThread*,oopDesc*)
(0, ffffffff4a0014e0, 100122000, ffffffff4a001470, 100122d40,
fffffffd12adbf00) + 704
27 ffffffff6100eac0 * JITDebug.debugTarget()V+29
28 ffffffff61009ecc * JITDebug.parseArgs([Ljava/lang/String;)Z+50
29 ffffffff610084ac * JITDebug.main([Ljava/lang/String;)V+8
30 ffffffff610003c0 ???????? (ffffffff7d0ffc20, ffffffff7d0ffe30, a,
ffffffff4a000f18, ffffffff6100ff40, ffffffff7d0ffd78) + fff8006cc46de0b0
31 fffffffd11c43134 void JavaCalls::call_helper(JavaValue*,const
methodHandle&,JavaCallArguments*,Thread*) (ffffffff7d0ffe28,
ffffffff4a000f18, ffffffff7d0ffd68, ffffffff7d0ffde8, e, ffffffff61000340)
+ 2e4
32 fffffffd11cfd95c jni_CallStaticVoidMethod (1001222e0, 1400, 1c,
ffffffff7d0ffde8, 100122000, 153d) + 5bc
33 fffffffd12c0603c JavaMain (ac8, 100123780, 100123798, 1,
fffffffd12b605f0, fffffffd11cfd3a0) + 81c
34 ffffffff7eae4b38 _lwp_start (0, 0, 0, 0, 0, 0)
35 ----------------- lwp# 3 / thread# 3 --------------------
36 ffffffff7eae4bb4 lwp_park (0, 0, 0)
37 ffffffff7eacbfe8 sem_wait (100133690, fffffffd12adbf00,
ffffffffffc80f70, 37f000, e6ce0, ffffffffffffffff) + 24
38 fffffffd124309f8 void PosixSemaphore::wait() (100133690, 986e0,
fffffffd12b4df8a, 98400, fffffffd12adbf00, fffffffd12adbf00) + 8
39 fffffffd12650754 WorkData
SemaphoreGangTaskDispatcher::worker_wait_for_task() (100133650, 7f, 98c00,
0, 72000, fffffffd12adbf00) + 4
40 fffffffd1264f4c8 void GangWorker::loop() (100135800,
fffffffd12650750, fffffffd12b9b4b8, 100104ae0, fffffffd1264f290,
fffffffd12b9b3e0) + 18
41 fffffffd12324ca0 thread_native_entry (0, 100135800, 0, 100136a70,
fffffffd12adbf00, 50dc) + 320
42 ffffffff7eae4b38 _lwp_start (0, 0, 0, 0, 0, 0)
43 ----------------- lwp# 4 / thread# 4 --------------------
44 ffffffff7eae9b3c lwp_cond_wait (100278348, 100278330, 0, 0)
45 fffffffd12331a94 void os::PlatformEvent::park() (100278300, e6c40,
e6c00, 0, fffffffd12adbf00, 100278330) + c4
46 fffffffd122c6038 int Monitor::IWait(Thread*,long) (10011ee30,
100277000, 0, fffffffd12b4dba8, 0, 10011ee50) + 98
47 fffffffd122c6a4c bool Monitor::wait(bool,long,bool) (10011ee30, 1,
0, 0, fffffffd12b70500, 100277000) + 7c
48 fffffffd11ac67b4 void G1ConcurrentMarkThread::run_service()
(100277000, 94600, 94600, fffffffd12adbf00, 10012deb0, 1001312e0) + 134
49 fffffffd119a7654 void ConcurrentGCThread::run() (94600, 94400, 0,
100277000, fffffffd12adbf00, fffffffd12b70500) + d4
50 fffffffd12324ca0 thread_native_entry (0, 100277000, 0, 100278590,
fffffffd12adbf00, 50dc) + 320
51 ffffffff7eae4b38 _lwp_start (0, 0, 0, 0, 0, 0)
52 ----------------- lwp# 5 / thread# 5 --------------------
53 ffffffff7eae4bb4 lwp_park (0, 0, 0)
54 ffffffff7eacbfe8 sem_wait (100133990, fffffffd12adbf00,
ffffffffffc80f70, 37f000, e6ce0, ffffffffffffffff) + 24
55 fffffffd124309f8 void PosixSemaphore::wait() (100133990, 986e0,
fffffffd12b4df8a, 98400, fffffffd12adbf00, fffffffd12adbf00) + 8
56 fffffffd12650754 WorkData
SemaphoreGangTaskDispatcher::worker_wait_for_task() (100133950, 7f, 98c00,
0, 72000, fffffffd12adbf00) + 4
57 fffffffd1264f4c8 void GangWorker::loop() (100278800,
fffffffd12650750, fffffffd12b9b4b8, 100104d60, fffffffd1264f290,
fffffffd12b9b3e0) + 18
58 fffffffd12324ca0 thread_native_entry (0, 100278800, 0, 100279f30,
fffffffd12adbf00, 50dc) + 320
59 ffffffff7eae4b38 _lwp_start (0, 0, 0, 0, 0, 0)
60 ----------------- lwp# 6 / thread# 6 --------------------
61 ffffffff7eae9b3c lwp_cond_wait (1003f4f48, 1003f4f30, 0, 0)
62 fffffffd12331a94 void os::PlatformEvent::park() (1003f4f00, e6c40,
e6c00, 0, fffffffd12adbf00, 1003f4f30) + c4
63 fffffffd122c6038 int Monitor::IWait(Thread*,long) (10011f340,
1003f4000, 0, fffffffd12b4dba8, 0, 10011f360) + 98
64 fffffffd122c6a4c bool Monitor::wait(bool,long,bool) (10011f340, 1,
0, 0, fffffffd12adbf00, 1003f4000) + 7c
65 fffffffd11aca248 void G1ConcurrentRefineThread::run_service()
(1003f4000, d5400, 0, fffffffd12b7b558, fffffffd12adbf00,
fffffffd12bb1490) + a8
66 fffffffd119a7654 void ConcurrentGCThread::run() (94600, 94400, 0,
1003f4000, fffffffd12adbf00, fffffffd12b70500) + d4
67 fffffffd12324ca0 thread_native_entry (0, 1003f4000, 0, 1003f5220,
fffffffd12adbf00, 50dc) + 320
68 ffffffff7eae4b38 _lwp_start (0, 0, 0, 0, 0, 0)
69 ----------------- lwp# 7 / thread# 7 --------------------
70 ffffffff7eae9b3c lwp_cond_wait (1003f6848, 1003f6830,
ffffffff784ffaa0, 0)
71 ffffffff7eabf548 _lwp_cond_timedwait (1003f6848, 1003f6830,
ffffffff784ffb70, e6c00, ffffffff7eabf528, ffffffff784ffaa0) + 20
72 fffffffd12331d30 int os::PlatformEvent::park(long) (1003f6800,
11a1d310, ffffffff7eabf38c, e6c00, 0, fffffffd12adbf00) + 200
73 fffffffd122c60b8 int Monitor::IWait(Thread*,long) (1003f5ac8,
1003f5800, 12c, fffffffd12b4dba8, fffffffd12adbf00, 1003f5ae8) + 118
74 fffffffd122c6a4c bool Monitor::wait(bool,long,bool) (1003f5ac8, 1,
12c, 0, 10011eec0, 1003f5800) + 7c
75 fffffffd11b3a340 void G1YoungRemSetSamplingThread::run_service()
(1003f5800, 0, 0, fffffffd12adbf00, fffffffd12b4e4c8, fffffffd12b4c6c8) +
130
76 fffffffd119a7654 void ConcurrentGCThread::run() (94600, 94400, 0,
1003f5800, fffffffd12adbf00, fffffffd12b70500) + d4
77 fffffffd12324ca0 thread_native_entry (0, 1003f5800, 0, 1003f6ae0,
fffffffd12adbf00, 50dc) + 320
78 ffffffff7eae4b38 _lwp_start (0, 0, 0, 0, 0, 0)
79 ----------------- lwp# 8 / thread# 8 --------------------
80 ffffffff7eae9b3c lwp_cond_wait (100592a48, 100592a30,
ffffffff782ff890, 0)
81 ffffffff7eabf548 _lwp_cond_timedwait (100592a48, 100592a30,
ffffffff782ff960, e6c00, ffffffff7eabf528, ffffffff782ff890) + 20
82 fffffffd12331d30 int os::PlatformEvent::park(long) (100592a00,
df420d8, ffffffff7eabf38c, e6c00, 1, fffffffd12adbf00) + 200
83 fffffffd122c60b8 int Monitor::IWait(Thread*,long) (100120810,
100592000, 3e8, fffffffd12b4dba8, fffffffd12adbf00, 100120830) + 118
84 fffffffd122c6a4c bool Monitor::wait(bool,long,bool) (100120810, 1,
3e8, 0, 945d8, 100592000) + 7c
85 fffffffd125f1820 void VMThread::loop() (100592000, fffffffd12be34a0,
1001208a0, 0, fffffffd12adbf00, fffffffd12b704d8) + 150
86 fffffffd125f10a8 void VMThread::run() (100592000, 94400, 0,
fffffffd12adbf00, 7f, fffffffd12b98368) + 98
87 fffffffd12324ca0 thread_native_entry (0, 100592000, 0, 100592d50,
fffffffd12adbf00, 50dc) + 320
88 ffffffff7eae4b38 _lwp_start (0, 0, 0, 0, 0, 0)
89 ----------------- lwp# 9 / thread# 9 --------------------
90 ffffffff7eae9b3c lwp_cond_wait (10059d948, 10059d930, 0, 0)
91 fffffffd12331a94 void os::PlatformEvent::park() (10059d900, e6c40,
e6c00, 0, fffffffd12adbf00, 10059d930) + c4
92 fffffffd122c6038 int Monitor::IWait(Thread*,long) (100120ed0,
10059c800, 0, fffffffd12b4dba8, 0, 100120ef0) + 98
93 fffffffd122c6cf4 bool Monitor::wait(bool,long,bool) (100120ed0, 0,
0, 0, fffffffd12adbf00, 10059c800) + 324
94 fffffffd11dfb040 JVM_WaitForReferencePendingList (0, 10059c800,
fffffffd12b4da28, 0, fffffffd12adbf00, fffffffd12b7ce98) + 1d0
95 fffffffd10c15e24
Java_java_lang_ref_Reference_waitForReferencePendingList (10059cae0,
ffffffff780ff280, 1, 0, 9d0f0, 0) + 4
96 ffffffff6101170c *
java/lang/ref/Reference.waitForReferencePendingList()V+-23864
97 ffffffff610116ac *
java/lang/ref/Reference.waitForReferencePendingList()V+-14600
98 ffffffff61009ecc *
java/lang/ref/Reference.processPendingReferences()V+0
99 ffffffff61009ecc * java/lang/ref/Reference.access$000()V+0
100 ffffffff61009ecc * java/lang/ref/Reference$ReferenceHandler.run()V+0
101 ffffffff610003c0 ???????? (ffffffff780ff780, ffffffff780ffb38, a,
ffffffff49d55fa0, ffffffff6100ff40, ffffffff780ff9f8) + fff8006cc46de0b0
102 fffffffd11c43134 void JavaCalls::call_helper(JavaValue*,const
methodHandle&,JavaCallArguments*,Thread*) (ffffffff780ffb30,
ffffffff49d55fa0, ffffffff780ff9e8, ffffffff780ff890, e, ffffffff61000340)
+ 2e4
103 fffffffd11c42550 void
JavaCalls::call_virtual(JavaValue*,Klass*,Symbol*,Symbol*,JavaCallArguments*,Thread*)
(ffffffff780ffb30, e99000, ffffffff780ff890, ffffffff780ff900,
ffffffff780ff9e8, ffffffffff166f50) + 120
104 fffffffd11c425d0 void
JavaCalls::call_virtual(JavaValue*,Handle,Klass*,Symbol*,Symbol*,Thread*)
(ffffffff780ffb30, 10059d300, 800006770, 8, 1, 2) + 50
105 fffffffd11df31e8 void thread_entry(JavaThread*,Thread*) (10059c800,
9f800, 103c00, 62ca09090, fffffffd12b7b8f0, 193400) + d8
106 fffffffd125445fc void JavaThread::thread_main_inner() (10059c800,
3d8, 10059d2d8, 10059cf00, ffffffff780ffc38, fffffffd12bb62a0) + 8c
107 fffffffd12544534 void JavaThread::run() (10059c800, 2, 9, 62ca09090,
72, 11) + 4a4
108 fffffffd12324ca0 thread_native_entry (0, 10059c800, 0, 10059dd20,
fffffffd12adbf00, 50dc) + 320
109 ffffffff7eae4b38 _lwp_start (0, 0, 0, 0, 0, 0)
110 ----------------- lwp# 10 / thread# 10 --------------------
111 ffffffff7eae9b3c lwp_cond_wait (1005a7548, 1005a7530, 0, 0)
112 fffffffd12331a94 void os::PlatformEvent::park() (1005a7500, e6c40,
e6c00, 1, fffffffd12adbf00, 1005a7530) + c4
113 fffffffd122f27e8 void ObjectMonitor::wait(long,bool,Thread*)
(1005a1f80, fffffffd128c10b0, fffffffd12b78ff0, 1, 1005a6800, 2) + 3d8
114 fffffffd124f4290 int ObjectSynchronizer::wait(Handle,long,Thread*)
(1005a71a8, 0, 1005a6800, fffffffd12b64a32, 88b32, 1005a1f80) + 150
115 fffffffd11dc4150 JVM_MonitorWait (1005a71a8, 0, 0, 1005a6800, 2,
fffffffd12b4da28) + 330
116 ffffffff6101170c * java/lang/Object.wait(J)V+-3184
117 ffffffff610116ac * java/lang/Object.wait(J)V+-3184
118 ffffffff61009ecc *
java/lang/ref/ReferenceQueue.remove(J)Ljava/lang/ref/Reference;+59
119 ffffffff61009a38 *
java/lang/ref/ReferenceQueue.remove()Ljava/lang/ref/Reference;+2
120 ffffffff61009a38 * java/lang/ref/Finalizer$FinalizerThread.run()V+37
121 ffffffff610003c0 ???????? (ffffffff702ff700, ffffffff702ffab8, a,
ffffffff49d5c150, ffffffff6100ff40, ffffffff702ff978) + fff8006cc46de0b0
122 fffffffd11c43134 void JavaCalls::call_helper(JavaValue*,const
methodHandle&,JavaCallArguments*,Thread*) (ffffffff702ffab0,
ffffffff49d5c150, ffffffff702ff968, ffffffff702ff810, e, ffffffff61000340)
+ 2e4
123 fffffffd11c42550 void
JavaCalls::call_virtual(JavaValue*,Klass*,Symbol*,Symbol*,JavaCallArguments*,Thread*)
(ffffffff702ffab0, e99000, ffffffff702ff810, ffffffff702ff880,
ffffffff702ff968, ffffffffff166f50) + 120
124 fffffffd11c425d0 void
JavaCalls::call_virtual(JavaValue*,Handle,Klass*,Symbol*,Symbol*,Thread*)
(ffffffff702ffab0, 1005a71a0, 800006770, 8, 1, 2) + 50
125 fffffffd11df31e8 void thread_entry(JavaThread*,Thread*) (1005a6800,
9f800, 103c00, 62ca09668, fffffffd12b7b8f0, 193400) + d8
126 fffffffd125445fc void JavaThread::thread_main_inner() (1005a6800,
3d8, 1005a7178, 1005a6da0, ffffffff702ffbb8, fffffffd12bb62a0) + 8c
127 fffffffd12544534 void JavaThread::run() (1005a6800, 3, a, 62ca09668,
72, 9) + 4a4
128 fffffffd12324ca0 thread_native_entry (0, 1005a6800, 0, 1005a7bc0,
fffffffd12adbf00, 50dc) + 320
129 ffffffff7eae4b38 _lwp_start (0, 0, 0, 0, 0, 0)
130 ----------------- lwp# 11 / thread# 11 --------------------
131 ffffffff7eae4bb4 lwp_park (0, 0, 0)
132 ffffffff7eacbfe8 sem_wait (1005908a0, fffffffd12bc75c0, eb6c0,
eb400, 10648, ffffffffffffffff) + 24
133 fffffffd124309f8 void PosixSemaphore::wait() (1005908a0, 1005b9800,
10011ab64, 1005b9800, 98c10, 98c00) + 8
134 fffffffd1232961c int check_pending_signals() (1, fffffffd12b74b10,
1, fffffffd12adbf00, 20000000, ffffffff7d6008c0) + 24c
135 fffffffd12315aec void signal_thread_entry(JavaThread*,Thread*)
(98c58, 1005b9800, 1005ba230, 1005ba220, 98c00, fffffffd12adbf00) + 2c
136 fffffffd125445fc void JavaThread::thread_main_inner() (1005b9800,
3d8, 1005ba208, 1005b9e30, ffffffff5faffb38, fffffffd12bb62a0) + 8c
137 fffffffd12544534 void JavaThread::run() (1005b9800, 4, b, 62ca20350,
72, 11) + 4a4
138 fffffffd12324ca0 thread_native_entry (0, 1005b9800, 0, 1005babc0,
fffffffd12adbf00, 50dc) + 320
139 ffffffff7eae4b38 _lwp_start (0, 0, 0, 0, 0, 0)
140 ----------------- lwp# 12 / thread# 12 --------------------
141 ffffffff7eae9b3c lwp_cond_wait (1005bc748, 1005bc730,
ffffffff5e6ff520, 0)
142 ffffffff7eabf548 _lwp_cond_timedwait (1005bc748, 1005bc730,
ffffffff5e6ff5f0, e6c00, ffffffff7eabf528, ffffffff5e6ff520) + 20
143 fffffffd12331d30 int os::PlatformEvent::park(long) (1005bc700,
20e2bf38, ffffffff7eabf38c, e6c00, 5, fffffffd12adbf00) + 200
144 fffffffd122c60b8 int Monitor::IWait(Thread*,long) (100121620,
1005bb000, 1388, fffffffd12b4dba8, 1, 100121640) + 118
145 fffffffd122c6cf4 bool Monitor::wait(bool,long,bool) (100121620, 0,
1388, 0, 1, 1005bb000) + 324
146 fffffffd11984df0 CompileTask*CompileQueue::get() (100590960,
1005bac90, 0, 1005bb000, fffffffd12adbf00, 100121620) + 70
147 fffffffd11989c80 void CompileBroker::compiler_thread_loop() (71e29,
1005909e0, 1005bb000, fffffffd12adbf00, 100590960, ffffffff49e84e78) + 150
148 fffffffd125445fc void JavaThread::thread_main_inner() (1005bb000,
3d8, 1005bc018, 1005bbc40, ffffffff5e6ffab8, fffffffd12bb62a0) + 8c
149 fffffffd12544534 void JavaThread::run() (1005bb000, 5, c, 62ca20540,
0, 12) + 4a4
150 fffffffd12324ca0 thread_native_entry (0, 1005bb000, 0, 1005bca60,
fffffffd12adbf00, 50dc) + 320
151 ffffffff7eae4b38 _lwp_start (0, 0, 0, 0, 0, 0)
152 ----------------- lwp# 13 / thread# 13 --------------------
153 ffffffff7eae9b3c lwp_cond_wait (1005bec48, 1005bec30,
ffffffff5d2ff4a0, 0)
154 ffffffff7eabf548 _lwp_cond_timedwait (1005bec48, 1005bec30,
ffffffff5d2ff570, e6c00, ffffffff7eabf528, ffffffff5d2ff4a0) + 20
155 fffffffd12331d30 int os::PlatformEvent::park(long) (1005bec00,
20f1f5c0, ffffffff7eabf38c, e6c00, 5, fffffffd12adbf00) + 200
156 fffffffd122c60b8 int Monitor::IWait(Thread*,long) (100121620,
1005bd800, 1388, fffffffd12b4dba8, 1, 100121640) + 118
157 fffffffd122c6cf4 bool Monitor::wait(bool,long,bool) (100121620, 0,
1388, 0, 1, 1005bd800) + 324
158 fffffffd11984df0 CompileTask*CompileQueue::get() (1005909a0,
1005bac20, 0, 1005bd800, fffffffd12adbf00, 100121620) + 70
159 fffffffd11989c80 void CompileBroker::compiler_thread_loop() (71e29,
100590a60, 1005bd800, fffffffd12adbf00, 1005909a0, ffffffff49c06ad8) + 150
160 fffffffd125445fc void JavaThread::thread_main_inner() (1005bd800,
3d8, 1005be5d8, 1005be200, ffffffff5d2ffa38, fffffffd12bb62a0) + 8c
161 fffffffd12544534 void JavaThread::run() (1005bd800, 7, d, 62ca20920,
0, 12) + 4a4
162 fffffffd12324ca0 thread_native_entry (0, 1005bd800, 0, 1005bf020,
fffffffd12adbf00, 50dc) + 320
163 ffffffff7eae4b38 _lwp_start (0, 0, 0, 0, 0, 0)
164 ----------------- lwp# 14 / thread# 14 --------------------
165 ffffffff7eae9b3c lwp_cond_wait (1005c0948, 1005c0930,
ffffffff54eff610, 0)
166 ffffffff7eabf548 _lwp_cond_timedwait (1005c0948, 1005c0930,
ffffffff54eff6e0, e6c00, ffffffff7eabf528, ffffffff54eff610) + 20
167 fffffffd12331d30 int os::PlatformEvent::park(long) (1005c0900,
2040aef0, ffffffff7eabf38c, e6c00, 15180, fffffffd12adbf00) + 200
168 fffffffd122c60b8 int Monitor::IWait(Thread*,long) (10011fa00,
1005bf800, 5265c00, fffffffd12b4dba8, fffffffd12adbf00, 10011fa20) + 118
169 fffffffd122c6a4c bool Monitor::wait(bool,long,bool) (10011fa00, 1,
5265c00, 0, 945b8, 1005bf800) + 7c
170 fffffffd124ebc98 void NMethodSweeper::sweeper_loop()
(fffffffd12b704b8, ffffffff7d600980, fffffffd12adbf00, 6, b, a) + 1b8
171 fffffffd125445fc void JavaThread::thread_main_inner() (1005bf800,
3d8, 1005c0298, 1005bfec0, ffffffff54eff9b8, fffffffd12bb62a0) + 8c
172 fffffffd12544534 void JavaThread::run() (1005bf800, 8, e, 62ca20b10,
0, e) + 4a4
173 fffffffd12324ca0 thread_native_entry (0, 1005bf800, 0, 1005c0ce0,
fffffffd12adbf00, 50dc) + 320
174 ffffffff7eae4b38 _lwp_start (0, 0, 0, 0, 0, 0)
175 ----------------- lwp# 15 / thread# 15 --------------------
176 ffffffff7eae9b3c lwp_cond_wait (100766548, 100766530, 0, 0)
177 fffffffd12331a94 void os::PlatformEvent::park() (100766500, e6c40,
e6c00, 0, fffffffd12adbf00, 100766530) + c4
178 fffffffd122c6038 int Monitor::IWait(Thread*,long) (10011fcd0,
100765800, 0, fffffffd12b4dba8, 0, 10011fcf0) + 98
179 fffffffd122c6a4c bool Monitor::wait(bool,long,bool) (10011fcd0, 1,
0, 0, fffffffd12b70648, 100765800) + 7c
180 fffffffd12431e00 void
ServiceThread::service_thread_entry(JavaThread*,Thread*) (100765800,
100765800, 10011fcd0, 94400, fffffffd12b78f38, fffffffd12b4da28) + 210
181 fffffffd125445fc void JavaThread::thread_main_inner() (100765800,
3d8, 10075c258, 10075be80, ffffffff4caffd38, fffffffd12bb62a0) + 8c
182 fffffffd12544534 void JavaThread::run() (100765800, 9, f, 62cb820d8,
0, e) + 4a4
183 fffffffd12324ca0 thread_native_entry (0, 100765800, 0, 100766930,
fffffffd12adbf00, 50dc) + 320
184 ffffffff7eae4b38 _lwp_start (0, 0, 0, 0, 0, 0)
185 ----------------- lwp# 16 / thread# 16 --------------------
186 ffffffff7eae9b3c lwp_cond_wait (10076b048, 10076b030,
ffffffff4a6ffad0, 0)
187 ffffffff7eabf548 _lwp_cond_timedwait (10076b048, 10076b030,
ffffffff4a6ffba0, e6c00, ffffffff7eabf528, ffffffff4a6ffad0) + 20
188 fffffffd12331d30 int os::PlatformEvent::park(long) (10076b000,
2748270, ffffffff7eabf38c, e6c00, 0, fffffffd12adbf00) + 200
189 fffffffd122c60b8 int Monitor::IWait(Thread*,long) (100121860,
10076a000, 32, fffffffd12b4dba8, fffffffd12adbf00, 100121880) + 118
190 fffffffd122c6a4c bool Monitor::wait(bool,long,bool) (100121860, 1,
32, 0, 1a6529b8c1ea88, 10076a000) + 7c
191 fffffffd12542e3c void WatcherThread::run() (10076a000,
fffffffd12b70650, 32, 4, 2, 10076b2f0) + cc
192 fffffffd12324ca0 thread_native_entry (0, 10076a000, 0, 10076b2f0,
fffffffd12adbf00, 50dc) + 320
193 ffffffff7eae4b38 _lwp_start (0, 0, 0, 0, 0, 0)
194 ----------------- lwp# 17 / thread# 17 --------------------
195 ffffffff7eae9b3c lwp_cond_wait (10076c648, 10076c630,
ffffffff492febb0, 0)
196 ffffffff7eabf548 _lwp_cond_timedwait (10076c648, 10076c630,
ffffffff492fec80, e6c00, ffffffff7eabf528, ffffffff492febb0) + 20
197 fffffffd12331d30 int os::PlatformEvent::park(long) (10076c600,
1f4cfc38, ffffffff7eabf38c, e6c00, 3c, fffffffd12adbf00) + 200
198 fffffffd122f27f8 void ObjectMonitor::wait(long,bool,Thread*)
(1005a3e80, fffffffd128c10b0, fffffffd12b78ff0, 1, 10076b800, 2) + 3e8
199 fffffffd124f4290 int ObjectSynchronizer::wait(Handle,long,Thread*)
(10076c328, ea60, 10076b800, fffffffd12b64a32, 88b32, 1005a3e80) + 150
200 fffffffd11dc4150 JVM_MonitorWait (10076c328, 0, ea60, 10076b800, 1,
fffffffd12b4da28) + 330
201 ffffffff6101170c * java/lang/Object.wait(J)V+-3184
202 ffffffff610116ac * java/lang/Object.wait(J)V+-3184
203 ffffffff61009ecc *
java/lang/ref/ReferenceQueue.remove(J)Ljava/lang/ref/Reference;+59
204 ffffffff61009a38 * jdk/internal/ref/CleanerImpl.run()V+65
205 ffffffff61009fc4 * java/lang/Thread.run()V+11
206 ffffffff61009ecc * jdk/internal/misc/InnocuousThread.run()V+20
207 ffffffff610003c0 ???????? (ffffffff492ff780, ffffffff492ffb38, a,
ffffffff49eeec80, ffffffff6100ff40, ffffffff492ff9f8) + fff8006cc46de0b0
208 fffffffd11c43134 void JavaCalls::call_helper(JavaValue*,const
methodHandle&,JavaCallArguments*,Thread*) (ffffffff492ffb30,
ffffffff49eeec80, ffffffff492ff9e8, ffffffff492ff890, e, ffffffff61000340)
+ 2e4
209 fffffffd11c42550 void
JavaCalls::call_virtual(JavaValue*,Klass*,Symbol*,Symbol*,JavaCallArguments*,Thread*)
(ffffffff492ffb30, e99000, ffffffff492ff890, ffffffff492ff900,
ffffffff492ff9e8, ffffffffff166f50) + 120
210 fffffffd11c425d0 void
JavaCalls::call_virtual(JavaValue*,Handle,Klass*,Symbol*,Symbol*,Thread*)
(ffffffff492ffb30, 10076c320, 800006770, 8, 1, 2) + 50
211 fffffffd11df31e8 void thread_entry(JavaThread*,Thread*) (10076b800,
9f800, 103c00, 62cb88700, fffffffd12b7b8f0, 193400) + d8
212 fffffffd125445fc void JavaThread::thread_main_inner() (10076b800,
3d8, 1005c2678, 1005c22a0, ffffffff492ffc38, fffffffd12bb62a0) + 8c
213 fffffffd12544534 void JavaThread::run() (10076b800, a, 11,
62cb88700, 0, e) + 4a4
214 fffffffd12324ca0 thread_native_entry (0, 10076b800, 0, 10076ccb0,
fffffffd12adbf00, 50dc) + 320
215 ffffffff7eae4b38 _lwp_start (0, 0, 0, 0, 0, 0)
216 ----------------- lwp# 18 / thread# 18 --------------------
217 ffffffff7eae9b3c lwp_cond_wait (10078cd48, 10078cd30, 0, 0)
218 fffffffd12331a94 void os::PlatformEvent::park() (10078cd00, e6c40,
e6c00, 0, fffffffd12adbf00, 10078cd30) + c4
219 fffffffd120c7b00 int JvmtiRawMonitor::SimpleWait(Thread*,long)
(10078a470, 10079c000, ffffffffffffffff, fffffffd120c50e0, 1, 0) + 100
220 fffffffd120c8328 int JvmtiRawMonitor::raw_wait(long,bool,Thread*)
(10078a470, ffffffffffffffff, 1, 10079c000, ffffffffffd880ac,
fffffffd12adbf00) + d8
221 fffffffd120942ec jvmtiError
JvmtiEnv::RawMonitorWait(JvmtiRawMonitor*,long) (4, 10078a470,
ffffffffffffffff, 10079c000, 0, fffffffd12adbf00) + 5c
222 fffffffd0f8385bc debugMonitorWait (fffffffd0f946268, c10, c00,
fffffffd0f945580, fffffffd0f946190, 0) + 3c
223 fffffffd0f81adac debugInit_waitVMInitComplete (0, f28,
fffffffd0f945580, c00, fffffffd0f844888, 1) + 3c
224 fffffffd0f81caac debugLoop_run (105c00, f50, fffffffd0f945580, 1,
fffffffd0f9464d0, 0) + 6c
225 fffffffd0f8335b4 connectionInitiated (fffffffd0f705250, 1000, 1,
fffffffd0f945580, fffffffd0f9468d8, 0) + e4
226 fffffffd0f833800 acceptThread (0, fffffffd0f705260, 1007973c0,
fffffffd0f843de0, fffffffd0f945580, fffffffd0f946190) + 110
227 fffffffd120c0934 void JvmtiAgentThread::call_start_function()
(10079c000, 0, 0, fffffffd12adbf00, fffffffd12b78f38, 0) + 1b4
228 fffffffd125445fc void JavaThread::thread_main_inner() (10079c000,
3d8, 1005bd3f8, 1005bd020, ffffffff48cffbb8, fffffffd12bb62a0) + 8c
229 fffffffd12544534 void JavaThread::run() (10079c000, b, 12,
62cb92b48, 0, 22) + 4a4
230 fffffffd12324ca0 thread_native_entry (0, 10079c000, 0, 10079c9d0,
fffffffd12adbf00, 50dc) + 320
231 ffffffff7eae4b38 _lwp_start (0, 0, 0, 0, 0, 0)
232 ----------------- lwp# 19 / thread# 19 --------------------
233 ffffffff7eae9b3c lwp_cond_wait (10079f748, 10079f730, 0, 0)
234 fffffffd12331a94 void os::PlatformEvent::park() (10079f700, e6c40,
e6c00, 0, fffffffd12adbf00, 10079f730) + c4
235 fffffffd120c7b00 int JvmtiRawMonitor::SimpleWait(Thread*,long)
(10079e4b0, 10079e800, ffffffffffffffff, fffffffd120c50e0, 1, 0) + 100
236 fffffffd120c8328 int JvmtiRawMonitor::raw_wait(long,bool,Thread*)
(10079e4b0, ffffffffffffffff, 1, 10079e800, ffffffffffd880ac,
fffffffd12adbf00) + d8
237 fffffffd120942ec jvmtiError
JvmtiEnv::RawMonitorWait(JvmtiRawMonitor*,long) (4, 10079e4b0,
ffffffffffffffff, 10079e800, 0, fffffffd12adbf00) + 5c
238 fffffffd0f8385bc debugMonitorWait (fffffffd0f946268, c10, c00,
fffffffd0f945580, fffffffd0f946190, 0) + 3c
239 fffffffd0f8261f8 doBlockCommandLoop (800, 1028, fffffffd0f945580,
1000, fffffffd0f945580, 0) + 48
240 fffffffd0f826448 commandLoop (c10, 10079eae0, 1, fffffffd0f945580,
fffffffd0f94612c, 1007a0a20) + f8
241 fffffffd120c0934 void JvmtiAgentThread::call_start_function()
(10079e800, 0, 0, fffffffd12adbf00, fffffffd12b78f38, 0) + 1b4
242 fffffffd125445fc void JavaThread::thread_main_inner() (10079e800,
3d8, 1005c1a78, 1005c16a0, ffffffff48affb38, fffffffd12bb62a0) + 8c
243 fffffffd12544534 void JavaThread::run() (10079e800, c, 13,
62cb92d50, 0, 18) + 4a4
244 fffffffd12324ca0 thread_native_entry (0, 10079e800, 0, 10079d0e0,
fffffffd12adbf00, 50dc) + 320
245 ffffffff7eae4b38 _lwp_start (0, 0, 0, 0, 0, 0)
246 ----------------- lwp# 20 / thread# 20 --------------------
247 ffffffff7eae906c recv (7, ffffffff488ff7b4, 4, 0)
248 ffffffff7e40dba8 recv (7, ffff7fff, 4, 0, ffff7c00, 1007a1000) + 1c
249 fffffffd0f603f70 dbgsysRecv (7, ffffffff488ff7b4, 4, 0, 1007a1000,
a0910) + 10
250 fffffffd0f6034e4 recv_fully (7, ffffffff488ff7b4, 4, a0800, 0, 0) +
24
251 fffffffd0f603634 socketTransport_readPacket (598, ffffffff488ff920,
100000, fffffffd0f704cb0, fffffffd0f604bb0, 0) + 54
252 fffffffd0f8341c0 transport_receivePacket (ffffffff488ff920, be8,
800, fffffffd0f945580, 10079a180, 1) + 30
253 fffffffd0f81cd30 reader (0, ffffffffffefa490, fffffffd0f945580,
105800, ffffffff488ff920, fffffffd0f83fa10) + 60
254 fffffffd120c0934 void JvmtiAgentThread::call_start_function()
(1007a1000, 0, 0, fffffffd12adbf00, fffffffd12b78f38, 0) + 1b4
255 fffffffd125445fc void JavaThread::thread_main_inner() (1007a1000,
3d8, 1005c1e78, 1005c1aa0, ffffffff488ffab8, fffffffd12bb62a0) + 8c
256 fffffffd12544534 void JavaThread::run() (1007a1000, d, 14,
62cbeb9e8, 72, 13) + 4a4
257 fffffffd12324ca0 thread_native_entry (0, 1007a1000, 0, 1007a0ab0,
fffffffd12adbf00, 50dc) + 320
258 ffffffff7eae4b38 _lwp_start (0, 0, 0, 0, 0, 0)
On 4/23/18 17:02, serguei.spitsyn at oracle.com wrote:
On 4/23/18 16:08, serguei.spitsyn at oracle.com wrote:
Hi Andrew,
There is a regression with this fix.
The following test is failed with timeout on all platforms except Windows:
Sorry, forgot to copy the test name:
open/test/jdk/com/sun/jdi/JITDebug.sh
Thanks,
Serguei
I'll try to get more details about this timeout.
Thanks,
Serguei
On 4/18/18 09:49, serguei.spitsyn at oracle.com wrote:
Hi Andrew,
Sorry, I did not reply earlier.
The fix need more testing. We also have some important tests in closed.
I'll run them but I'm a little bit busy at the moment.
You have two reviews which is enough for push after testing.
Thanks,
Serguei
On 4/18/18 08:23, Andrew Leonard wrote:
Hi Serguei,
Do you need me to try anything else for this review?
hotspot/jtreg/serviceability suite run successfully.
Many Thanks
Andrew
Andrew Leonard
Java Runtimes Development
IBM Hursley
IBM United Kingdom Ltd
Phone internal: 245913, external: 01962 815913
internet email: andrew_m_leonard at uk.ibm.com
From: "serguei.spitsyn at oracle.com" <serguei.spitsyn at oracle.com>
To: daniel.daugherty at oracle.com, Andrew Leonard
<andrew_m_leonard at uk.ibm.com>
Cc: serviceability-dev at openjdk.java.net
Date: 16/04/2018 07:10
Subject: Re: RFR: 8201409: JDWP debugger initialization hangs
intermittently
On 4/15/18 10:01, Daniel D. Daugherty wrote:
On 4/13/18 3:07 PM, serguei.spitsyn at oracle.com wrote:
Andrew and reviewers,
I'm re-sending this RFR with a corrected subject that includes the bug
number.
The issues is:
https://bugs.openjdk.java.net/browse/JDK-8201409
Webrev:
http://cr.openjdk.java.net/~sspitsyn/webrevs/2018/8201409-jdwp-initsync.ibm.1/
src/jdk.jdwp.agent/share/native/libjdwp/debugInit.c
No comments.
src/jdk.jdwp.agent/share/native/libjdwp/debugInit.h
No comments.
src/jdk.jdwp.agent/share/native/libjdwp/debugLoop.c
So now pauses in debugLoop_run() before the loop
that reads cmds. Looks good.
src/jdk.jdwp.agent/share/native/libjdwp/eventHelper.c
So the VM_INIT event handler now signals that we have
received the VM_INIT event so that allows debugLoop_run()
to proceed.
Serguei, this fix needs to have the most of the Serviceability
stack of tests run against it (jdwp, JVM/TI, JDI and jdb tests).
Based on the email thread, I can't tell which tests have been
run with the fix in place.
Hi Dan,
I'm going to sponsor this fix and will run all the debugger tests.
Sorry that I did not announce it yet.
Thanks,
Serguei
Dan
The fix looks good to me.
Also, I've agreed to skip a unit test as creating it for this issue is not
easy.
At least, one more review is needed before the fix can be pushed.
Thanks,
Serguei
On 4/11/18 06:33, Andrew Leonard wrote:
Hi Serguei,
Thank you for raising the bug.
I had a chat with one of my colleagues who could recreate it, and it's
probably related to the handshaking that is done in the particular
scenario. So with the JCK harness:
com.sun.jck.lib.ExecJCKTestOtherJVMCmd LD_LIBRARY_PATH=/javatest/lib/jck
/jck8b/natives/linux_x86-64 /projects/jck/jdwp/j2sdk-image/bin/java
-Xdump:system:none -Xdump:system:events=gpf+abort+traceassert+corruptcache
-Xdump:snap:none -Xdump:snap:events=gpf+abort+traceassert+corruptcache
-Xdump:java:none -Xdump:java:events=gpf+abort+traceassert+corruptcache
-Xdump:heap:none -Xdump:heap:events=gpf+abort+traceassert+corruptcache -
Xfuture -agentlib:jdwp=server=y,transport=dt_socket,address=localhost
:35000,suspend=y -classpath /javatest/lib/jck
/JCK8b-b03/JCK-runtime-8b/classes -Djava.security.policy=/javatest/lib/jck
/JCK8b-b03/JCK-runtime-8b/lib/jck.policy
javasoft.sqe.jck.lib.jpda.jdwp.DebuggeeLoader -waittime=600
-msgSwitch=ub1604x64vm10:38636 -componentName=
ArrayReference.GetValues.getvalues002
Note that the JCK test harness starts the target process, attaches to it,
and sends the resume command
in a very short time with no handshaking.
That may not help..but hopefully helps explain things a bit? It's the
timing of the resume command during the test that is crucial, resuming
before the VM initialization is complete will trigger it.
Thanks
Andrew
Andrew Leonard
Java Runtimes Development
IBM Hursley
IBM United Kingdom Ltd
Phone internal: 245913, external: 01962 815913
internet email: andrew_m_leonard at uk.ibm.com
From: "serguei.spitsyn at oracle.com" <serguei.spitsyn at oracle.com>
To: Andrew Leonard <andrew_m_leonard at uk.ibm.com>
Cc: serviceability-dev at openjdk.java.net
Date: 11/04/2018 09:57
Subject: Re: RFR: Fix race condition in jdwp
Hi Andrew,
I've filed the bug:
https://bugs.openjdk.java.net/browse/JDK-8201409
Also, this is a webrev with your patch:
http://cr.openjdk.java.net/~sspitsyn/webrevs/2018/8201409-jdwp-initsync.ibm.1/
I agree that creating a standalone test is tricky here.
I've added usleep(10000) into the eventHelper_reportVMInit()
and ran the JTreg com/sun/jdi tests with my JDK build.
However, none of the tests failed with the failure mode you described.
So that I'm puzzled a little bit.
I suspect that some specific debugLoop commands were used in your
scenario.
It is still possible that I've missed something here.
Will try to double check everything.
Thanks,
Serguei
On 4/11/18 01:29, Andrew Leonard wrote:
Thanks Serguei,
I terms of a standalone testcase it is quite tricky, as due to the nature
of the issue which took a lot of investigation to solve it's very timing
dependent and will only occur randomly. It can be forced as I indicated
below by adding a "sleep" in the VMInit report code but that's not a
testcase, however the issue was originally found in our JCK testing for
IBMJava8, testcase test.jck8b.runtime.vm.jdwp, but again only happened
intermittently. Sort of like "performance" type issues we're not always
going to be able to create a testcase that will always "fail" if the fix
is not present.
Your thoughts?
Cheers
Andrew
Andrew Leonard
Java Runtimes Development
IBM Hursley
IBM United Kingdom Ltd
Phone internal: 245913, external: 01962 815913
internet email: andrew_m_leonard at uk.ibm.com
From: "serguei.spitsyn at oracle.com" <serguei.spitsyn at oracle.com>
To: Andrew Leonard <andrew_m_leonard at uk.ibm.com>
Cc: serviceability-dev at openjdk.java.net
Date: 11/04/2018 01:02
Subject: Re: RFR: Fix race condition in jdwp
Hi Andrew,
Okay, I'll file a bug on this topic.
But do you have a standalone test demonstrating this issue?
Thanks,
Serguei
On 4/10/18 06:23, Andrew Leonard wrote:
Hi Serguei,
I don't have access to the bug database to raise one, are you able to
please?
Summary: JDWP debugger initialization hangs intermittently
Description: If during the JDWP setup initialization the VM initialization
takes slightly longer than the main debug initialization thread a "hang"
situation can occur. This has been seen in testcase
test.jck8b.runtime.vm.jdwp and can also be recreated easily by adding a 10
second sleep to the beginning of the
src/jdk.jdwp.agent/share/native/libjdwp/eventHelper.c method
eventHelper_reportVMInit() .
First seen: JDK8
Recreated: JDK11
Thanks
Andrew
Andrew Leonard
Java Runtimes Development
IBM Hursley
IBM United Kingdom Ltd
Phone internal: 245913, external: 01962 815913
internet email: andrew_m_leonard at uk.ibm.com
From: "serguei.spitsyn at oracle.com" <serguei.spitsyn at oracle.com>
To: Andrew Leonard <andrew_m_leonard at uk.ibm.com>,
serviceability-dev at openjdk.java.net
Date: 09/04/2018 23:03
Subject: Re: RFR: Fix race condition in jdwp
Hi Andrew,
The patch itself looks reasonable.
However, in order to proceed with it, a bug report with a standalone
test case demonstrating the issue is needed.
Thanks,
Serguei
On 4/9/18 09:07, Andrew Leonard wrote:
> Hi,
> We discovered in our testing with OpenJ9 that a race condition can
> occur in the jdwp under certain circumstances, and we were able to
> force the same issue with Hotspot. Normally, the event helper thread
> suspends all threads, then the debug loop in the listener thread
> receives a command to resume. The debugger may deadlock if the debug
> loop in the listener thread starts processing commands (e.g. resume
> threads) before the event helper completes the initialization (and
> suspends threads).
>
> This patch adds synchronization to ensure the event helper completes
> the initialization sequence before debugger commands are processed.
>
> Please can I find a sponsor for this contribution? Patch below..
>
> Many thanks
>
> Andrew
>
>
>
> diff --git a/src/jdk.jdwp.agent/share/native/libjdwp/debugInit.c
> b/src/jdk.jdwp.agent/share/native/libjdwp/debugInit.c
> --- a/src/jdk.jdwp.agent/share/native/libjdwp/debugInit.c
> +++ b/src/jdk.jdwp.agent/share/native/libjdwp/debugInit.c
> @@ -1,5 +1,5 @@
> /*
> - * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights
> reserved.
> + * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights
> reserved.
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
> *
> * This code is free software; you can redistribute it and/or modify it
> @@ -58,6 +58,7 @@
> static jboolean vmInitialized;
> static jrawMonitorID initMonitor;
> static jboolean initComplete;
> +static jboolean VMInitComplete;
> static jbyte currentSessionID;
>
> /*
> @@ -617,6 +618,35 @@
> debugMonitorExit(initMonitor);
> }
>
> +/*
> + * Signal VM initialization is complete.
> + */
> +void
> +signalVMInitComplete(void)
> +{
> + /*
> + * VM Initialization is complete
> + */
> + LOG_MISC(("signal VM initialization complete"));
> + debugMonitorEnter(initMonitor);
> + VMInitComplete = JNI_TRUE;
> + debugMonitorNotifyAll(initMonitor);
> + debugMonitorExit(initMonitor);
> +}
> +
> +/*
> + * Wait for VM initialization to complete.
> + */
> +void
> +debugInit_waitVMInitComplete(void)
> +{
> + debugMonitorEnter(initMonitor);
> + while (!VMInitComplete) {
> + debugMonitorWait(initMonitor);
> + }
> + debugMonitorExit(initMonitor);
> +}
> +
> /* All process exit() calls come from here */
> void
> forceExit(int exit_code)
> @@ -672,6 +702,7 @@
> LOG_MISC(("Begin initialize()"));
> currentSessionID = 0;
> initComplete = JNI_FALSE;
> + VMInitComplete = JNI_FALSE;
>
> if ( gdata->vmDead ) {
> EXIT_ERROR(AGENT_ERROR_INTERNAL,"VM dead at initialize() time");
> diff --git a/src/jdk.jdwp.agent/share/native/libjdwp/debugInit.h
> b/src/jdk.jdwp.agent/share/native/libjdwp/debugInit.h
> --- a/src/jdk.jdwp.agent/share/native/libjdwp/debugInit.h
> +++ b/src/jdk.jdwp.agent/share/native/libjdwp/debugInit.h
> @@ -1,5 +1,5 @@
> /*
> - * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights
> reserved.
> + * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights
> reserved.
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
> *
> * This code is free software; you can redistribute it and/or modify it
> @@ -39,4 +39,7 @@
> void debugInit_exit(jvmtiError, const char *);
> void forceExit(int);
>
> +void debugInit_waitVMInitComplete(void);
> +void signalVMInitComplete(void);
> +
> #endif
> diff --git a/src/jdk.jdwp.agent/share/native/libjdwp/debugLoop.c
> b/src/jdk.jdwp.agent/share/native/libjdwp/debugLoop.c
> --- a/src/jdk.jdwp.agent/share/native/libjdwp/debugLoop.c
> +++ b/src/jdk.jdwp.agent/share/native/libjdwp/debugLoop.c
> @@ -1,5 +1,5 @@
> /*
> - * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights
> reserved.
> + * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights
> reserved.
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
> *
> * This code is free software; you can redistribute it and/or modify it
> @@ -98,6 +98,7 @@
> standardHandlers_onConnect();
> threadControl_onConnect();
>
> + debugInit_waitVMInitComplete();
> /* Okay, start reading cmds! */
> while (shouldListen) {
> if (!dequeue(&p)) {
> diff --git a/src/jdk.jdwp.agent/share/native/libjdwp/eventHelper.c
> b/src/jdk.jdwp.agent/share/native/libjdwp/eventHelper.c
> --- a/src/jdk.jdwp.agent/share/native/libjdwp/eventHelper.c
> +++ b/src/jdk.jdwp.agent/share/native/libjdwp/eventHelper.c
> @@ -1,5 +1,5 @@
> /*
> - * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights
> reserved.
> + * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights
> reserved.
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
> *
> * This code is free software; you can redistribute it and/or modify it
> @@ -580,6 +580,7 @@
> (void)threadControl_suspendThread(command->thread, JNI_FALSE);
> }
>
> + signalVMInitComplete();
> outStream_initCommand(&out, uniqueID(), 0x0,
> JDWP_COMMAND_SET(Event),
> JDWP_COMMAND(Event, Composite));
>
>
>
> Andrew Leonard
> Java Runtimes Development
> IBM Hursley
> IBM United Kingdom Ltd
> Phone internal: 245913, external: 01962 815913
> internet email: andrew_m_leonard at uk.ibm.com
>
>
> Unless stated otherwise above:
> IBM United Kingdom Limited - Registered in England and Wales with
> number 741598.
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20180503/ab7dd9ee/attachment-0001.html>
More information about the serviceability-dev
mailing list