Gentle reminder.
Regards, Shafi From: Shafi Ahmad Sent: Thursday, September 07, 2017 11:43 AM To: Daniel Daugherty <daniel.daughe...@oracle.com>; serviceability-dev@openjdk.java.net Subject: RE: [10] RFR for JDK-8170299: Debugger does not stop inside the low memory notifications code Hi Daniel, Thank you for the input. With this change I am not seeing any addition failure for all the suggested test suits. TEST 346/346 346/346 nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/stressTest_proxy_custom PASS HARNESS ENDED: Wed Sep 06 00:00:49 PDT 2017 TOTAL TESTS IN RUN: 346 TEST PASS: 346; 100% rate TEST FAIL: 0; 0% rate TEST UNDEFINED: 0; 0% rate TEST INCOMPLETE: 0; 0% rate TESTS NOT RUN: 0 TOTAL TEST IN TESTLIST: 359 Passed: com/sun/management/UnixOperatingSystemMXBean/GetOpenFileDescriptorCount.sh Passed: com/sun/management/CheckSomeMXBeanImplPackage.java Passed: com/sun/management/VMOptionOpenDataTest.java Test results: passed: 30 Report written to /scratch/shshahma/Java/jdk10-dev-new/JTreport/html/report.html Results written to /scratch/shshahma/Java/jdk10-dev-new/JTwork Passed: java/lang/management/ThreadMXBean/ThreadUserTime.java Test results: passed: 65 Report written to /scratch/shshahma/Java/jdk10-dev-new/JTreport/html/report.html Results written to /scratch/shshahma/Java/jdk10-dev-new/JTwork Passed: jdk/internal/agent/AgentCheckTest.java Passed: jdk/internal/agent/AgentCMETest.java Test results: passed: 2 Report written to /scratch/shshahma/Java/jdk10-dev-new/JTreport/html/report.html Results written to /scratch/shshahma/Java/jdk10-dev-new/JTwor Passed: sun/management/PlatformMBeanProviderConstructorCheck.java Test results: passed: 33 Report written to /scratch/shshahma/Java/jdk10-dev-new/JTreport/html/report.html Results written to /scratch/shshahma/Java/jdk10-dev-new/JTwork Passed: javax/management/timer/StartTest.java Test results: passed: 243; failed: 1 Report written to /scratch/shshahma/Java/jdk10-dev-new/JTreport/html/report.html Results written to /scratch/shshahma/Java/jdk10-dev-new/JTwork Error: Some tests failed or other problems occurred. I verified the above failure and without my change it failed too. jdk10-dev-new$ jtreg -v1 -jdk:./build/linux-x64/jdk/ jdk/test/javax/management/remote/nonLocalAccess/NonLocalJMXRemoteTest.java FAILED: javax/management/remote/nonLocalAccess/NonLocalJMXRemoteTest.java Test results: failed: 1 Report written to /scratch/shshahma/Java/jdk10-dev-new/JTreport/html/report.html Results written to /scratch/shshahma/Java/jdk10-dev-new/JTwork Error: Some tests failed or other problems occurred. jdk10-dev-new$ tail ./JTwork/javax/management/remote/nonLocalAccess/NonLocalJMXRemoteTest.jtr -Dtest.timeout.factor=1.0 \\ -Dtest.modules=java.management \\ --add-modules java.management \\ -Djmx-registry.host=jmx-registry-host \\ -Djmx-registry.port=jmx-registry-port \\ com.sun.javatest.regtest.agent.MainWrapper /scratch/shshahma/Java/jdk10-dev-new/JTwork/javax/management/remote/nonLocalAccess/NonLocalJMXRemoteTest.d/main.0.jta result: Failed. Execution failed: `main' threw exception: java.lang.RuntimeException: Specify port with system property: -Djmx-registry.port=<port> test result: Failed. Execution failed: `main' threw exception: java.lang.RuntimeException: Specify port with system property: -Djmx-registry.port=<port> Regards, Shafi From: Daniel D. Daugherty Sent: Tuesday, September 05, 2017 10:36 PM To: Shafi Ahmad <HYPERLINK "mailto:shafi.s.ah...@oracle.com"shafi.s.ah...@oracle.com>; HYPERLINK "mailto:serviceability-dev@openjdk.java.net"serviceability-dev@openjdk.java.net Subject: Re: [10] RFR for JDK-8170299: Debugger does not stop inside the low memory notifications code Sorry for the incomplete answer earlier. There are also relevant tests in: jdk/test/java/lang/management jdk/test/com/sun/management jdk/test/sun/management jdk/test/jdk/internal/agent jdk/test/javax/management jdk/test/com/sun/jmx You might want to just run the 'jdk_management' and 'jdk_jmx' test groups... that should also pick up any closed side tests... Dan On 9/5/17 10:44 AM, Shafi Ahmad wrote: Thank you Daniel. I will run and update it with the result. Regards, Shafi On Tue, Sep 5, 2017 at 9:44 PM +0530, "Daniel D. Daugherty" <HYPERLINK "mailto:daniel.daughe...@oracle.com"daniel.daughe...@oracle.com> wrote: Seems like you should also run: nsk.monitoring.testlist Dan On 9/4/17 4:11 AM, Shafi Ahmad wrote: Hi, Please review the fix for ‘JDK-8170299: Debugger does not stop inside the low memory notifications code’ to jdk10. With the current implementation ‘debugger does not stop inside the low memory *notifications* code’ This is expected as the notification code is getting executed with the service thread, which is a hidden thread. jdk10-dev-new$ jdb -Xmx32m MemoryWarningSystem Initializing jdb ... > stop at MemoryWarningSystem$1:25 Deferring breakpoint MemoryWarningSystem$1:25. It will be set after the class is loaded. > run run MemoryWarningSystem Set uncaught java.lang.Throwable Set deferred uncaught java.lang.Throwable > . . . > quit Breakpoint not hit. With the attached webrev, jdb stop at breakpoint inside notification code. jdk10-dev-new$ jdb -Xmx64m MemoryWarningSystem Initializing jdb ... > stop at MemoryWarningSystem$1:25 Deferring breakpoint MemoryWarningSystem$1:25. It will be set after the class is loaded. > run run MemoryWarningSystem Set uncaught java.lang.Throwable Set deferred uncaught java.lang.Throwable > VM Started: Set deferred breakpoint MemoryWarningSystem$1:25 Breakpoint hit: "thread=Thread-0", MemoryWarningSystem$1.memoryUsageLow(), line=25 bci=0 25 System.out.println("Memory usage low!!!"); Thread-0[1] step > Memory usage low!!! Step completed: "thread=Thread-0", MemoryWarningSystem$1.memoryUsageLow(), line=26 bci=8 26 double percentageUsed = ((double) usedMemory) / maxMemory; Thread-0[1] where [1] MemoryWarningSystem$1.memoryUsageLow (MemoryWarningSystem.java:26) [2] MemoryWarningSystem$2.handleNotification (MemoryWarningSystem.java:48) [3] javax.management.NotificationBroadcasterSupport.handleNotification (NotificationBroadcasterSupport.java:284) [4] javax.management.NotificationBroadcasterSupport$SendNotifJob.run (NotificationBroadcasterSupport.java:361) [5] java.lang.Thread.run (Thread.java:844) Thread-0[1] step > Step completed: "thread=Thread-0", MemoryWarningSystem$1.memoryUsageLow(), line=27 bci=15 27 System.out.println("percentageUsed = " + percentageUsed); Thread-0[1] list 23 mws.addListener(new MemoryWarningSystem.Listener() { 24 public void memoryUsageLow(long usedMemory, long maxMemory) { 25 System.out.println("Memory usage low!!!"); 26 double percentageUsed = ((double) usedMemory) / maxMemory; 27 => System.out.println("percentageUsed = " + percentageUsed); 28 MemoryWarningSystem.setPercentageUsageThreshold(0.8); 29 } 30 }); 31 32 Collection<Double> numbers = new LinkedList<Double>(); Thread-0[1] In the change, the class ‘MemoryImpl’ is derived from class ‘NotificationBroadcasterSupport’ instead of class ‘NotificationEmitterSupport’ NotificationBroadcastSupport takes an Executor, MemoryImpl constructor call super() with an executor, a visible thread. The method hasListeners() is referenced inside MemoryImpl.java and defined in NotificationEmitterSupport. This method is not present in NotificationBroadcasterSupport so I added it to NotificationBroadcasterSupport. Jdk10 bug: https://bugs.openjdk.java.net/browse/JDK-8170299 Webrev link: HYPERLINK "http://cr.openjdk.java.net/%7Eshshahma/8170299/webrev.01/"http://cr.openjdk.java.net/~shshahma/8170299/webrev.01/ Testing: jprt -testset core, vm tonga tests nsk.jvmti.testlist, nsk.jdi.testlist, nsk.jdwp.testlist and jtreg tests ./jdk/test/com/sun/jdi/ Please let me know if I missed to test some more test suit[s]. Thanks to Mandy and Poonam for helping me in fixing this. Regards, Shafi