From jamtech007 at gmail.com Sun Jul 1 23:34:22 2012 From: jamtech007 at gmail.com (jam tech) Date: Mon, 2 Jul 2012 12:04:22 +0530 Subject: Class Data Sharing and Compiler Dependency In-Reply-To: References: Message-ID: Hi , i see class data sharing disabled for COMPILER2(in arguments.cpp) . can any one help me knowing why its disabled for COMPILER2 , while its enabled in COMPILER1 , TIERED cases ? Thanks and Regards, Jamsheed From david.holmes at oracle.com Mon Jul 2 00:56:40 2012 From: david.holmes at oracle.com (David Holmes) Date: Mon, 02 Jul 2012 17:56:40 +1000 Subject: Class Data Sharing and Compiler Dependency In-Reply-To: References: Message-ID: <4FF15438.9030508@oracle.com> On 2/07/2012 4:34 PM, jam tech wrote: > i see class data sharing disabled for COMPILER2(in arguments.cpp) . can any > one help me knowing why its disabled for COMPILER2 , while its enabled in > COMPILER1 , TIERED cases ? AFAICS it is only -Xshare:dump that is "disabled" This is not an authoritive history but ... - CDS was initially only intended for client VM and not supported on server - early TIERED compilation work enabled CDS - hotspot has actually been building TIERED rather the COMPILER2 for a while now David From coleen.phillimore at oracle.com Mon Jul 2 08:15:17 2012 From: coleen.phillimore at oracle.com (Coleen Phillimore) Date: Mon, 02 Jul 2012 11:15:17 -0400 Subject: Class Data Sharing and Compiler Dependency In-Reply-To: <4FF15438.9030508@oracle.com> References: <4FF15438.9030508@oracle.com> Message-ID: <4FF1BB05.7050205@oracle.com> Today CDS (Class Data Sharing) is only supported UseSerialGC, which is almost never used for the server compiler (COMPILER2). The original conditional code was intended to do that, then TIERED got added. In the PermGen elimination work, CDS is supported for all GCs so this conditional code needs to be cleaned up. Thanks for pointing it out. Coleen On 7/2/2012 3:56 AM, David Holmes wrote: > On 2/07/2012 4:34 PM, jam tech wrote: >> i see class data sharing disabled for COMPILER2(in arguments.cpp) . >> can any >> one help me knowing why its disabled for COMPILER2 , while its >> enabled in >> COMPILER1 , TIERED cases ? > > AFAICS it is only -Xshare:dump that is "disabled" > > This is not an authoritive history but ... > > - CDS was initially only intended for client VM and not supported on > server > - early TIERED compilation work enabled CDS > - hotspot has actually been building TIERED rather the COMPILER2 for a > while now > > David > From david.holmes at oracle.com Tue Jul 3 04:22:53 2012 From: david.holmes at oracle.com (David Holmes) Date: Tue, 03 Jul 2012 21:22:53 +1000 Subject: 100% cpu usage on CentOS/RHEL 6 In-Reply-To: References: <4FF1A9E6.4040503@optrak.com> <4FF257F0.9060403@oracle.com> Message-ID: <4FF2D60D.1080604@oracle.com> On 3/07/2012 9:07 PM, Amol Kulkarni wrote: > I dont think this is the leap-second bug bcos I can simulate it at any > time using foll script. > #!/bin/bash > > while [ 1 ] > do > /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/bin/java -version & > sleep 1s > done > > > The leap second bug seems to be occuring only near 30 Jun or 1 Jul. That's when it activates but unless you take steps to fix it it remains in your system. The time offset used by the hrtimers remains 1 second out of sync with actual time. > I did generate a backtrace with this prb but I dont have openjdk with > debug symbols - can u tell me where I can get it? No sorry, I don't know about the OpenJDK distros available for CentOS. Further discussion should move to hotspot-dev at openjdk.java.net cc'd. David ----- > > On Tue, Jul 3, 2012 at 7:54 AM, David Holmes > wrote: > > Yes this sounds like the linux leap-second bug. > > Despite a lot of ignorant comments on the web this is not a bug in Java. > > But I would really appreciate it if someone experience this can send > me a stack trace from the problematic thread(s). I think I know what > is happening but need to confirm. > > Thanks, > David Holmes > > > On 3/07/2012 12:02 AM, Mark Thornton wrote: > > On 02/07/12 14:45, Amol Kulkarni wrote: > > Hi, > > I have a java app running on CentOS 6.0. It always runs in > background via > cron. Sometimes this app goes into wait state while using > 100% cpu. > > My java version is : > > java version "1.6.0_17" > OpenJDK Runtime Environment (IcedTea6 1.7.4) > (rhel-1.21.b17.el6-x86_64) > OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode) > > Other symptoms are : > > a. One thread of the process seems to be in a loop waiting > for something. > When traced using strace, it shows following o/p continuously : > > futex(0x7fb8000ac728, FUTEX_WAKE_PRIVATE, 1) = 0 > futex(0x7fb8000ac754, > FUTEX_WAIT_BITSET_PRIVATE|__FUTEX_CLOCK_REALTIME, > > > Could it be related to this: > https://bugzilla.kernel.org/__show_bug.cgi?id=32922 > > > Mark Thornton > > From jiangli.zhou at oracle.com Tue Jul 3 22:18:01 2012 From: jiangli.zhou at oracle.com (jiangli.zhou at oracle.com) Date: Wed, 04 Jul 2012 05:18:01 +0000 Subject: hg: hsx/hsx23.2/hotspot: 7156729: PPC: R_PPC_REL24 relocation error related to some libraries built without -fPIC Message-ID: <20120704051805.87D7747CC4@hg.openjdk.java.net> Changeset: ab0720e5abbb Author: dlong Date: 2012-06-25 15:34 -0400 URL: http://hg.openjdk.java.net/hsx/hsx23.2/hotspot/rev/ab0720e5abbb 7156729: PPC: R_PPC_REL24 relocation error related to some libraries built without -fPIC Summary: build powerpc with -fPIC Reviewed-by: mikael, vladidan, roland Contributed-by: dean.long at oracle.com ! make/pic.make From coleen.phillimore at oracle.com Wed Jul 4 09:51:35 2012 From: coleen.phillimore at oracle.com (Coleen Phillimore) Date: Wed, 04 Jul 2012 12:51:35 -0400 Subject: Latest PermGen elimination webrev Message-ID: <4FF47497.8010307@oracle.com> The latest webrev of the Permgen Elimination work is available here: open webrev at http://cr.openjdk.java.net/~coleenp/metadata6 This is relative to this changeset in the hotspot-gc repository: changeset: 3462:3759236eea14 Since the last published webrev there have been some bug fixes, cleanups and merging. Please look at areas of interest to you and we welcome all comments. Thanks, Coleen From david.holmes at oracle.com Wed Jul 4 22:32:42 2012 From: david.holmes at oracle.com (David Holmes) Date: Thu, 05 Jul 2012 15:32:42 +1000 Subject: Fwd: jdk8 makefile changes In-Reply-To: <6E1102AE-5167-4FA8-888F-264EDA515E4C@oracle.com> References: <6E1102AE-5167-4FA8-888F-264EDA515E4C@oracle.com> Message-ID: <4FF526FA.9060207@oracle.com> FWD to hotspot-dev in case folks there are not on build-dev David -------- Original Message -------- Subject: jdk8 makefile changes Date: Tue, 3 Jul 2012 11:38:02 -0700 From: Kelly O'Hair To: build-dev at openjdk.java.net build-dev CC: build-infra-dev at openjdk.java.net Heads up... We expect to do a sync up of the jdk8/build forest with the latest in the build-infra forest in the next few days. As the new build-infra project starts getting more solid and we contemplate when we can switch the default to building with the new build-infra Makefiles (we don't know exactly when yet). **** IMPORTANT NOTICE **** It will be important that *anyone* making *any* changes to the jdk8 Makefiles keep the build-dev or build-infra mailing lists informed. For a period of time we need to maintain two separate build mechanisms, and we want to make sure that both build the same thing. The hotspot repository is the one exception where we don't have two sets of makefiles, but we still would like to know when anyone is changing the makefiles or anything to do with the build process. ***************************** We will soon be running both builds and doing comparisons of the resulting j2sdk-image files from both to insure we match. So if we detect differences we will be tracking down how those differences happened (that's a hint that we will be watching :^). More information on the new build-infra Makefiles can be found at: http://openjdk.java.net/projects/build-infra/ User Guide is at: http://openjdk.java.net/projects/build-infra/guide.html Some preliminary timings for building the product image (effectively, build/j2sdk-image/): OLD NEW build-infra times (All estimates, similar VMs/Zones) linux_i586 (21m 59s) (08m 13s) linux_x64 (13m 34s) (07m 04s) solaris_i586 (26m 14s) (11m 31s) solaris_sparc (54m 02s) (28m 21s) windows_i586 (55m 49s) (32m 22s) (old used MKS, build-infra only uses CYGWIN) windows_x64 (36m 36s) (23m 50s) " " " Notes: * Machines with more processors will reduce the build time for build-infra builds, less so with the old Makefiles. * Always use local disk or /tmp (all above timings use /tmp, always local disk) * Above uses VMs for Windows and Linux, raw hardware would be faster * Use of ccache can sometimes speed things up, but can also skew the timings, in the above measurements OLD used ccache, NEW did not. -kto From Vasanth.Venkatachalam at amd.com Thu Jul 5 15:44:46 2012 From: Vasanth.Venkatachalam at amd.com (Venkatachalam, Vasanth) Date: Thu, 5 Jul 2012 22:44:46 +0000 Subject: question about stubRoutines In-Reply-To: <4FE90669.8090106@oracle.com> References: <5DD1503F815BD14889DC81D28643E3A709C30FA4@sausexdag04.amd.com> <4FE90669.8090106@oracle.com> Message-ID: <5DD1503F815BD14889DC81D28643E3A709C33D81@sausexdag04.amd.com> How do you handle the case where instructions in assembler_x86.cpp don't have overloaded versions that take an AddressLiteral as a source argument? Below is how I'm handling this case. Is this correct? Take for example, the andl instruction. I defined an overloaded version taking an AddressLiteral in MacroAssembler: void MacroAssembler::andl(Register dst, AddressLiteral src) { if(reachable(src)) { Assembler::andl(dst, as_Address(src)); } else { lea(rscratch1, src); Assembler::andl(dst, Address(rscratch1, 0)); } When I want to use the instruction (in StubGenerator_x86_64.cpp), I do it as follows: ExternalAddress foo_address(StubRoutines::x86::mask_mant_all8()); __ andl(rax, foo_address); When I do this I get the build errors below: /home/tester/hotspot/hotspot-bd-dev/src/cpu/x86/vm/x86_64.ad: In member function 'virtual void loadUB2L_immI8Node::emit(CodeBuffer&, PhaseRegAlloc*) const': /home/tester/hotspot/hotspot-bd-dev/src/cpu/x86/vm/x86_64.ad:4850:44: error: no matching function for call to 'MacroAssembler::andl(RegisterImpl*&, intptr_t)' /home/tester/hotspot/hotspot-bd-dev/src/cpu/x86/vm/x86_64.ad:4850:44: note: candidate is: In file included from /home/tester/hotspot/hotspot-bd-dev/src/share/vm/asm/assembler.hpp:448:0, from /home/tester/hotspot/hotspot-bd-dev/src/share/vm/precompiled/precompiled.hpp:29: /home/tester/hotspot/hotspot-bd-dev/src/cpu/x86/vm/assembler_x86.hpp:2256:8: note: void MacroAssembler::andl(Register, AddressLiteral) /home/tester/hotspot/hotspot-bd-dev/src/cpu/x86/vm/assembler_x86.hpp:2256:8: note: no known conversion for argument 2 from 'intptr_t {aka long int}' to 'AddressLiteral' -----Original Message----- From: Vladimir Kozlov [mailto:vladimir.kozlov at oracle.com] Sent: Monday, June 25, 2012 7:47 PM To: Venkatachalam, Vasanth Cc: hotspot-dev at openjdk.java.net Subject: Re: question about stubRoutines Look how StubRoutines::x86::float_sign_mask() is done. Then you can access it as external address: ExternalAddress foostart_adr(StubRoutines::x86::foostart()); __ lea(r9, foostart_Adr); Vladimir Venkatachalam, Vasanth wrote: > Hi, > > > > I'm trying to write a new stub routine in Hotspot's > stubGenerator_x86_64.cpp. The original code for the routine is in a MASM > file. I'm trying to translate this code into calls to Hotspot's > assembler so that the code can be implemented into a stub routine. > > > > The original MASM file has a large data segment (aligned to 16 bytes) > which looks like: > > > > ALIGN 16 > > __foostart: > > DQ 0000000000000000h > > DQ 3f6ff00aa0000000h > > DQ 3f7fe02a60000000h > > DQ 3f87dc4750000000h > > DQ 3f8fc0a8b0000000h > > DQ 3f93cea440000000h > > DQ 3f97b91b00000000h > > more entries...> > > > > This data segment is used in one of the instructions: > > lea r9, QWORD PTR __foostart > > > > Can anyone explain how to handle this data segment when writing a new > StubRoutine in Hotspot? > > > > Vasanth > > > > -- > > Vasanth Venkatachalam > > AMD Runtimes > > (512)602-6177 > > > From vladimir.kozlov at oracle.com Thu Jul 5 16:25:16 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 05 Jul 2012 16:25:16 -0700 Subject: question about stubRoutines In-Reply-To: <5DD1503F815BD14889DC81D28643E3A709C33D81@sausexdag04.amd.com> References: <5DD1503F815BD14889DC81D28643E3A709C30FA4@sausexdag04.amd.com> <4FE90669.8090106@oracle.com> <5DD1503F815BD14889DC81D28643E3A709C33D81@sausexdag04.amd.com> Message-ID: <4FF6225C.1050203@oracle.com> Look on MacroAssembler::testl() comment: // Import other testl() methods from the parent class or else // they will be hidden by the following overriding declaration. using Assembler::testl; void testl(Register dst, AddressLiteral src); Also build from scratch: generated precompiled header file may be not updated correctly. Vladimir Venkatachalam, Vasanth wrote: > How do you handle the case where instructions in assembler_x86.cpp don't have overloaded versions that take an AddressLiteral as a source argument? Below is how I'm handling this case. Is this correct? > > Take for example, the andl instruction. I defined an overloaded version taking an AddressLiteral in MacroAssembler: > > void MacroAssembler::andl(Register dst, AddressLiteral src) { > if(reachable(src)) { > Assembler::andl(dst, as_Address(src)); > } > else { > lea(rscratch1, src); > Assembler::andl(dst, Address(rscratch1, 0)); > } > > When I want to use the instruction (in StubGenerator_x86_64.cpp), I do it as follows: > > ExternalAddress foo_address(StubRoutines::x86::mask_mant_all8()); > > __ andl(rax, foo_address); > > When I do this I get the build errors below: > > /home/tester/hotspot/hotspot-bd-dev/src/cpu/x86/vm/x86_64.ad: In member function 'virtual void loadUB2L_immI8Node::emit(CodeBuffer&, PhaseRegAlloc*) const': > /home/tester/hotspot/hotspot-bd-dev/src/cpu/x86/vm/x86_64.ad:4850:44: error: no matching function for call to 'MacroAssembler::andl(RegisterImpl*&, intptr_t)' > /home/tester/hotspot/hotspot-bd-dev/src/cpu/x86/vm/x86_64.ad:4850:44: note: candidate is: > In file included from /home/tester/hotspot/hotspot-bd-dev/src/share/vm/asm/assembler.hpp:448:0, > from /home/tester/hotspot/hotspot-bd-dev/src/share/vm/precompiled/precompiled.hpp:29: > /home/tester/hotspot/hotspot-bd-dev/src/cpu/x86/vm/assembler_x86.hpp:2256:8: note: void MacroAssembler::andl(Register, AddressLiteral) > /home/tester/hotspot/hotspot-bd-dev/src/cpu/x86/vm/assembler_x86.hpp:2256:8: note: no known conversion for argument 2 from 'intptr_t {aka long int}' to 'AddressLiteral' > > -----Original Message----- > From: Vladimir Kozlov [mailto:vladimir.kozlov at oracle.com] > Sent: Monday, June 25, 2012 7:47 PM > To: Venkatachalam, Vasanth > Cc: hotspot-dev at openjdk.java.net > Subject: Re: question about stubRoutines > > Look how StubRoutines::x86::float_sign_mask() is done. Then you can access it as > external address: > > ExternalAddress foostart_adr(StubRoutines::x86::foostart()); > __ lea(r9, foostart_Adr); > > Vladimir > > Venkatachalam, Vasanth wrote: >> Hi, >> >> >> >> I'm trying to write a new stub routine in Hotspot's >> stubGenerator_x86_64.cpp. The original code for the routine is in a MASM >> file. I'm trying to translate this code into calls to Hotspot's >> assembler so that the code can be implemented into a stub routine. >> >> >> >> The original MASM file has a large data segment (aligned to 16 bytes) >> which looks like: >> >> >> >> ALIGN 16 >> >> __foostart: >> >> DQ 0000000000000000h >> >> DQ 3f6ff00aa0000000h >> >> DQ 3f7fe02a60000000h >> >> DQ 3f87dc4750000000h >> >> DQ 3f8fc0a8b0000000h >> >> DQ 3f93cea440000000h >> >> DQ 3f97b91b00000000h >> >> > more entries...> >> >> >> >> This data segment is used in one of the instructions: >> >> lea r9, QWORD PTR __foostart >> >> >> >> Can anyone explain how to handle this data segment when writing a new >> StubRoutine in Hotspot? >> >> >> >> Vasanth >> >> >> >> -- >> >> Vasanth Venkatachalam >> >> AMD Runtimes >> >> (512)602-6177 >> >> >> > > From john.coomes at oracle.com Fri Jul 6 01:31:54 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 06 Jul 2012 08:31:54 +0000 Subject: hg: hsx/hotspot-main: Added tag jdk8-b46 for changeset 27fa766a2298 Message-ID: <20120706083154.B837C47D6D@hg.openjdk.java.net> Changeset: f6a685069274 Author: katleman Date: 2012-07-05 18:43 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/rev/f6a685069274 Added tag jdk8-b46 for changeset 27fa766a2298 ! .hgtags From john.coomes at oracle.com Fri Jul 6 01:32:00 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 06 Jul 2012 08:32:00 +0000 Subject: hg: hsx/hotspot-main/corba: Added tag jdk8-b46 for changeset 30141e598d72 Message-ID: <20120706083203.BB8CB47D70@hg.openjdk.java.net> Changeset: cb31b67326bc Author: katleman Date: 2012-07-05 18:44 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/corba/rev/cb31b67326bc Added tag jdk8-b46 for changeset 30141e598d72 ! .hgtags From john.coomes at oracle.com Fri Jul 6 01:32:10 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 06 Jul 2012 08:32:10 +0000 Subject: hg: hsx/hotspot-main/jaxp: Added tag jdk8-b46 for changeset 300f45e99064 Message-ID: <20120706083219.6C68B47D75@hg.openjdk.java.net> Changeset: bf27b857c6ee Author: katleman Date: 2012-07-05 18:44 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jaxp/rev/bf27b857c6ee Added tag jdk8-b46 for changeset 300f45e99064 ! .hgtags From john.coomes at oracle.com Fri Jul 6 01:32:28 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 06 Jul 2012 08:32:28 +0000 Subject: hg: hsx/hotspot-main/jaxws: Added tag jdk8-b46 for changeset ae368a83c240 Message-ID: <20120706083232.CAD5F47D79@hg.openjdk.java.net> Changeset: fe6a060afc40 Author: katleman Date: 2012-07-05 18:44 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jaxws/rev/fe6a060afc40 Added tag jdk8-b46 for changeset ae368a83c240 ! .hgtags From john.coomes at oracle.com Fri Jul 6 01:32:42 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 06 Jul 2012 08:32:42 +0000 Subject: hg: hsx/hotspot-main/jdk: Added tag jdk8-b46 for changeset 8d2ed9d58453 Message-ID: <20120706083332.9083147D7C@hg.openjdk.java.net> Changeset: 9d1738ef61d6 Author: katleman Date: 2012-07-05 18:44 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/9d1738ef61d6 Added tag jdk8-b46 for changeset 8d2ed9d58453 ! .hgtags From john.coomes at oracle.com Fri Jul 6 01:35:09 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 06 Jul 2012 08:35:09 +0000 Subject: hg: hsx/hotspot-main/langtools: Added tag jdk8-b46 for changeset 4ca599497172 Message-ID: <20120706083517.3541847D7F@hg.openjdk.java.net> Changeset: c7e62fc9df92 Author: katleman Date: 2012-07-05 18:44 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/langtools/rev/c7e62fc9df92 Added tag jdk8-b46 for changeset 4ca599497172 ! .hgtags From jon.masamitsu at oracle.com Mon Jul 9 13:19:08 2012 From: jon.masamitsu at oracle.com (jon.masamitsu at oracle.com) Date: Mon, 09 Jul 2012 20:19:08 +0000 Subject: hg: hsx/hotspot-main/hotspot: 7167142: Consider a warning when finding a .hotspotrc or .hotspot_compiler file that isn't used Message-ID: <20120709201910.719E547EB2@hg.openjdk.java.net> Changeset: 3759236eea14 Author: kamg Date: 2012-07-02 10:54 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/3759236eea14 7167142: Consider a warning when finding a .hotspotrc or .hotspot_compiler file that isn't used Summary: Send warnings to output stream Reviewed-by: dholmes, fparain ! src/share/vm/compiler/compilerOracle.cpp ! src/share/vm/runtime/arguments.cpp From keith.mcguigan at oracle.com Mon Jul 9 17:09:48 2012 From: keith.mcguigan at oracle.com (keith.mcguigan at oracle.com) Date: Tue, 10 Jul 2012 00:09:48 +0000 Subject: hg: hsx/hsx23.2/hotspot: 7167142: Consider a warning when finding a .hotspotrc or .hotspot_compiler file that isn't used Message-ID: <20120710000957.2BD8147EBE@hg.openjdk.java.net> Changeset: 3f142ec74a26 Author: kamg Date: 2012-07-09 18:03 -0400 URL: http://hg.openjdk.java.net/hsx/hsx23.2/hotspot/rev/3f142ec74a26 7167142: Consider a warning when finding a .hotspotrc or .hotspot_compiler file that isn't used Summary: Send warnings to output stream Reviewed-by: dholmes, fparain ! src/share/vm/compiler/compilerOracle.cpp ! src/share/vm/runtime/arguments.cpp From keith.mcguigan at oracle.com Wed Jul 11 09:57:27 2012 From: keith.mcguigan at oracle.com (keith.mcguigan at oracle.com) Date: Wed, 11 Jul 2012 16:57:27 +0000 Subject: hg: hsx/hsx23.2/hotspot: 7181200: JVM new hashing code breaks SA in product mode Message-ID: <20120711165731.BDBB347F80@hg.openjdk.java.net> Changeset: 571bc10e2a37 Author: kamg Date: 2012-07-11 09:17 -0400 URL: http://hg.openjdk.java.net/hsx/hsx23.2/hotspot/rev/571bc10e2a37 7181200: JVM new hashing code breaks SA in product mode Summary: Made new_hash() overloaded rather than a virtual function so SA code doesn't need to be changed. Reviewed-by: kvn, acorn, dholmes, fparain Contributed-by: coleen.phillimore at oracle.com ! src/share/vm/classfile/symbolTable.cpp ! src/share/vm/classfile/symbolTable.hpp ! src/share/vm/utilities/hashtable.cpp ! src/share/vm/utilities/hashtable.hpp From coleen.phillimore at oracle.com Thu Jul 12 13:50:05 2012 From: coleen.phillimore at oracle.com (coleen.phillimore at oracle.com) Date: Thu, 12 Jul 2012 20:50:05 +0000 Subject: hg: hsx/hotspot-main/hotspot: 8 new changesets Message-ID: <20120712205023.D70BF47FD6@hg.openjdk.java.net> Changeset: d2a62e0f25eb Author: zgu Date: 2012-06-28 17:03 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1) 7151532: DCmd for hotspot native memory tracking Summary: Implementation of native memory tracking phase 1, which tracks VM native memory usage, and related DCmd Reviewed-by: acorn, coleenp, fparain ! agent/src/share/classes/sun/jvm/hotspot/utilities/BasicHashtable.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/BasicHashtableEntry.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/Hashtable.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/HashtableBucket.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/HashtableEntry.java ! make/bsd/makefiles/jvmg.make ! make/linux/makefiles/jvmg.make ! make/solaris/makefiles/jvmg.make ! make/windows/makefiles/debug.make ! src/os/bsd/vm/os_bsd.cpp ! src/os/bsd/vm/os_bsd.hpp ! src/os/bsd/vm/os_bsd.inline.hpp ! src/os/bsd/vm/perfMemory_bsd.cpp ! src/os/linux/vm/os_linux.cpp ! src/os/linux/vm/os_linux.hpp ! src/os/linux/vm/os_linux.inline.hpp ! src/os/linux/vm/perfMemory_linux.cpp ! src/os/posix/vm/os_posix.cpp ! src/os/solaris/dtrace/hs_private.d ! src/os/solaris/vm/os_solaris.cpp ! src/os/solaris/vm/os_solaris.hpp ! src/os/solaris/vm/os_solaris.inline.hpp ! src/os/solaris/vm/perfMemory_solaris.cpp ! src/os/windows/vm/os_windows.cpp ! src/os/windows/vm/os_windows.hpp ! src/os/windows/vm/perfMemory_windows.cpp ! src/share/vm/asm/codeBuffer.cpp ! src/share/vm/c1/c1_CFGPrinter.cpp ! src/share/vm/c1/c1_Compiler.cpp ! src/share/vm/c1/c1_LinearScan.cpp ! src/share/vm/ci/ciObjectFactory.cpp ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/classLoader.cpp ! src/share/vm/classfile/classLoader.hpp ! src/share/vm/classfile/dictionary.cpp ! src/share/vm/classfile/dictionary.hpp ! src/share/vm/classfile/javaAssertions.cpp ! src/share/vm/classfile/javaAssertions.hpp ! src/share/vm/classfile/loaderConstraints.cpp ! src/share/vm/classfile/loaderConstraints.hpp ! src/share/vm/classfile/placeholders.cpp ! src/share/vm/classfile/placeholders.hpp ! src/share/vm/classfile/resolutionErrors.cpp ! src/share/vm/classfile/resolutionErrors.hpp ! src/share/vm/classfile/symbolTable.cpp ! src/share/vm/classfile/symbolTable.hpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/classfile/systemDictionary.hpp ! src/share/vm/code/codeBlob.cpp ! src/share/vm/code/codeCache.cpp ! src/share/vm/code/codeCache.hpp ! src/share/vm/code/nmethod.hpp ! src/share/vm/code/stubs.hpp ! src/share/vm/compiler/abstractCompiler.hpp ! src/share/vm/compiler/compileBroker.cpp ! src/share/vm/compiler/compileBroker.hpp ! src/share/vm/compiler/compileLog.cpp ! src/share/vm/compiler/compilerOracle.cpp ! src/share/vm/compiler/oopMap.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp ! src/share/vm/gc_implementation/g1/collectionSetChooser.hpp ! src/share/vm/gc_implementation/g1/concurrentG1Refine.cpp ! src/share/vm/gc_implementation/g1/concurrentG1Refine.hpp ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/concurrentMark.hpp ! src/share/vm/gc_implementation/g1/dirtyCardQueue.hpp ! src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp ! src/share/vm/gc_implementation/g1/g1BlockOffsetTable.hpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp ! src/share/vm/gc_implementation/g1/g1MMUTracker.hpp ! src/share/vm/gc_implementation/g1/g1MonitoringSupport.hpp ! src/share/vm/gc_implementation/g1/g1RemSet.cpp ! src/share/vm/gc_implementation/g1/g1RemSet.hpp ! src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp ! src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp ! src/share/vm/gc_implementation/g1/heapRegionSeq.cpp ! src/share/vm/gc_implementation/g1/heapRegionSeq.hpp ! src/share/vm/gc_implementation/g1/ptrQueue.cpp ! src/share/vm/gc_implementation/g1/satbQueue.cpp ! src/share/vm/gc_implementation/g1/sparsePRT.cpp ! src/share/vm/gc_implementation/g1/sparsePRT.hpp ! src/share/vm/gc_implementation/g1/survRateGroup.cpp ! src/share/vm/gc_implementation/g1/survRateGroup.hpp ! src/share/vm/gc_implementation/parNew/parCardTableModRefBS.cpp ! src/share/vm/gc_implementation/parNew/parGCAllocBuffer.hpp ! src/share/vm/gc_implementation/parNew/parNewGeneration.cpp ! src/share/vm/gc_implementation/parNew/parNewGeneration.hpp ! src/share/vm/gc_implementation/parNew/parOopClosures.hpp ! src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.hpp ! src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.cpp ! src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.hpp ! src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.cpp ! src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.hpp ! src/share/vm/gc_implementation/parallelScavenge/objectStartArray.cpp ! src/share/vm/gc_implementation/parallelScavenge/objectStartArray.hpp ! src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp ! src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.hpp ! src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp ! src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp ! src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp ! src/share/vm/gc_implementation/parallelScavenge/psGenerationCounters.cpp ! src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp ! src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp ! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ! src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.hpp ! src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp ! src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.hpp ! src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp ! src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp ! src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.hpp ! src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp ! src/share/vm/gc_implementation/shared/adaptiveSizePolicy.hpp ! src/share/vm/gc_implementation/shared/cSpaceCounters.cpp ! src/share/vm/gc_implementation/shared/cSpaceCounters.hpp ! src/share/vm/gc_implementation/shared/collectorCounters.cpp ! src/share/vm/gc_implementation/shared/collectorCounters.hpp ! src/share/vm/gc_implementation/shared/gSpaceCounters.cpp ! src/share/vm/gc_implementation/shared/gSpaceCounters.hpp ! src/share/vm/gc_implementation/shared/gcPolicyCounters.hpp ! src/share/vm/gc_implementation/shared/gcStats.hpp ! src/share/vm/gc_implementation/shared/gcUtil.hpp ! src/share/vm/gc_implementation/shared/generationCounters.cpp ! src/share/vm/gc_implementation/shared/generationCounters.hpp ! src/share/vm/gc_implementation/shared/hSpaceCounters.cpp ! src/share/vm/gc_implementation/shared/hSpaceCounters.hpp ! src/share/vm/gc_implementation/shared/immutableSpace.hpp ! src/share/vm/gc_implementation/shared/markSweep.cpp ! src/share/vm/gc_implementation/shared/markSweep.hpp ! src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp ! src/share/vm/gc_implementation/shared/mutableNUMASpace.hpp ! src/share/vm/gc_implementation/shared/spaceCounters.cpp ! src/share/vm/gc_implementation/shared/spaceCounters.hpp ! src/share/vm/gc_implementation/shared/spaceDecorator.hpp ! src/share/vm/gc_interface/collectedHeap.hpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/interpreter/oopMapCache.cpp ! src/share/vm/interpreter/oopMapCache.hpp ! src/share/vm/libadt/set.cpp ! src/share/vm/libadt/vectset.cpp ! src/share/vm/memory/allocation.cpp ! src/share/vm/memory/allocation.hpp ! src/share/vm/memory/allocation.inline.hpp ! src/share/vm/memory/barrierSet.hpp ! src/share/vm/memory/blockOffsetTable.cpp ! src/share/vm/memory/blockOffsetTable.hpp ! src/share/vm/memory/cardTableModRefBS.cpp ! src/share/vm/memory/collectorPolicy.hpp ! src/share/vm/memory/defNewGeneration.hpp ! src/share/vm/memory/filemap.hpp ! src/share/vm/memory/freeBlockDictionary.hpp ! src/share/vm/memory/genMarkSweep.cpp ! src/share/vm/memory/genOopClosures.hpp ! src/share/vm/memory/genRemSet.hpp ! src/share/vm/memory/generation.hpp ! src/share/vm/memory/generationSpec.hpp ! src/share/vm/memory/heap.cpp ! src/share/vm/memory/heap.hpp ! src/share/vm/memory/heapInspection.cpp ! src/share/vm/memory/heapInspection.hpp ! src/share/vm/memory/memRegion.hpp ! src/share/vm/memory/permGen.hpp ! src/share/vm/memory/referencePolicy.hpp ! src/share/vm/memory/referenceProcessor.cpp ! src/share/vm/memory/referenceProcessor.hpp ! src/share/vm/memory/resourceArea.hpp ! src/share/vm/memory/restore.cpp ! src/share/vm/memory/space.hpp ! src/share/vm/memory/tenuredGeneration.cpp ! src/share/vm/memory/threadLocalAllocBuffer.hpp ! src/share/vm/memory/universe.cpp ! src/share/vm/memory/universe.hpp ! src/share/vm/oops/constantPoolOop.hpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/oops/methodOop.hpp ! src/share/vm/oops/symbol.cpp ! src/share/vm/opto/idealGraphPrinter.cpp ! src/share/vm/opto/macro.cpp ! src/share/vm/opto/runtime.hpp ! src/share/vm/opto/type.cpp ! src/share/vm/prims/jni.cpp ! src/share/vm/prims/jniCheck.cpp ! src/share/vm/prims/jvmtiClassFileReconstituter.hpp ! src/share/vm/prims/jvmtiCodeBlobEvents.cpp ! src/share/vm/prims/jvmtiEnv.cpp ! src/share/vm/prims/jvmtiEnvBase.cpp ! src/share/vm/prims/jvmtiEnvBase.hpp ! src/share/vm/prims/jvmtiEnvThreadState.cpp ! src/share/vm/prims/jvmtiEnvThreadState.hpp ! src/share/vm/prims/jvmtiExport.cpp ! src/share/vm/prims/jvmtiExport.hpp ! src/share/vm/prims/jvmtiExtensions.cpp ! src/share/vm/prims/jvmtiGetLoadedClasses.cpp ! src/share/vm/prims/jvmtiImpl.cpp ! src/share/vm/prims/jvmtiImpl.hpp ! src/share/vm/prims/jvmtiRawMonitor.cpp ! src/share/vm/prims/jvmtiRedefineClasses.cpp ! src/share/vm/prims/jvmtiTagMap.cpp ! src/share/vm/prims/jvmtiTagMap.hpp ! src/share/vm/prims/jvmtiThreadState.hpp ! src/share/vm/prims/jvmtiUtil.cpp ! src/share/vm/prims/unsafe.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/arguments.hpp ! src/share/vm/runtime/biasedLocking.cpp ! src/share/vm/runtime/compilationPolicy.hpp ! src/share/vm/runtime/deoptimization.cpp ! src/share/vm/runtime/deoptimization.hpp ! src/share/vm/runtime/dtraceJSDT.hpp ! src/share/vm/runtime/fprofiler.cpp ! src/share/vm/runtime/fprofiler.hpp ! src/share/vm/runtime/globals.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/handles.cpp ! src/share/vm/runtime/handles.hpp ! src/share/vm/runtime/handles.inline.hpp ! src/share/vm/runtime/java.cpp ! src/share/vm/runtime/jniHandles.hpp ! src/share/vm/runtime/monitorChunk.cpp ! src/share/vm/runtime/monitorChunk.hpp ! src/share/vm/runtime/mutex.hpp ! src/share/vm/runtime/os.cpp ! src/share/vm/runtime/os.hpp ! src/share/vm/runtime/osThread.hpp ! src/share/vm/runtime/park.cpp ! src/share/vm/runtime/perfData.cpp ! src/share/vm/runtime/perfData.hpp ! src/share/vm/runtime/perfMemory.cpp ! src/share/vm/runtime/reflectionUtils.cpp ! src/share/vm/runtime/safepoint.cpp ! src/share/vm/runtime/safepoint.hpp ! src/share/vm/runtime/sharedRuntime.cpp ! src/share/vm/runtime/sharedRuntime.hpp ! src/share/vm/runtime/stubCodeGenerator.hpp ! src/share/vm/runtime/sweeper.cpp ! src/share/vm/runtime/task.hpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp ! src/share/vm/runtime/unhandledOops.cpp ! src/share/vm/runtime/vframeArray.cpp ! src/share/vm/runtime/vframeArray.hpp ! src/share/vm/runtime/vframe_hp.cpp ! src/share/vm/runtime/vframe_hp.hpp ! src/share/vm/runtime/virtualspace.cpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/runtime/vmThread.hpp ! src/share/vm/runtime/vm_operations.hpp ! src/share/vm/services/attachListener.cpp ! src/share/vm/services/attachListener.hpp ! src/share/vm/services/diagnosticArgument.cpp ! src/share/vm/services/diagnosticArgument.hpp ! src/share/vm/services/diagnosticFramework.hpp ! src/share/vm/services/gcNotifier.cpp ! src/share/vm/services/gcNotifier.hpp ! src/share/vm/services/heapDumper.cpp ! src/share/vm/services/lowMemoryDetector.hpp ! src/share/vm/services/management.cpp + src/share/vm/services/memBaseline.cpp + src/share/vm/services/memBaseline.hpp + src/share/vm/services/memPtr.cpp + src/share/vm/services/memPtr.hpp + src/share/vm/services/memPtrArray.hpp + src/share/vm/services/memRecorder.cpp + src/share/vm/services/memRecorder.hpp + src/share/vm/services/memReporter.cpp + src/share/vm/services/memReporter.hpp + src/share/vm/services/memSnapshot.cpp + src/share/vm/services/memSnapshot.hpp + src/share/vm/services/memTrackWorker.cpp + src/share/vm/services/memTrackWorker.hpp + src/share/vm/services/memTracker.cpp + src/share/vm/services/memTracker.hpp ! src/share/vm/services/memoryManager.cpp ! src/share/vm/services/memoryManager.hpp ! src/share/vm/services/memoryPool.hpp ! src/share/vm/services/memoryService.cpp + src/share/vm/services/nmtDCmd.cpp + src/share/vm/services/nmtDCmd.hpp ! src/share/vm/services/threadService.cpp ! src/share/vm/services/threadService.hpp ! src/share/vm/utilities/array.cpp ! src/share/vm/utilities/array.hpp ! src/share/vm/utilities/bitMap.cpp ! src/share/vm/utilities/decoder.hpp ! src/share/vm/utilities/elfFile.cpp ! src/share/vm/utilities/elfFile.hpp ! src/share/vm/utilities/elfStringTable.cpp ! src/share/vm/utilities/elfStringTable.hpp ! src/share/vm/utilities/elfSymbolTable.cpp ! src/share/vm/utilities/elfSymbolTable.hpp ! src/share/vm/utilities/events.hpp ! src/share/vm/utilities/exceptions.hpp ! src/share/vm/utilities/growableArray.cpp ! src/share/vm/utilities/growableArray.hpp ! src/share/vm/utilities/hashtable.cpp ! src/share/vm/utilities/hashtable.hpp ! src/share/vm/utilities/hashtable.inline.hpp ! src/share/vm/utilities/histogram.cpp ! src/share/vm/utilities/histogram.hpp ! src/share/vm/utilities/intHisto.cpp ! src/share/vm/utilities/intHisto.hpp ! src/share/vm/utilities/numberSeq.cpp ! src/share/vm/utilities/numberSeq.hpp ! src/share/vm/utilities/ostream.cpp ! src/share/vm/utilities/stack.hpp ! src/share/vm/utilities/stack.inline.hpp ! src/share/vm/utilities/taskqueue.hpp ! src/share/vm/utilities/vmError.cpp ! src/share/vm/utilities/workgroup.cpp ! src/share/vm/utilities/workgroup.hpp ! src/share/vm/utilities/xmlstream.cpp Changeset: 24b9c7f4cae6 Author: coleenp Date: 2012-07-02 13:11 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/24b9c7f4cae6 Merge ! src/share/vm/compiler/compilerOracle.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp ! src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp ! src/share/vm/memory/universe.hpp ! src/share/vm/opto/type.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/java.cpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/utilities/vmError.cpp Changeset: 3f1ab0c19c30 Author: dholmes Date: 2012-07-03 01:41 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/3f1ab0c19c30 7179383: MaxDirectMemorySize argument parsing is broken for values >2G Summary: change hotspot flag to be unsigned Reviewed-by: dholmes, sla, fparain, brutisso Contributed-by: Chris Dennis ! src/share/vm/prims/jvm.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp Changeset: 65906dc96aa1 Author: mikael Date: 2012-07-03 17:35 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/65906dc96aa1 7129724: MAC: Core file location is wrong in crash report Summary: Updated core path location to reflect macosx default Reviewed-by: dholmes, kamg ! src/os/bsd/vm/os_bsd.cpp ! src/os/linux/vm/os_linux.cpp ! src/os/posix/vm/os_posix.cpp ! src/os/solaris/vm/os_solaris.cpp ! src/share/vm/runtime/os.hpp Changeset: ace99a6ffc83 Author: coleenp Date: 2012-07-04 15:55 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/ace99a6ffc83 7181200: JVM new hashing code breaks SA in product mode Summary: Made new_hash() overloaded rather than a virtual function so SA code doesn't need to be changed. Reviewed-by: kvn, acorn, dholmes, fparain ! src/share/vm/classfile/symbolTable.cpp ! src/share/vm/classfile/symbolTable.hpp ! src/share/vm/utilities/hashtable.cpp ! src/share/vm/utilities/hashtable.hpp Changeset: 5a1f452f8f90 Author: sla Date: 2012-06-28 11:37 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/5a1f452f8f90 7178703: Fix handling of quoted arguments and better error messages in dcmd Reviewed-by: coleenp, mgronlun, rbackman ! src/share/vm/prims/whitebox.cpp ! src/share/vm/services/diagnosticCommand.hpp ! src/share/vm/services/diagnosticFramework.cpp ! src/share/vm/services/diagnosticFramework.hpp ! test/serviceability/ParserTest.java Changeset: 04ade88d9712 Author: fparain Date: 2012-07-09 01:28 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K Reviewed-by: sspitsyn, dholmes, coleenp, kamg ! agent/src/share/classes/sun/jvm/hotspot/jdi/ReferenceTypeImpl.java ! agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/oops/instanceKlassKlass.cpp ! src/share/vm/prims/jvmtiClassFileReconstituter.cpp ! src/share/vm/prims/jvmtiEnv.cpp ! src/share/vm/prims/jvmtiRedefineClasses.cpp ! src/share/vm/runtime/vmStructs.cpp + test/runtime/6294277/SourceDebugExtension.java + test/runtime/6294277/Test6294277.sh Changeset: 90d5a592ea8f Author: coleenp Date: 2012-07-12 14:26 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/90d5a592ea8f Merge ! src/share/vm/compiler/compilerOracle.cpp ! src/share/vm/runtime/arguments.cpp From keith.mcguigan at oracle.com Thu Jul 12 17:49:46 2012 From: keith.mcguigan at oracle.com (keith.mcguigan at oracle.com) Date: Fri, 13 Jul 2012 00:49:46 +0000 Subject: hg: hsx/hsx23.2/hotspot: 2 new changesets Message-ID: <20120713004953.43F7A47FEA@hg.openjdk.java.net> Changeset: cfb2ea9dfefd Author: minqi Date: 2012-06-22 15:35 -0700 URL: http://hg.openjdk.java.net/hsx/hsx23.2/hotspot/rev/cfb2ea9dfefd 7175133: jinfo failed to get system properties after 6924259 Summary: String offset and count fields as fix of 6924259 were removed, and become optional. SA still use offset and count fields to read String contents and failed. Fix if they exist, use them other then use value field only to read, this keeps consistent with the changes in 6924259. Reviewed-by: dholmes, mikael Contributed-by: yumin.qi at oracle.com ! agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java Changeset: a4b60109cffc Author: minqi Date: 2012-06-22 15:39 -0700 URL: http://hg.openjdk.java.net/hsx/hsx23.2/hotspot/rev/a4b60109cffc 7177128: SA cannot get correct system properties after 7126277 Summary: Bug fix of 7126277 changed hashing algorithm and also changed key as final field, this led SA unable to set correct value for key. Solution by reading key/value and insert them into the new table. Reviewed-by: dholmes, mikael Contributed-by: yumin.qi at oracle.com ! agent/src/share/classes/sun/jvm/hotspot/utilities/ObjectReader.java From vladimir.kozlov at oracle.com Thu Jul 12 19:46:50 2012 From: vladimir.kozlov at oracle.com (vladimir.kozlov at oracle.com) Date: Fri, 13 Jul 2012 02:46:50 +0000 Subject: hg: hsx/hotspot-main/hotspot: 4 new changesets Message-ID: <20120713024700.F198047FEF@hg.openjdk.java.net> Changeset: d50605d9417e Author: roland Date: 2012-07-02 09:58 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/d50605d9417e 7177917: Failed test java/lang/Math/PowTests.java Summary: When c2 intrinsifies pow/exp, it should never inline the java implementations. Reviewed-by: kvn ! src/share/vm/opto/library_call.cpp + test/compiler/7177917/Test7177917.java Changeset: 70862d781d01 Author: kvn Date: 2012-07-02 12:59 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/70862d781d01 7180769: assert(tboth->klass_is_exact()) failed: klass should be exact Summary: Use class exactness as part of the condition for class compare optimization instead of assert. Reviewed-by: twisti, roland ! src/share/vm/opto/parse2.cpp Changeset: ae9241bbce4a Author: kvn Date: 2012-07-11 14:50 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/ae9241bbce4a 7181658: CTW: assert(t->meet(t0) == t) failed: Not monotonic Summary: Use uncast node equivalence checks in CmpUNode::sub. Reviewed-by: kvn, twisti Contributed-by: vladimir.x.ivanov at oracle.com ! src/share/vm/opto/subnode.cpp ! src/share/vm/opto/subnode.hpp Changeset: cc787232c4c5 Author: kvn Date: 2012-07-12 14:19 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/cc787232c4c5 Merge From john.coomes at oracle.com Thu Jul 12 20:31:42 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 13 Jul 2012 03:31:42 +0000 Subject: hg: hsx/hotspot-main: 4 new changesets Message-ID: <20120713033143.4805C47FF0@hg.openjdk.java.net> Changeset: c8d320b48626 Author: erikj Date: 2012-07-03 16:11 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/rev/c8d320b48626 7181504: Update of latest build-infra Makefiles Reviewed-by: ohair ! common/autoconf/autogen.sh ! common/autoconf/build-aux/config.guess ! common/autoconf/builddeps.conf.example ! common/autoconf/builddeps.m4 ! common/autoconf/configure ! common/autoconf/configure.ac - common/autoconf/cores.m4 ! common/autoconf/help.m4 ! common/autoconf/platform.m4 ! common/autoconf/spec.gmk.in ! common/bin/compareimage.sh ! common/bin/diffexec.sh ! common/bin/diffjarzip.sh ! common/bin/difflib.sh ! common/makefiles/IdlCompilation.gmk ! common/makefiles/JavaCompilation.gmk ! common/makefiles/MakeBase.gmk ! common/makefiles/Makefile ! common/makefiles/NativeCompilation.gmk - common/makefiles/RMICompile.gmk Changeset: 3156dff953b1 Author: erikj Date: 2012-07-05 18:27 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/rev/3156dff953b1 7182051: Update of latest build-infra Makefiles (missing files) Reviewed-by: ohair + common/autoconf/basics.m4 + common/autoconf/boot-jdk.m4 + common/autoconf/build-aux/autoconf-config.guess + common/autoconf/build-performance.m4 + common/autoconf/generated-configure.sh + common/autoconf/jdk-options.m4 + common/autoconf/libraries.m4 + common/autoconf/source-dirs.m4 + common/autoconf/spec.sh.in + common/autoconf/toolchain.m4 + common/bin/compare-objects.sh ! common/makefiles/IdlCompilation.gmk + common/makefiles/MakeHelpers.gmk ! common/makefiles/NativeCompilation.gmk + common/makefiles/RMICompilation.gmk Changeset: 1dcb4b7b9373 Author: katleman Date: 2012-07-11 16:00 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/rev/1dcb4b7b9373 Merge - common/autoconf/cores.m4 - common/makefiles/RMICompile.gmk Changeset: aaae5471808d Author: katleman Date: 2012-07-12 16:47 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/rev/aaae5471808d Added tag jdk8-b47 for changeset 1dcb4b7b9373 ! .hgtags From john.coomes at oracle.com Thu Jul 12 20:31:51 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 13 Jul 2012 03:31:51 +0000 Subject: hg: hsx/hotspot-main/corba: 4 new changesets Message-ID: <20120713033156.0D92447FF1@hg.openjdk.java.net> Changeset: 47adb42076f1 Author: coffeys Date: 2012-06-27 21:09 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-main/corba/rev/47adb42076f1 7162902: Umbrella port of a number of corba bug fixes from JDK 6 to jdk7u/8 Reviewed-by: lancea ! src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java ! src/share/classes/com/sun/corba/se/impl/interceptors/PIHandlerImpl.java ! src/share/classes/com/sun/corba/se/impl/interceptors/PINoOpHandlerImpl.java ! src/share/classes/com/sun/corba/se/impl/monitoring/MonitoringManagerFactoryImpl.java ! src/share/classes/com/sun/corba/se/impl/monitoring/MonitoringManagerImpl.java ! src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java ! src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java ! src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolManagerImpl.java ! src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/WorkQueueImpl.java ! src/share/classes/com/sun/corba/se/impl/protocol/CorbaMessageMediatorImpl.java ! src/share/classes/com/sun/corba/se/impl/transport/SelectorImpl.java ! src/share/classes/com/sun/corba/se/spi/logging/data/ORBUtil.mc ! src/share/classes/com/sun/corba/se/spi/monitoring/MonitoringManager.java ! src/share/classes/com/sun/corba/se/spi/monitoring/MonitoringManagerFactory.java ! src/share/classes/com/sun/corba/se/spi/orb/ORB.java ! src/share/classes/com/sun/corba/se/spi/orbutil/threadpool/ThreadPool.java ! src/share/classes/com/sun/corba/se/spi/orbutil/threadpool/ThreadPoolManager.java ! src/share/classes/com/sun/corba/se/spi/protocol/PIHandler.java ! src/share/classes/com/sun/corba/se/spi/protocol/RequestDispatcherRegistry.java Changeset: 666efea2df67 Author: lana Date: 2012-07-03 18:23 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/corba/rev/666efea2df67 Merge Changeset: 21e46ea21c6a Author: lana Date: 2012-07-10 11:40 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/corba/rev/21e46ea21c6a Merge Changeset: 7e2b179a5b4d Author: katleman Date: 2012-07-12 16:47 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/corba/rev/7e2b179a5b4d Added tag jdk8-b47 for changeset 21e46ea21c6a ! .hgtags From john.coomes at oracle.com Thu Jul 12 20:32:04 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 13 Jul 2012 03:32:04 +0000 Subject: hg: hsx/hotspot-main/jaxp: 5 new changesets Message-ID: <20120713033221.7BEE447FF2@hg.openjdk.java.net> Changeset: 7920ead2cc75 Author: joehw Date: 2012-06-26 15:28 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jaxp/rev/7920ead2cc75 7166896: DocumentBuilder.parse(String uri) is not IPv6 enabled. It throws MalformedURLException Summary: skip the added international character handling for general paths Reviewed-by: lancea ! src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java Changeset: 219e720a1baa Author: lana Date: 2012-06-26 22:47 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jaxp/rev/219e720a1baa Merge Changeset: 9cb8be5e6119 Author: lana Date: 2012-07-03 18:24 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jaxp/rev/9cb8be5e6119 Merge Changeset: 404521944ac9 Author: lana Date: 2012-07-10 11:40 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jaxp/rev/404521944ac9 Merge Changeset: 1c88da9a1365 Author: katleman Date: 2012-07-12 16:48 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jaxp/rev/1c88da9a1365 Added tag jdk8-b47 for changeset 404521944ac9 ! .hgtags From john.coomes at oracle.com Thu Jul 12 20:32:28 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 13 Jul 2012 03:32:28 +0000 Subject: hg: hsx/hotspot-main/jaxws: Added tag jdk8-b47 for changeset fe6a060afc40 Message-ID: <20120713033233.B6F0C47FF3@hg.openjdk.java.net> Changeset: efb564de8a8e Author: katleman Date: 2012-07-12 16:48 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jaxws/rev/efb564de8a8e Added tag jdk8-b47 for changeset fe6a060afc40 ! .hgtags From john.coomes at oracle.com Thu Jul 12 20:33:29 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 13 Jul 2012 03:33:29 +0000 Subject: hg: hsx/hotspot-main/jdk: 32 new changesets Message-ID: <20120713033928.D0E2347FF4@hg.openjdk.java.net> Changeset: 9881db0a65bf Author: prr Date: 2012-06-26 09:38 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/9881db0a65bf 7145771: [macosx] CreateFont/Register.java test fails because of cached results of getAllFonts() Reviewed-by: igor, flar ! src/macosx/classes/sun/awt/CGraphicsEnvironment.java Changeset: c689cc1ef29a Author: prr Date: 2012-06-26 09:53 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/c689cc1ef29a 7176447: Lunix/Solaris fontpath.c : double free(family) Reviewed-by: igor, flar ! src/solaris/native/sun/awt/fontpath.c Changeset: ad126e65ccc5 Author: prr Date: 2012-06-26 09:54 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/ad126e65ccc5 7164282: check for NULL return from malloc is testing wrong variable name. Reviewed-by: igor, flar ! src/windows/native/sun/font/lcdglyph.c Changeset: c960cb8d0f8b Author: lana Date: 2012-06-27 18:39 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/c960cb8d0f8b Merge Changeset: 8e6b8a676596 Author: lana Date: 2012-07-03 20:54 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/8e6b8a676596 Merge Changeset: 7d1eae258183 Author: serb Date: 2012-06-26 13:46 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/7d1eae258183 7142091: [macosx] RFE: Refactoring of peer initialization/disposing Reviewed-by: anthony, art ! src/macosx/classes/sun/lwawt/LWButtonPeer.java ! src/macosx/classes/sun/lwawt/LWCheckboxPeer.java ! src/macosx/classes/sun/lwawt/LWChoicePeer.java ! src/macosx/classes/sun/lwawt/LWComponentPeer.java ! src/macosx/classes/sun/lwawt/LWLabelPeer.java ! src/macosx/classes/sun/lwawt/LWListPeer.java ! src/macosx/classes/sun/lwawt/LWScrollBarPeer.java ! src/macosx/classes/sun/lwawt/LWScrollPanePeer.java ! src/macosx/classes/sun/lwawt/LWTextAreaPeer.java ! src/macosx/classes/sun/lwawt/LWTextComponentPeer.java ! src/macosx/classes/sun/lwawt/LWTextFieldPeer.java ! src/macosx/classes/sun/lwawt/LWWindowPeer.java ! src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java ! src/macosx/native/sun/awt/AWTWindow.m Changeset: c66b34ec39c3 Author: bagiras Date: 2012-06-26 16:46 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/c66b34ec39c3 7024749: JDK7 b131---a crash in: Java_sun_awt_windows_ThemeReader_isGetThemeTransitionDurationDefined+0x75 Reviewed-by: art, ant ! src/windows/native/sun/windows/awt_Component.cpp ! src/windows/native/sun/windows/awt_Component.h ! src/windows/native/sun/windows/awt_FileDialog.cpp ! src/windows/native/sun/windows/awt_Frame.cpp ! src/windows/native/sun/windows/awt_TextComponent.cpp + test/java/awt/Frame/7024749/bug7024749.java Changeset: 6d37b95f0555 Author: anthony Date: 2012-06-26 17:29 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/6d37b95f0555 7124326: [macosx] An issue similar to autoshutdown one in two AppContexts situation. Summary: Don't add SystemTrayPeer to the peers map Reviewed-by: art, leonidr ! src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java Changeset: 7cadd5bb6983 Author: lana Date: 2012-06-27 12:54 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/7cadd5bb6983 Merge Changeset: 85f72a4f5f68 Author: rupashka Date: 2012-06-28 14:05 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/85f72a4f5f68 7169111: Unreadable menu bar with Ambiance theme in GTK L&F Reviewed-by: kizune ! src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java ! src/share/classes/com/sun/java/swing/plaf/gtk/GTKStyleFactory.java ! src/share/classes/javax/swing/plaf/synth/SynthMenuUI.java Changeset: 8a284872ee2d Author: lana Date: 2012-07-03 20:56 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/8a284872ee2d Merge Changeset: ff0da4ea08a2 Author: robm Date: 2012-06-26 13:27 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/ff0da4ea08a2 4244896: (process) Provide System.getPid(), System.killProcess(String pid) Reviewed-by: alanb ! src/share/classes/java/lang/Process.java ! src/solaris/classes/java/lang/UNIXProcess.java.bsd ! src/solaris/classes/java/lang/UNIXProcess.java.linux ! src/solaris/classes/java/lang/UNIXProcess.java.solaris ! src/solaris/native/java/lang/UNIXProcess_md.c ! src/windows/classes/java/lang/ProcessImpl.java ! src/windows/native/java/lang/ProcessImpl_md.c ! test/java/lang/ProcessBuilder/Basic.java + test/java/lang/ProcessBuilder/DestroyTest.java Changeset: 94b525ce3653 Author: dholmes Date: 2012-06-27 01:36 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/94b525ce3653 7161229: PriorityBlockingQueue keeps hard reference to last removed element Reviewed-by: dholmes, forax, alanb Contributed-by: Doug Lea
! src/share/classes/java/util/concurrent/PriorityBlockingQueue.java ! test/java/util/concurrent/BlockingQueue/LastElement.java Changeset: 7e9a7400329b Author: lana Date: 2012-06-26 22:59 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/7e9a7400329b Merge Changeset: 2bba577b8ab8 Author: lana Date: 2012-06-27 00:09 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/2bba577b8ab8 Merge Changeset: 612e56cf284c Author: coffeys Date: 2012-06-27 21:10 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/612e56cf284c 6893617: JDK 6 CNCtx always uses the default ORB Reviewed-by: lancea ! src/share/classes/com/sun/jndi/cosnaming/CNCtx.java Changeset: 819258b5002e Author: sherman Date: 2012-06-28 22:44 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/819258b5002e 7175845: jar uf changes file permissions unexpectedly 7177216: native2ascii changes file permissions of input file Summary: undo the File.createTempFile change in jar and native2ascii Reviewed-by: asaha ! src/share/classes/sun/tools/jar/Main.java ! src/share/classes/sun/tools/native2ascii/Main.java + test/sun/tools/native2ascii/Permission.java + test/tools/jar/UpdateJar.java Changeset: 9e15068b6946 Author: jgish Date: 2012-06-29 15:36 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/9e15068b6946 7100996: (spec str) IndexOutOfBoundsException when using a StringBuffer from multiple threads Summary: add usage note to clarify thread safety Reviewed-by: briangoetz, mduigou Contributed-by: jim.gish at oracle.com ! src/share/classes/java/lang/StringBuffer.java Changeset: 9df29b658145 Author: smarks Date: 2012-06-29 16:16 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/9df29b658145 7170938: (str) incorrect wording in doc for String.subSequence Reviewed-by: forax, mduigou Contributed-by: Joe Bowbeer ! src/share/classes/java/lang/String.java Changeset: ecc5dd3790a1 Author: robm Date: 2012-07-02 19:32 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/ecc5dd3790a1 7174887: Deadlock in jndi ldap connection cleanup Reviewed-by: xuelei ! src/share/classes/com/sun/jndi/ldap/Connection.java ! src/share/classes/com/sun/jndi/ldap/LdapClient.java Changeset: b2fc66012451 Author: smarks Date: 2012-07-02 14:11 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/b2fc66012451 7176907: additional warnings cleanup in java.util, java.util.regexp, java.util.zip Reviewed-by: forax, khazra, smarks Contributed-by: Mani Sarkar ! src/share/classes/java/util/InvalidPropertiesFormatException.java ! src/share/classes/java/util/regex/Pattern.java ! src/share/classes/java/util/zip/GZIPInputStream.java Changeset: d375ea39ce9c Author: mullan Date: 2012-07-03 14:56 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/d375ea39ce9c 7133344: Document the java.security.properties system property feature in the java.security file Reviewed-by: hawtin, mullan, weijun Contributed-by: jason.uh at oracle.com ! src/share/lib/security/java.security ! src/share/lib/security/java.security-macosx ! src/share/lib/security/java.security-solaris ! src/share/lib/security/java.security-windows Changeset: 8ccbd5aabeab Author: lana Date: 2012-07-03 18:24 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/8ccbd5aabeab Merge Changeset: 3ae91286f313 Author: xuelei Date: 2012-07-03 20:29 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/3ae91286f313 7180038: regression test failure, SSLEngineBadBufferArrayAccess.java Reviewed-by: weijun ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/SSLEngineBadBufferArrayAccess.java Changeset: d828938945af Author: lana Date: 2012-07-03 20:58 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/d828938945af Merge Changeset: 9957b4759354 Author: lana Date: 2012-07-10 11:41 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/9957b4759354 Merge Changeset: 6df318863178 Author: erikj Date: 2012-07-03 16:10 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/6df318863178 7181504: Update of latest build-infra Makefiles Reviewed-by: ohair ! makefiles/CompileDemos.gmk ! makefiles/CompileJavaClasses.gmk ! makefiles/CompileLaunchers.gmk ! makefiles/CompileNativeLibraries.gmk ! makefiles/CopyFiles.gmk ! makefiles/CopyIntoClasses.gmk ! makefiles/CopySamples.gmk ! makefiles/CreateJars.gmk ! makefiles/GendataBreakIterator.gmk ! makefiles/GendataFontConfig.gmk ! makefiles/GendataHtml32dtd.gmk ! makefiles/GenerateClasses.gmk ! makefiles/GenerateData.gmk ! makefiles/GenerateJavaSources.gmk ! makefiles/GensrcBuffer.gmk ! makefiles/GensrcIcons.gmk + makefiles/GensrcJObjC.gmk ! makefiles/GensrcMisc.gmk ! makefiles/GensrcProperties.gmk ! makefiles/GensrcX11Wrappers.gmk ! makefiles/Images.gmk + makefiles/Import.gmk - makefiles/LegacyMakefiles.gmk ! makefiles/Makefile - makefiles/OldImages.gmk ! makefiles/Tools.gmk - makefiles/com/sun/crypto/provider/Makefile - makefiles/common/Classes.gmk - makefiles/common/Cscope.gmk - makefiles/common/Defs-embedded.gmk - makefiles/common/Defs-linux.gmk - makefiles/common/Defs-macosx.gmk - makefiles/common/Defs-solaris.gmk - makefiles/common/Defs-windows.gmk - makefiles/common/Defs.gmk - makefiles/common/Demo.gmk - makefiles/common/Library.gmk - makefiles/common/Mapfile-vers.gmk - makefiles/common/Modules.gmk - makefiles/common/Program.gmk - makefiles/common/Release-embedded.gmk - makefiles/common/Release-macosx.gmk - makefiles/common/Release.gmk - makefiles/common/Rules.gmk - makefiles/common/Subdirs.gmk - makefiles/common/internal/Defs-corba.gmk - makefiles/common/internal/Defs-jaxp.gmk - makefiles/common/internal/Defs-jaxws.gmk - makefiles/common/internal/Defs-langtools.gmk - makefiles/common/internal/ImportComponents.gmk - makefiles/common/internal/NativeCompileRules.gmk - makefiles/common/internal/Resources.gmk - makefiles/common/shared/Compiler-gcc.gmk - makefiles/common/shared/Compiler-llvm.gmk - makefiles/common/shared/Compiler-msvc.gmk - makefiles/common/shared/Compiler-sun.gmk - makefiles/common/shared/Defs-control.gmk - makefiles/common/shared/Defs-java.gmk - makefiles/common/shared/Defs-javadoc.gmk - makefiles/common/shared/Defs-linux.gmk - makefiles/common/shared/Defs-macosx.gmk - makefiles/common/shared/Defs-solaris.gmk - makefiles/common/shared/Defs-versions.gmk - makefiles/common/shared/Defs-windows.gmk - makefiles/common/shared/Defs.gmk - makefiles/common/shared/Platform.gmk - makefiles/common/shared/PrivateDefs.gmk-example - makefiles/common/shared/Sanity-Settings.gmk - makefiles/java/Makefile - makefiles/java/invoke/Makefile - makefiles/java/redist/Makefile - makefiles/java/redist/sajdi/Makefile - makefiles/javax/crypto/Defs-jce.gmk - makefiles/javax/crypto/Makefile - makefiles/javax/crypto/policy/limited/LIMITED - makefiles/javax/crypto/policy/limited/default_local.policy - makefiles/javax/crypto/policy/limited/exempt_local.policy - makefiles/javax/crypto/policy/unlimited/UNLIMITED - makefiles/javax/crypto/policy/unlimited/default_US_export.policy - makefiles/javax/crypto/policy/unlimited/default_local.policy ! makefiles/mapfiles/libjava/mapfile-vers ! makefiles/mapfiles/libjfr/mapfile-vers ! makefiles/mapfiles/libnio/mapfile-linux ! makefiles/mapfiles/libnio/mapfile-solaris - makefiles/mkdemo/Makefile - makefiles/mkdemo/jni/Makefile - makefiles/mkdemo/jni/Poller/Makefile - makefiles/mkdemo/jvmti/Makefile - makefiles/mkdemo/jvmti/README.txt - makefiles/mkdemo/jvmti/hprof/Makefile - makefiles/mkdemo/jvmti/mapfile-vers - makefiles/mkdemo/management/README.txt - makefiles/sun/jkernel/Makefile - makefiles/sun/security/ec/Makefile - makefiles/sun/security/pkcs11/FILES_c.gmk - makefiles/sun/security/pkcs11/Makefile - makefiles/sun/security/pkcs11/mapfile-vers Changeset: 8cb908672d9e Author: erikj Date: 2012-07-03 11:45 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/8cb908672d9e 7181508: Remove GenerateNativeHeader on awt java file Reviewed-by: ohair ! src/share/classes/java/awt/image/DirectColorModel.java ! src/share/classes/sun/awt/CharsetString.java ! src/share/classes/sun/java2d/pipe/RegionIterator.java ! src/share/native/sun/awt/image/cvutils/img_globals.c Changeset: 6cd68b7bd962 Author: erikj Date: 2012-07-03 16:01 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/6cd68b7bd962 7181501: Add some GenerateNativeHeader annotations and misc Mac adjustments to makefiles Reviewed-by: ohair ! src/macosx/native/jobjc/build.xml ! src/macosx/native/jobjc/src/core/PrimitiveCoder.hs ! src/macosx/native/jobjc/src/core/java/com/apple/jobjc/CFType.java ! src/macosx/native/jobjc/src/core/java/com/apple/jobjc/Coder.java ! src/macosx/native/jobjc/src/core/java/com/apple/jobjc/FFIType.java ! src/macosx/native/jobjc/src/core/java/com/apple/jobjc/Function.java ! src/macosx/native/jobjc/src/core/java/com/apple/jobjc/ID.java ! src/macosx/native/jobjc/src/core/java/com/apple/jobjc/Invoke.java ! src/macosx/native/jobjc/src/core/java/com/apple/jobjc/JObjCRuntime.java ! src/macosx/native/jobjc/src/core/java/com/apple/jobjc/MacOSXFramework.java ! src/macosx/native/jobjc/src/core/java/com/apple/jobjc/NSClass.java ! src/macosx/native/jobjc/src/core/java/com/apple/jobjc/NativeArgumentBuffer.java ! src/macosx/native/jobjc/src/core/java/com/apple/jobjc/NativeBuffer.java ! src/macosx/native/jobjc/src/core/java/com/apple/jobjc/NativeObjectLifecycleManager.java ! src/macosx/native/jobjc/src/core/java/com/apple/jobjc/Opaque.java ! src/macosx/native/jobjc/src/core/java/com/apple/jobjc/Pointer.java ! src/macosx/native/jobjc/src/core/java/com/apple/jobjc/PrimitiveCoder.java ! src/macosx/native/jobjc/src/core/java/com/apple/jobjc/SEL.java ! src/macosx/native/jobjc/src/core/java/com/apple/jobjc/Struct.java ! src/macosx/native/jobjc/src/core/java/com/apple/jobjc/Subclassing.java ! src/macosx/native/jobjc/src/generator/java/com/apple/internal/jobjc/generator/classes/FrameworkClassFile.java ! src/macosx/native/jobjc/src/generator/java/com/apple/internal/jobjc/generator/model/Clazz.java ! src/macosx/native/jobjc/src/generator/java/com/apple/internal/jobjc/generator/model/coders/ComplexCoderDescriptor.java Changeset: 5b0f880eb154 Author: ohair Date: 2012-07-05 13:31 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/5b0f880eb154 Merge - makefiles/LegacyMakefiles.gmk - makefiles/OldImages.gmk - makefiles/com/sun/crypto/provider/Makefile - makefiles/common/Classes.gmk - makefiles/common/Cscope.gmk - makefiles/common/Defs-embedded.gmk - makefiles/common/Defs-linux.gmk - makefiles/common/Defs-macosx.gmk - makefiles/common/Defs-solaris.gmk - makefiles/common/Defs-windows.gmk - makefiles/common/Defs.gmk - makefiles/common/Demo.gmk - makefiles/common/Library.gmk - makefiles/common/Mapfile-vers.gmk - makefiles/common/Modules.gmk - makefiles/common/Program.gmk - makefiles/common/Release-embedded.gmk - makefiles/common/Release-macosx.gmk - makefiles/common/Release.gmk - makefiles/common/Rules.gmk - makefiles/common/Subdirs.gmk - makefiles/common/internal/Defs-corba.gmk - makefiles/common/internal/Defs-jaxp.gmk - makefiles/common/internal/Defs-jaxws.gmk - makefiles/common/internal/Defs-langtools.gmk - makefiles/common/internal/ImportComponents.gmk - makefiles/common/internal/NativeCompileRules.gmk - makefiles/common/internal/Resources.gmk - makefiles/common/shared/Compiler-gcc.gmk - makefiles/common/shared/Compiler-llvm.gmk - makefiles/common/shared/Compiler-msvc.gmk - makefiles/common/shared/Compiler-sun.gmk - makefiles/common/shared/Defs-control.gmk - makefiles/common/shared/Defs-java.gmk - makefiles/common/shared/Defs-javadoc.gmk - makefiles/common/shared/Defs-linux.gmk - makefiles/common/shared/Defs-macosx.gmk - makefiles/common/shared/Defs-solaris.gmk - makefiles/common/shared/Defs-versions.gmk - makefiles/common/shared/Defs-windows.gmk - makefiles/common/shared/Defs.gmk - makefiles/common/shared/Platform.gmk - makefiles/common/shared/PrivateDefs.gmk-example - makefiles/common/shared/Sanity-Settings.gmk - makefiles/java/Makefile - makefiles/java/invoke/Makefile - makefiles/java/redist/Makefile - makefiles/java/redist/sajdi/Makefile - makefiles/javax/crypto/Defs-jce.gmk - makefiles/javax/crypto/Makefile - makefiles/javax/crypto/policy/limited/LIMITED - makefiles/javax/crypto/policy/limited/default_local.policy - makefiles/javax/crypto/policy/limited/exempt_local.policy - makefiles/javax/crypto/policy/unlimited/UNLIMITED - makefiles/javax/crypto/policy/unlimited/default_US_export.policy - makefiles/javax/crypto/policy/unlimited/default_local.policy - makefiles/mkdemo/Makefile - makefiles/mkdemo/jni/Makefile - makefiles/mkdemo/jni/Poller/Makefile - makefiles/mkdemo/jvmti/Makefile - makefiles/mkdemo/jvmti/README.txt - makefiles/mkdemo/jvmti/hprof/Makefile - makefiles/mkdemo/jvmti/mapfile-vers - makefiles/mkdemo/management/README.txt - makefiles/sun/jkernel/Makefile - makefiles/sun/security/ec/Makefile - makefiles/sun/security/pkcs11/FILES_c.gmk - makefiles/sun/security/pkcs11/Makefile - makefiles/sun/security/pkcs11/mapfile-vers Changeset: 00b22b23269a Author: katleman Date: 2012-07-11 16:02 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/00b22b23269a Merge - makefiles/LegacyMakefiles.gmk - makefiles/OldImages.gmk - makefiles/com/sun/crypto/provider/Makefile - makefiles/common/Classes.gmk - makefiles/common/Cscope.gmk - makefiles/common/Defs-embedded.gmk - makefiles/common/Defs-linux.gmk - makefiles/common/Defs-macosx.gmk - makefiles/common/Defs-solaris.gmk - makefiles/common/Defs-windows.gmk - makefiles/common/Defs.gmk - makefiles/common/Demo.gmk - makefiles/common/Library.gmk - makefiles/common/Mapfile-vers.gmk - makefiles/common/Modules.gmk - makefiles/common/Program.gmk - makefiles/common/Release-embedded.gmk - makefiles/common/Release-macosx.gmk - makefiles/common/Release.gmk - makefiles/common/Rules.gmk - makefiles/common/Subdirs.gmk - makefiles/common/internal/Defs-corba.gmk - makefiles/common/internal/Defs-jaxp.gmk - makefiles/common/internal/Defs-jaxws.gmk - makefiles/common/internal/Defs-langtools.gmk - makefiles/common/internal/ImportComponents.gmk - makefiles/common/internal/NativeCompileRules.gmk - makefiles/common/internal/Resources.gmk - makefiles/common/shared/Compiler-gcc.gmk - makefiles/common/shared/Compiler-llvm.gmk - makefiles/common/shared/Compiler-msvc.gmk - makefiles/common/shared/Compiler-sun.gmk - makefiles/common/shared/Defs-control.gmk - makefiles/common/shared/Defs-java.gmk - makefiles/common/shared/Defs-javadoc.gmk - makefiles/common/shared/Defs-linux.gmk - makefiles/common/shared/Defs-macosx.gmk - makefiles/common/shared/Defs-solaris.gmk - makefiles/common/shared/Defs-versions.gmk - makefiles/common/shared/Defs-windows.gmk - makefiles/common/shared/Defs.gmk - makefiles/common/shared/Platform.gmk - makefiles/common/shared/PrivateDefs.gmk-example - makefiles/common/shared/Sanity-Settings.gmk - makefiles/java/Makefile - makefiles/java/invoke/Makefile - makefiles/java/redist/Makefile - makefiles/java/redist/sajdi/Makefile - makefiles/javax/crypto/Defs-jce.gmk - makefiles/javax/crypto/Makefile - makefiles/javax/crypto/policy/limited/LIMITED - makefiles/javax/crypto/policy/limited/default_local.policy - makefiles/javax/crypto/policy/limited/exempt_local.policy - makefiles/javax/crypto/policy/unlimited/UNLIMITED - makefiles/javax/crypto/policy/unlimited/default_US_export.policy - makefiles/javax/crypto/policy/unlimited/default_local.policy - makefiles/mkdemo/Makefile - makefiles/mkdemo/jni/Makefile - makefiles/mkdemo/jni/Poller/Makefile - makefiles/mkdemo/jvmti/Makefile - makefiles/mkdemo/jvmti/README.txt - makefiles/mkdemo/jvmti/hprof/Makefile - makefiles/mkdemo/jvmti/mapfile-vers - makefiles/mkdemo/management/README.txt - makefiles/sun/jkernel/Makefile - makefiles/sun/security/ec/Makefile - makefiles/sun/security/pkcs11/FILES_c.gmk - makefiles/sun/security/pkcs11/Makefile - makefiles/sun/security/pkcs11/mapfile-vers Changeset: 3e4ab821f461 Author: katleman Date: 2012-07-12 16:48 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/3e4ab821f461 Added tag jdk8-b47 for changeset 00b22b23269a ! .hgtags From john.coomes at oracle.com Thu Jul 12 20:41:56 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 13 Jul 2012 03:41:56 +0000 Subject: hg: hsx/hotspot-main/langtools: 3 new changesets Message-ID: <20120713034207.9C93247FF5@hg.openjdk.java.net> Changeset: 01d9911df25d Author: erikj Date: 2012-06-28 14:59 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/langtools/rev/01d9911df25d 7180594: Fix GenStubs in langtools for build-infra builds Reviewed-by: ohair ! make/tools/genstubs/GenStubs.java Changeset: 7e6be2f239c9 Author: ohair Date: 2012-07-08 20:34 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/langtools/rev/7e6be2f239c9 Merge Changeset: afb0a5231557 Author: katleman Date: 2012-07-12 16:48 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/langtools/rev/afb0a5231557 Added tag jdk8-b47 for changeset 7e6be2f239c9 ! .hgtags From zhengyu.gu at oracle.com Fri Jul 13 12:43:30 2012 From: zhengyu.gu at oracle.com (Zhengyu Gu) Date: Fri, 13 Jul 2012 15:43:30 -0400 Subject: Code review request: three native memory tracking related bugs Message-ID: <50007A62.4040801@oracle.com> 7181989: NMT ON: Assertion failure when NMT checks thread's native CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7181989 Webrev: http://cr.openjdk.java.net/~zgu/7181989/webrev.00/ We try to assert Thread's stack base to ensure that Thread::record_stack_base_and_size() to record native stack to NMT, but there is scenario that the thread fails to start, which no native stack is created and should not be asserted. 7181986: NMT ON: Assertion failure when running jdi ExpiredRequestDeletionTest CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7181986 Webrev: http://cr.openjdk.java.net/~zgu/7181986/webrev.00/ This is a racing condition when C/C++ runtime exit handler is ran before NMT worker thread exits. The exit handler calls _query_lock's destructor while NMT worker thread is still holding it. The fix is to make _query_lock a heap object, instead of static object, but the drawback is that, it does not seem that _query_lock can be safely deleted. Also, I reassigned MemSnaphot lock and query lock, so they participate in the deadlock detection logic. 7182543: NMT ON: Aggregate a few NMT related bugs CRhttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7182543 Webrev: http://cr.openjdk.java.net/~zgu/7182543/webrev.00/ - Fixed generations_in_used calculation - Wait MemRecorder instance count to drop to zero before completely shutdown NMT - Added assertion for JavaThread in _thread_blocked state. Thanks, -Zhengyu From alejandro.murillo at oracle.com Fri Jul 13 15:46:55 2012 From: alejandro.murillo at oracle.com (alejandro.murillo at oracle.com) Date: Fri, 13 Jul 2012 22:46:55 +0000 Subject: hg: hsx/hsx23.2/hotspot: 5 new changesets Message-ID: <20120713224707.59AD747035@hg.openjdk.java.net> Changeset: df0df4ae5af2 Author: katleman Date: 2012-07-05 23:01 -0700 URL: http://hg.openjdk.java.net/hsx/hsx23.2/hotspot/rev/df0df4ae5af2 Added tag jdk7u6-b17 for changeset 7a37cec9d0d4 ! .hgtags Changeset: 1257f4373a06 Author: katleman Date: 2012-07-06 15:02 -0700 URL: http://hg.openjdk.java.net/hsx/hsx23.2/hotspot/rev/1257f4373a06 Added tag jdk7u6-b18 for changeset df0df4ae5af2 ! .hgtags Changeset: 0aea8f0afd27 Author: katleman Date: 2012-07-11 11:22 -0700 URL: http://hg.openjdk.java.net/hsx/hsx23.2/hotspot/rev/0aea8f0afd27 Added tag jdk7u6-b19 for changeset 1257f4373a06 ! .hgtags Changeset: a0c2fa4baeb6 Author: amurillo Date: 2012-07-13 13:29 -0700 URL: http://hg.openjdk.java.net/hsx/hsx23.2/hotspot/rev/a0c2fa4baeb6 Merge Changeset: 1e31ae50c2cf Author: amurillo Date: 2012-07-13 13:29 -0700 URL: http://hg.openjdk.java.net/hsx/hsx23.2/hotspot/rev/1e31ae50c2cf Added tag hs23.2-b09 for changeset a0c2fa4baeb6 ! .hgtags From coleen.phillimore at oracle.com Fri Jul 13 16:50:41 2012 From: coleen.phillimore at oracle.com (Coleen Phillmore) Date: Fri, 13 Jul 2012 19:50:41 -0400 Subject: Code review request: three native memory tracking related bugs In-Reply-To: <50007A62.4040801@oracle.com> References: <50007A62.4040801@oracle.com> Message-ID: <5000B451.5060606@oracle.com> Zhengyu, These look good. thanks, Coleen On 7/13/2012 3:43 PM, Zhengyu Gu wrote: > 7181989: NMT ON: Assertion failure when NMT checks thread's native > CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7181989 > Webrev: http://cr.openjdk.java.net/~zgu/7181989/webrev.00/ > > We try to assert Thread's stack base to ensure that > Thread::record_stack_base_and_size() to record native stack to NMT, > but there is scenario that the thread fails to start, which no native > stack is created and should not be asserted. > > 7181986: NMT ON: Assertion failure when running jdi > ExpiredRequestDeletionTest > CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7181986 > Webrev: http://cr.openjdk.java.net/~zgu/7181986/webrev.00/ > > This is a racing condition when C/C++ runtime exit handler is ran > before NMT worker thread exits. The exit handler calls _query_lock's > destructor while NMT worker thread is still holding it. The fix is to > make _query_lock a heap object, instead of static object, but the > drawback is that, it does not seem that _query_lock can be safely > deleted. > > Also, I reassigned MemSnaphot lock and query lock, so they participate > in the deadlock detection logic. > > 7182543: NMT ON: Aggregate a few NMT related bugs > CRhttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7182543 > Webrev: http://cr.openjdk.java.net/~zgu/7182543/webrev.00/ > > - Fixed generations_in_used calculation > - Wait MemRecorder instance count to drop to zero before completely > shutdown NMT > - Added assertion for JavaThread in _thread_blocked state. > > > Thanks, > > -Zhengyu > From vladimir.kozlov at oracle.com Fri Jul 13 17:36:43 2012 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Fri, 13 Jul 2012 17:36:43 -0700 Subject: Code review request: three native memory tracking related bugs In-Reply-To: <50007A62.4040801@oracle.com> References: <50007A62.4040801@oracle.com> Message-ID: <5000BF1B.6040105@oracle.com> Zhengyu Gu wrote: > 7181989: NMT ON: Assertion failure when NMT checks thread's native > CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7181989 > Webrev: http://cr.openjdk.java.net/~zgu/7181989/webrev.00/ Good. > > We try to assert Thread's stack base to ensure that > Thread::record_stack_base_and_size() to record native stack to NMT, but > there is scenario that the thread fails to start, which no native stack > is created and should not be asserted. > > 7181986: NMT ON: Assertion failure when running jdi > ExpiredRequestDeletionTest > CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7181986 > Webrev: http://cr.openjdk.java.net/~zgu/7181986/webrev.00/ Good. > > This is a racing condition when C/C++ runtime exit handler is ran > before NMT worker thread exits. The exit handler calls _query_lock's > destructor while NMT worker thread is still holding it. The fix is to > make _query_lock a heap object, instead of static object, but the > drawback is that, it does not seem that _query_lock can be safely deleted. > > Also, I reassigned MemSnaphot lock and query lock, so they participate > in the deadlock detection logic. > > 7182543: NMT ON: Aggregate a few NMT related bugs > CRhttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7182543 > Webrev: http://cr.openjdk.java.net/~zgu/7182543/webrev.00/ I think the next should be guarantee() instead of check since all MemRecorders should be deleted in preceding code: if (MemRecorder::_instance_count == 0) { Vladimir > > - Fixed generations_in_used calculation > - Wait MemRecorder instance count to drop to zero before completely > shutdown NMT > - Added assertion for JavaThread in _thread_blocked state. > > > Thanks, > > -Zhengyu > From alejandro.murillo at oracle.com Fri Jul 13 17:48:34 2012 From: alejandro.murillo at oracle.com (alejandro.murillo at oracle.com) Date: Sat, 14 Jul 2012 00:48:34 +0000 Subject: hg: hsx/hsx24/hotspot: 18 new changesets Message-ID: <20120714004916.BE5C547037@hg.openjdk.java.net> Changeset: 0c7bb1f4f9c8 Author: katleman Date: 2012-07-05 18:44 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/0c7bb1f4f9c8 Added tag jdk8-b46 for changeset cf37a594c38d ! .hgtags Changeset: fa0c28fabbb1 Author: katleman Date: 2012-07-12 16:48 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/fa0c28fabbb1 Added tag jdk8-b47 for changeset 0c7bb1f4f9c8 ! .hgtags Changeset: bcffa4c5eef6 Author: amurillo Date: 2012-06-29 17:12 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/bcffa4c5eef6 7180882: new hotspot build - hs24-b16 Reviewed-by: jcoomes ! make/hotspot_version Changeset: 3759236eea14 Author: kamg Date: 2012-07-02 10:54 -0400 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/3759236eea14 7167142: Consider a warning when finding a .hotspotrc or .hotspot_compiler file that isn't used Summary: Send warnings to output stream Reviewed-by: dholmes, fparain ! src/share/vm/compiler/compilerOracle.cpp ! src/share/vm/runtime/arguments.cpp Changeset: d2a62e0f25eb Author: zgu Date: 2012-06-28 17:03 -0400 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1) 7151532: DCmd for hotspot native memory tracking Summary: Implementation of native memory tracking phase 1, which tracks VM native memory usage, and related DCmd Reviewed-by: acorn, coleenp, fparain ! agent/src/share/classes/sun/jvm/hotspot/utilities/BasicHashtable.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/BasicHashtableEntry.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/Hashtable.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/HashtableBucket.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/HashtableEntry.java ! make/bsd/makefiles/jvmg.make ! make/linux/makefiles/jvmg.make ! make/solaris/makefiles/jvmg.make ! make/windows/makefiles/debug.make ! src/os/bsd/vm/os_bsd.cpp ! src/os/bsd/vm/os_bsd.hpp ! src/os/bsd/vm/os_bsd.inline.hpp ! src/os/bsd/vm/perfMemory_bsd.cpp ! src/os/linux/vm/os_linux.cpp ! src/os/linux/vm/os_linux.hpp ! src/os/linux/vm/os_linux.inline.hpp ! src/os/linux/vm/perfMemory_linux.cpp ! src/os/posix/vm/os_posix.cpp ! src/os/solaris/dtrace/hs_private.d ! src/os/solaris/vm/os_solaris.cpp ! src/os/solaris/vm/os_solaris.hpp ! src/os/solaris/vm/os_solaris.inline.hpp ! src/os/solaris/vm/perfMemory_solaris.cpp ! src/os/windows/vm/os_windows.cpp ! src/os/windows/vm/os_windows.hpp ! src/os/windows/vm/perfMemory_windows.cpp ! src/share/vm/asm/codeBuffer.cpp ! src/share/vm/c1/c1_CFGPrinter.cpp ! src/share/vm/c1/c1_Compiler.cpp ! src/share/vm/c1/c1_LinearScan.cpp ! src/share/vm/ci/ciObjectFactory.cpp ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/classLoader.cpp ! src/share/vm/classfile/classLoader.hpp ! src/share/vm/classfile/dictionary.cpp ! src/share/vm/classfile/dictionary.hpp ! src/share/vm/classfile/javaAssertions.cpp ! src/share/vm/classfile/javaAssertions.hpp ! src/share/vm/classfile/loaderConstraints.cpp ! src/share/vm/classfile/loaderConstraints.hpp ! src/share/vm/classfile/placeholders.cpp ! src/share/vm/classfile/placeholders.hpp ! src/share/vm/classfile/resolutionErrors.cpp ! src/share/vm/classfile/resolutionErrors.hpp ! src/share/vm/classfile/symbolTable.cpp ! src/share/vm/classfile/symbolTable.hpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/classfile/systemDictionary.hpp ! src/share/vm/code/codeBlob.cpp ! src/share/vm/code/codeCache.cpp ! src/share/vm/code/codeCache.hpp ! src/share/vm/code/nmethod.hpp ! src/share/vm/code/stubs.hpp ! src/share/vm/compiler/abstractCompiler.hpp ! src/share/vm/compiler/compileBroker.cpp ! src/share/vm/compiler/compileBroker.hpp ! src/share/vm/compiler/compileLog.cpp ! src/share/vm/compiler/compilerOracle.cpp ! src/share/vm/compiler/oopMap.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp ! src/share/vm/gc_implementation/g1/collectionSetChooser.hpp ! src/share/vm/gc_implementation/g1/concurrentG1Refine.cpp ! src/share/vm/gc_implementation/g1/concurrentG1Refine.hpp ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/concurrentMark.hpp ! src/share/vm/gc_implementation/g1/dirtyCardQueue.hpp ! src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp ! src/share/vm/gc_implementation/g1/g1BlockOffsetTable.hpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp ! src/share/vm/gc_implementation/g1/g1MMUTracker.hpp ! src/share/vm/gc_implementation/g1/g1MonitoringSupport.hpp ! src/share/vm/gc_implementation/g1/g1RemSet.cpp ! src/share/vm/gc_implementation/g1/g1RemSet.hpp ! src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp ! src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp ! src/share/vm/gc_implementation/g1/heapRegionSeq.cpp ! src/share/vm/gc_implementation/g1/heapRegionSeq.hpp ! src/share/vm/gc_implementation/g1/ptrQueue.cpp ! src/share/vm/gc_implementation/g1/satbQueue.cpp ! src/share/vm/gc_implementation/g1/sparsePRT.cpp ! src/share/vm/gc_implementation/g1/sparsePRT.hpp ! src/share/vm/gc_implementation/g1/survRateGroup.cpp ! src/share/vm/gc_implementation/g1/survRateGroup.hpp ! src/share/vm/gc_implementation/parNew/parCardTableModRefBS.cpp ! src/share/vm/gc_implementation/parNew/parGCAllocBuffer.hpp ! src/share/vm/gc_implementation/parNew/parNewGeneration.cpp ! src/share/vm/gc_implementation/parNew/parNewGeneration.hpp ! src/share/vm/gc_implementation/parNew/parOopClosures.hpp ! src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.hpp ! src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.cpp ! src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.hpp ! src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.cpp ! src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.hpp ! src/share/vm/gc_implementation/parallelScavenge/objectStartArray.cpp ! src/share/vm/gc_implementation/parallelScavenge/objectStartArray.hpp ! src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp ! src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.hpp ! src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp ! src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp ! src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp ! src/share/vm/gc_implementation/parallelScavenge/psGenerationCounters.cpp ! src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp ! src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp ! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ! src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.hpp ! src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp ! src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.hpp ! src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp ! src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp ! src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.hpp ! src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp ! src/share/vm/gc_implementation/shared/adaptiveSizePolicy.hpp ! src/share/vm/gc_implementation/shared/cSpaceCounters.cpp ! src/share/vm/gc_implementation/shared/cSpaceCounters.hpp ! src/share/vm/gc_implementation/shared/collectorCounters.cpp ! src/share/vm/gc_implementation/shared/collectorCounters.hpp ! src/share/vm/gc_implementation/shared/gSpaceCounters.cpp ! src/share/vm/gc_implementation/shared/gSpaceCounters.hpp ! src/share/vm/gc_implementation/shared/gcPolicyCounters.hpp ! src/share/vm/gc_implementation/shared/gcStats.hpp ! src/share/vm/gc_implementation/shared/gcUtil.hpp ! src/share/vm/gc_implementation/shared/generationCounters.cpp ! src/share/vm/gc_implementation/shared/generationCounters.hpp ! src/share/vm/gc_implementation/shared/hSpaceCounters.cpp ! src/share/vm/gc_implementation/shared/hSpaceCounters.hpp ! src/share/vm/gc_implementation/shared/immutableSpace.hpp ! src/share/vm/gc_implementation/shared/markSweep.cpp ! src/share/vm/gc_implementation/shared/markSweep.hpp ! src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp ! src/share/vm/gc_implementation/shared/mutableNUMASpace.hpp ! src/share/vm/gc_implementation/shared/spaceCounters.cpp ! src/share/vm/gc_implementation/shared/spaceCounters.hpp ! src/share/vm/gc_implementation/shared/spaceDecorator.hpp ! src/share/vm/gc_interface/collectedHeap.hpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/interpreter/oopMapCache.cpp ! src/share/vm/interpreter/oopMapCache.hpp ! src/share/vm/libadt/set.cpp ! src/share/vm/libadt/vectset.cpp ! src/share/vm/memory/allocation.cpp ! src/share/vm/memory/allocation.hpp ! src/share/vm/memory/allocation.inline.hpp ! src/share/vm/memory/barrierSet.hpp ! src/share/vm/memory/blockOffsetTable.cpp ! src/share/vm/memory/blockOffsetTable.hpp ! src/share/vm/memory/cardTableModRefBS.cpp ! src/share/vm/memory/collectorPolicy.hpp ! src/share/vm/memory/defNewGeneration.hpp ! src/share/vm/memory/filemap.hpp ! src/share/vm/memory/freeBlockDictionary.hpp ! src/share/vm/memory/genMarkSweep.cpp ! src/share/vm/memory/genOopClosures.hpp ! src/share/vm/memory/genRemSet.hpp ! src/share/vm/memory/generation.hpp ! src/share/vm/memory/generationSpec.hpp ! src/share/vm/memory/heap.cpp ! src/share/vm/memory/heap.hpp ! src/share/vm/memory/heapInspection.cpp ! src/share/vm/memory/heapInspection.hpp ! src/share/vm/memory/memRegion.hpp ! src/share/vm/memory/permGen.hpp ! src/share/vm/memory/referencePolicy.hpp ! src/share/vm/memory/referenceProcessor.cpp ! src/share/vm/memory/referenceProcessor.hpp ! src/share/vm/memory/resourceArea.hpp ! src/share/vm/memory/restore.cpp ! src/share/vm/memory/space.hpp ! src/share/vm/memory/tenuredGeneration.cpp ! src/share/vm/memory/threadLocalAllocBuffer.hpp ! src/share/vm/memory/universe.cpp ! src/share/vm/memory/universe.hpp ! src/share/vm/oops/constantPoolOop.hpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/oops/methodOop.hpp ! src/share/vm/oops/symbol.cpp ! src/share/vm/opto/idealGraphPrinter.cpp ! src/share/vm/opto/macro.cpp ! src/share/vm/opto/runtime.hpp ! src/share/vm/opto/type.cpp ! src/share/vm/prims/jni.cpp ! src/share/vm/prims/jniCheck.cpp ! src/share/vm/prims/jvmtiClassFileReconstituter.hpp ! src/share/vm/prims/jvmtiCodeBlobEvents.cpp ! src/share/vm/prims/jvmtiEnv.cpp ! src/share/vm/prims/jvmtiEnvBase.cpp ! src/share/vm/prims/jvmtiEnvBase.hpp ! src/share/vm/prims/jvmtiEnvThreadState.cpp ! src/share/vm/prims/jvmtiEnvThreadState.hpp ! src/share/vm/prims/jvmtiExport.cpp ! src/share/vm/prims/jvmtiExport.hpp ! src/share/vm/prims/jvmtiExtensions.cpp ! src/share/vm/prims/jvmtiGetLoadedClasses.cpp ! src/share/vm/prims/jvmtiImpl.cpp ! src/share/vm/prims/jvmtiImpl.hpp ! src/share/vm/prims/jvmtiRawMonitor.cpp ! src/share/vm/prims/jvmtiRedefineClasses.cpp ! src/share/vm/prims/jvmtiTagMap.cpp ! src/share/vm/prims/jvmtiTagMap.hpp ! src/share/vm/prims/jvmtiThreadState.hpp ! src/share/vm/prims/jvmtiUtil.cpp ! src/share/vm/prims/unsafe.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/arguments.hpp ! src/share/vm/runtime/biasedLocking.cpp ! src/share/vm/runtime/compilationPolicy.hpp ! src/share/vm/runtime/deoptimization.cpp ! src/share/vm/runtime/deoptimization.hpp ! src/share/vm/runtime/dtraceJSDT.hpp ! src/share/vm/runtime/fprofiler.cpp ! src/share/vm/runtime/fprofiler.hpp ! src/share/vm/runtime/globals.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/handles.cpp ! src/share/vm/runtime/handles.hpp ! src/share/vm/runtime/handles.inline.hpp ! src/share/vm/runtime/java.cpp ! src/share/vm/runtime/jniHandles.hpp ! src/share/vm/runtime/monitorChunk.cpp ! src/share/vm/runtime/monitorChunk.hpp ! src/share/vm/runtime/mutex.hpp ! src/share/vm/runtime/os.cpp ! src/share/vm/runtime/os.hpp ! src/share/vm/runtime/osThread.hpp ! src/share/vm/runtime/park.cpp ! src/share/vm/runtime/perfData.cpp ! src/share/vm/runtime/perfData.hpp ! src/share/vm/runtime/perfMemory.cpp ! src/share/vm/runtime/reflectionUtils.cpp ! src/share/vm/runtime/safepoint.cpp ! src/share/vm/runtime/safepoint.hpp ! src/share/vm/runtime/sharedRuntime.cpp ! src/share/vm/runtime/sharedRuntime.hpp ! src/share/vm/runtime/stubCodeGenerator.hpp ! src/share/vm/runtime/sweeper.cpp ! src/share/vm/runtime/task.hpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp ! src/share/vm/runtime/unhandledOops.cpp ! src/share/vm/runtime/vframeArray.cpp ! src/share/vm/runtime/vframeArray.hpp ! src/share/vm/runtime/vframe_hp.cpp ! src/share/vm/runtime/vframe_hp.hpp ! src/share/vm/runtime/virtualspace.cpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/runtime/vmThread.hpp ! src/share/vm/runtime/vm_operations.hpp ! src/share/vm/services/attachListener.cpp ! src/share/vm/services/attachListener.hpp ! src/share/vm/services/diagnosticArgument.cpp ! src/share/vm/services/diagnosticArgument.hpp ! src/share/vm/services/diagnosticFramework.hpp ! src/share/vm/services/gcNotifier.cpp ! src/share/vm/services/gcNotifier.hpp ! src/share/vm/services/heapDumper.cpp ! src/share/vm/services/lowMemoryDetector.hpp ! src/share/vm/services/management.cpp + src/share/vm/services/memBaseline.cpp + src/share/vm/services/memBaseline.hpp + src/share/vm/services/memPtr.cpp + src/share/vm/services/memPtr.hpp + src/share/vm/services/memPtrArray.hpp + src/share/vm/services/memRecorder.cpp + src/share/vm/services/memRecorder.hpp + src/share/vm/services/memReporter.cpp + src/share/vm/services/memReporter.hpp + src/share/vm/services/memSnapshot.cpp + src/share/vm/services/memSnapshot.hpp + src/share/vm/services/memTrackWorker.cpp + src/share/vm/services/memTrackWorker.hpp + src/share/vm/services/memTracker.cpp + src/share/vm/services/memTracker.hpp ! src/share/vm/services/memoryManager.cpp ! src/share/vm/services/memoryManager.hpp ! src/share/vm/services/memoryPool.hpp ! src/share/vm/services/memoryService.cpp + src/share/vm/services/nmtDCmd.cpp + src/share/vm/services/nmtDCmd.hpp ! src/share/vm/services/threadService.cpp ! src/share/vm/services/threadService.hpp ! src/share/vm/utilities/array.cpp ! src/share/vm/utilities/array.hpp ! src/share/vm/utilities/bitMap.cpp ! src/share/vm/utilities/decoder.hpp ! src/share/vm/utilities/elfFile.cpp ! src/share/vm/utilities/elfFile.hpp ! src/share/vm/utilities/elfStringTable.cpp ! src/share/vm/utilities/elfStringTable.hpp ! src/share/vm/utilities/elfSymbolTable.cpp ! src/share/vm/utilities/elfSymbolTable.hpp ! src/share/vm/utilities/events.hpp ! src/share/vm/utilities/exceptions.hpp ! src/share/vm/utilities/growableArray.cpp ! src/share/vm/utilities/growableArray.hpp ! src/share/vm/utilities/hashtable.cpp ! src/share/vm/utilities/hashtable.hpp ! src/share/vm/utilities/hashtable.inline.hpp ! src/share/vm/utilities/histogram.cpp ! src/share/vm/utilities/histogram.hpp ! src/share/vm/utilities/intHisto.cpp ! src/share/vm/utilities/intHisto.hpp ! src/share/vm/utilities/numberSeq.cpp ! src/share/vm/utilities/numberSeq.hpp ! src/share/vm/utilities/ostream.cpp ! src/share/vm/utilities/stack.hpp ! src/share/vm/utilities/stack.inline.hpp ! src/share/vm/utilities/taskqueue.hpp ! src/share/vm/utilities/vmError.cpp ! src/share/vm/utilities/workgroup.cpp ! src/share/vm/utilities/workgroup.hpp ! src/share/vm/utilities/xmlstream.cpp Changeset: 24b9c7f4cae6 Author: coleenp Date: 2012-07-02 13:11 -0400 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/24b9c7f4cae6 Merge ! src/share/vm/compiler/compilerOracle.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp ! src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp ! src/share/vm/memory/universe.hpp ! src/share/vm/opto/type.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/java.cpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/utilities/vmError.cpp Changeset: 3f1ab0c19c30 Author: dholmes Date: 2012-07-03 01:41 -0400 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/3f1ab0c19c30 7179383: MaxDirectMemorySize argument parsing is broken for values >2G Summary: change hotspot flag to be unsigned Reviewed-by: dholmes, sla, fparain, brutisso Contributed-by: Chris Dennis ! src/share/vm/prims/jvm.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp Changeset: 65906dc96aa1 Author: mikael Date: 2012-07-03 17:35 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/65906dc96aa1 7129724: MAC: Core file location is wrong in crash report Summary: Updated core path location to reflect macosx default Reviewed-by: dholmes, kamg ! src/os/bsd/vm/os_bsd.cpp ! src/os/linux/vm/os_linux.cpp ! src/os/posix/vm/os_posix.cpp ! src/os/solaris/vm/os_solaris.cpp ! src/share/vm/runtime/os.hpp Changeset: ace99a6ffc83 Author: coleenp Date: 2012-07-04 15:55 -0400 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/ace99a6ffc83 7181200: JVM new hashing code breaks SA in product mode Summary: Made new_hash() overloaded rather than a virtual function so SA code doesn't need to be changed. Reviewed-by: kvn, acorn, dholmes, fparain ! src/share/vm/classfile/symbolTable.cpp ! src/share/vm/classfile/symbolTable.hpp ! src/share/vm/utilities/hashtable.cpp ! src/share/vm/utilities/hashtable.hpp Changeset: 5a1f452f8f90 Author: sla Date: 2012-06-28 11:37 +0200 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/5a1f452f8f90 7178703: Fix handling of quoted arguments and better error messages in dcmd Reviewed-by: coleenp, mgronlun, rbackman ! src/share/vm/prims/whitebox.cpp ! src/share/vm/services/diagnosticCommand.hpp ! src/share/vm/services/diagnosticFramework.cpp ! src/share/vm/services/diagnosticFramework.hpp ! test/serviceability/ParserTest.java Changeset: 04ade88d9712 Author: fparain Date: 2012-07-09 01:28 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K Reviewed-by: sspitsyn, dholmes, coleenp, kamg ! agent/src/share/classes/sun/jvm/hotspot/jdi/ReferenceTypeImpl.java ! agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/oops/instanceKlassKlass.cpp ! src/share/vm/prims/jvmtiClassFileReconstituter.cpp ! src/share/vm/prims/jvmtiEnv.cpp ! src/share/vm/prims/jvmtiRedefineClasses.cpp ! src/share/vm/runtime/vmStructs.cpp + test/runtime/6294277/SourceDebugExtension.java + test/runtime/6294277/Test6294277.sh Changeset: 90d5a592ea8f Author: coleenp Date: 2012-07-12 14:26 -0400 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/90d5a592ea8f Merge ! src/share/vm/compiler/compilerOracle.cpp ! src/share/vm/runtime/arguments.cpp Changeset: d50605d9417e Author: roland Date: 2012-07-02 09:58 +0200 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/d50605d9417e 7177917: Failed test java/lang/Math/PowTests.java Summary: When c2 intrinsifies pow/exp, it should never inline the java implementations. Reviewed-by: kvn ! src/share/vm/opto/library_call.cpp + test/compiler/7177917/Test7177917.java Changeset: 70862d781d01 Author: kvn Date: 2012-07-02 12:59 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/70862d781d01 7180769: assert(tboth->klass_is_exact()) failed: klass should be exact Summary: Use class exactness as part of the condition for class compare optimization instead of assert. Reviewed-by: twisti, roland ! src/share/vm/opto/parse2.cpp Changeset: ae9241bbce4a Author: kvn Date: 2012-07-11 14:50 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/ae9241bbce4a 7181658: CTW: assert(t->meet(t0) == t) failed: Not monotonic Summary: Use uncast node equivalence checks in CmpUNode::sub. Reviewed-by: kvn, twisti Contributed-by: vladimir.x.ivanov at oracle.com ! src/share/vm/opto/subnode.cpp ! src/share/vm/opto/subnode.hpp Changeset: cc787232c4c5 Author: kvn Date: 2012-07-12 14:19 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/cc787232c4c5 Merge Changeset: 66b0450071c1 Author: amurillo Date: 2012-07-13 14:06 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/66b0450071c1 Merge Changeset: 1e26f61bbb52 Author: amurillo Date: 2012-07-13 14:06 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/1e26f61bbb52 Added tag hs24-b16 for changeset 66b0450071c1 ! .hgtags From alejandro.murillo at oracle.com Fri Jul 13 19:45:54 2012 From: alejandro.murillo at oracle.com (alejandro.murillo at oracle.com) Date: Sat, 14 Jul 2012 02:45:54 +0000 Subject: hg: hsx/hsx23.2/hotspot: 7184048: new hotspot build - hs23.2-b10 Message-ID: <20120714024558.57C2A4703A@hg.openjdk.java.net> Changeset: 9ee3d3102f68 Author: amurillo Date: 2012-07-13 13:39 -0700 URL: http://hg.openjdk.java.net/hsx/hsx23.2/hotspot/rev/9ee3d3102f68 7184048: new hotspot build - hs23.2-b10 Reviewed-by: jcoomes ! make/hotspot_version From alejandro.murillo at oracle.com Fri Jul 13 21:43:11 2012 From: alejandro.murillo at oracle.com (alejandro.murillo at oracle.com) Date: Sat, 14 Jul 2012 04:43:11 +0000 Subject: hg: hsx/hotspot-main/hotspot: 5 new changesets Message-ID: <20120714044325.19C484703D@hg.openjdk.java.net> Changeset: 0c7bb1f4f9c8 Author: katleman Date: 2012-07-05 18:44 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/0c7bb1f4f9c8 Added tag jdk8-b46 for changeset cf37a594c38d ! .hgtags Changeset: fa0c28fabbb1 Author: katleman Date: 2012-07-12 16:48 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/fa0c28fabbb1 Added tag jdk8-b47 for changeset 0c7bb1f4f9c8 ! .hgtags Changeset: 66b0450071c1 Author: amurillo Date: 2012-07-13 14:06 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/66b0450071c1 Merge Changeset: 1e26f61bbb52 Author: amurillo Date: 2012-07-13 14:06 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/1e26f61bbb52 Added tag hs24-b16 for changeset 66b0450071c1 ! .hgtags Changeset: 54e66510c9cd Author: amurillo Date: 2012-07-13 14:16 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/54e66510c9cd 7184050: new hotspot build - hs24-b17 Reviewed-by: jcoomes ! make/hotspot_version From david.holmes at oracle.com Fri Jul 13 23:57:55 2012 From: david.holmes at oracle.com (David Holmes) Date: Sat, 14 Jul 2012 16:57:55 +1000 Subject: Code review request: three native memory tracking related bugs In-Reply-To: <50007A62.4040801@oracle.com> References: <50007A62.4040801@oracle.com> Message-ID: <50011873.8070806@oracle.com> On 14/07/2012 5:43 AM, Zhengyu Gu wrote: > 7181989: NMT ON: Assertion failure when NMT checks thread's native > CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7181989 > Webrev: http://cr.openjdk.java.net/~zgu/7181989/webrev.00/ > > We try to assert Thread's stack base to ensure that > Thread::record_stack_base_and_size() to record native stack to NMT, but > there is scenario that the thread fails to start, which no native stack > is created and should not be asserted. I'm not really clear on why we need to refer to the assert inside stack_base(). If any started thread fails to setup the stackbase and stacksize then it will likely crash well prior to the Thread destructor. It seems to me that all that is needed here is to only call MemTracker::record_virtual_memory_release for a thread that actually started, and for that you can simplify the check to: if (os_thr != NULL && os_thr->get_state() > INITIALIZED) and so the whole thing can be expressed simply as: // Update NMT on Thread destruction, but only if the Thread // actually started OSThread* os_thr = osthread(); if (os_thr != NULL && os_thr->get_state() > INITIALIZED) { MemTracker::record_virtual_memory_release( (stack_base() - stack_size()), stack_size(), this); } > 7181986: NMT ON: Assertion failure when running jdi > ExpiredRequestDeletionTest > CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7181986 > Webrev: http://cr.openjdk.java.net/~zgu/7181986/webrev.00/ > > This is a racing condition when C/C++ runtime exit handler is ran > before NMT worker thread exits. The exit handler calls _query_lock's > destructor while NMT worker thread is still holding it. The fix is to > make _query_lock a heap object, instead of static object, but the > drawback is that, it does not seem that _query_lock can be safely deleted. > > Also, I reassigned MemSnaphot lock and query lock, so they participate > in the deadlock detection logic. src/share/vm/services/memSnapshot.cpp We don't use std::nothrow when allocating other VM mutexes, and you are not checking for allocation failures. Can't comment on whether the 'level' assigned to the mutexes is appropriate - only testing and time will tell. > 7182543: NMT ON: Aggregate a few NMT related bugs > CRhttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7182543 > Webrev: http://cr.openjdk.java.net/~zgu/7182543/webrev.00/ > > - Fixed generations_in_used calculation > - Wait MemRecorder instance count to drop to zero before completely > shutdown NMT So previously the instance_count was only present in debug. Is this likely to be a contention bottleneck? > - Added assertion for JavaThread in _thread_blocked state. Is the check for a safepoint needed? I'm assuming this assertion is trying to verify that threads in _thread_blocked don't do allocation/deallocation (though I'm unclear why the constraint exists??). Whether a safepoint is presently active or not seems irrelevant ?? Cheers, David > > Thanks, > > -Zhengyu > From thomas.stuefe at gmail.com Sun Jul 15 07:35:54 2012 From: thomas.stuefe at gmail.com (=?ISO-8859-1?Q?Thomas_St=FCfe?=) Date: Sun, 15 Jul 2012 16:35:54 +0200 Subject: Code review request: three native memory tracking related bugs In-Reply-To: <50011873.8070806@oracle.com> References: <50007A62.4040801@oracle.com> <50011873.8070806@oracle.com> Message-ID: On Sat, Jul 14, 2012 at 8:57 AM, David Holmes wrote: > On 14/07/2012 5:43 AM, Zhengyu Gu wrote: >> >> 7181989: NMT ON: Assertion failure when NMT checks thread's native >> CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7181989 >> Webrev: http://cr.openjdk.java.net/~zgu/7181989/webrev.00/ >> >> We try to assert Thread's stack base to ensure that >> Thread::record_stack_base_and_size() to record native stack to NMT, but >> there is scenario that the thread fails to start, which no native stack >> is created and should not be asserted. > > > I'm not really clear on why we need to refer to the assert inside > stack_base(). If any started thread fails to setup the stackbase and > stacksize then it will likely crash well prior to the Thread destructor. It > seems to me that all that is needed here is to only call > MemTracker::record_virtual_memory_release for a thread that actually > started, and for that you can simplify the check to: > > if (os_thr != NULL && os_thr->get_state() > INITIALIZED) > > and so the whole thing can be expressed simply as: > > // Update NMT on Thread destruction, but only if the Thread > // actually started > OSThread* os_thr = osthread(); > if (os_thr != NULL && os_thr->get_state() > INITIALIZED) { > MemTracker::record_virtual_memory_release( > (stack_base() - stack_size()), stack_size(), this); > > } > I agree with that. There are a number of fatal()'s e.g. in Linux::current_stack_region() which chould kick in if stack dimension querying fails. However, a guarantee() or fatal() inside Thread::record_stack_base_and_size() would be nice to document that this should never fail. On a related note, it feels a bit wrong to me to let Thread::record_stack_base_and_size() record stack allocation to the NMT as an unexpected side effect. Also feels asymetric, because recording stack deallocation is done in ~Thread(), as one would expect. I think I see why you did it - there are 8 or so places where Thread::record_stack_base_and_size() is called. However, the general pattern seems to be that all children of Thread call factored-out functions in their constructors, and I also would do this for NMT stack recording, e.g.: e.g. void WatcherThread::run() { .... this->record_stack_base_and_size(); this->record_stack_with_NMT(); .... } Kind Regards, Thomas St?fe SAP Germany From xxd82329 at gmail.com Tue Jul 10 04:20:57 2012 From: xxd82329 at gmail.com (Xie Xiaodong) Date: Tue, 10 Jul 2012 13:20:57 +0200 Subject: Are there any liveness issues about thread scheduling in the JVM? Message-ID: Hello, Dear All, We are facing some interesting behavior in production. 2012-07-05 14:26:29 Full thread dump Java HotSpot(TM) Server VM (16.3-b01 mixed mode): "httpSSLWorkerThread-10080-221" daemon prio=3 tid=0x09197400 nid=0x1c1 waiting for monitor entry [0x23d5b000] java.lang.Thread.State: BLOCKED (on object monitor) at casinomodule.util.TimeUtilImpl.synchronizeWithDatabase(TimeUtilImpl.java:93) - locked <0x75b432d8> (a casinomodule.util.TimeUtilImpl) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:58) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:42) at casinomodule.core.domain.tournament.Occurrence.isLeaderboardActive(Occurrence.java:235) at casinomodule.core.logic.tournament.TournamentManager2Bean.skipToAddTournament(TournamentManager2Bean.java:656) at casinomodule.core.logic.tournament.TournamentManager2Bean.filterOccurencesByTickedbasedAndGameCategoryGroup(TournamentManager2Bean.java:602) at casinomodule.core.logic.tournament.TournamentManager2Bean.getGrantedOccurrences(TournamentManager2Bean.java:578) at casinomodule.core.logic.tournament.TournamentManager2Bean.getUserOccurrencesWithLeaderboardOpen(TournamentManager2Bean.java:1040) at sun.reflect.GeneratedMethodAccessor4087.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy108.getUserOccurrencesWithLeaderboardOpen(Unknown Source) at casinomodule.core.logic.casino.CasinoServiceBean.getClassicTournamentsForUser(CasinoServiceBean.java:1382) at sun.reflect.GeneratedMethodAccessor4086.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy207.getClassicTournamentsForUser(Unknown Source) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournamentsFromChannel(CasinoSOAPMultiCurrencyService.java:1567) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournaments(CasinoSOAPMultiCurrencyService.java:1545) at sun.reflect.GeneratedMethodAccessor4084.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) at casino.system.service.SoapCallWrapper.invokeMethod(SoapCallWrapper.java:78) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:333) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at casinomodule.servercommon.web.security.filter.IpCheckFilter.processRequest(IpCheckFilter.java:157) at casinomodule.servercommon.web.security.filter.IpCheckFilter.doFilter(IpCheckFilter.java:123) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:313) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:291) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:672) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:603) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:877) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:383) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:264) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) Locked ownable synchronizers: - None "httpSSLWorkerThread-10080-134" daemon prio=3 tid=0x0b38a800 nid=0x16a waiting for monitor entry [0x258e2000] java.lang.Thread.State: BLOCKED (on object monitor) at casinomodule.util.TimeUtilImpl.synchronizeWithDatabase(TimeUtilImpl.java:93) - locked <0x75b432d8> (a casinomodule.util.TimeUtilImpl) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:58) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:42) at casinomodule.core.domain.tournament.Occurrence.isLeaderboardActive(Occurrence.java:235) at casinomodule.core.logic.tournament.TournamentManager2Bean.skipToAddTournament(TournamentManager2Bean.java:656) at casinomodule.core.logic.tournament.TournamentManager2Bean.filterOccurencesByTickedbasedAndGameCategoryGroup(TournamentManager2Bean.java:602) at casinomodule.core.logic.tournament.TournamentManager2Bean.getGrantedOccurrences(TournamentManager2Bean.java:578) at casinomodule.core.logic.tournament.TournamentManager2Bean.getUserOccurrencesWithLeaderboardOpen(TournamentManager2Bean.java:1040) at sun.reflect.GeneratedMethodAccessor4087.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy108.getUserOccurrencesWithLeaderboardOpen(Unknown Source) at casinomodule.core.logic.casino.CasinoServiceBean.getClassicTournamentsForUser(CasinoServiceBean.java:1382) at sun.reflect.GeneratedMethodAccessor4086.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy207.getClassicTournamentsForUser(Unknown Source) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournamentsFromChannel(CasinoSOAPMultiCurrencyService.java:1567) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournaments(CasinoSOAPMultiCurrencyService.java:1545) at sun.reflect.GeneratedMethodAccessor4084.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) at casino.system.service.SoapCallWrapper.invokeMethod(SoapCallWrapper.java:78) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:333) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at casinomodule.servercommon.web.security.filter.IpCheckFilter.processRequest(IpCheckFilter.java:157) at casinomodule.servercommon.web.security.filter.IpCheckFilter.doFilter(IpCheckFilter.java:123) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:313) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:291) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:672) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:603) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:877) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:383) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:264) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) Locked ownable synchronizers: - None "httpSSLWorkerThread-10080-107" daemon prio=3 tid=0x0912f800 nid=0x14c waiting for monitor entry [0x26260000] java.lang.Thread.State: BLOCKED (on object monitor) at casinomodule.util.TimeUtilImpl.synchronizeWithDatabase(TimeUtilImpl.java:93) - locked <0x75b432d8> (a casinomodule.util.TimeUtilImpl) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:58) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:42) at casinomodule.core.domain.tournament.Occurrence.isLeaderboardActive(Occurrence.java:235) at casinomodule.core.logic.tournament.TournamentManager2Bean.skipToAddTournament(TournamentManager2Bean.java:656) at casinomodule.core.logic.tournament.TournamentManager2Bean.filterOccurencesByTickedbasedAndGameCategoryGroup(TournamentManager2Bean.java:602) at casinomodule.core.logic.tournament.TournamentManager2Bean.getGrantedOccurrences(TournamentManager2Bean.java:578) at casinomodule.core.logic.tournament.TournamentManager2Bean.getUserOccurrencesWithLeaderboardOpen(TournamentManager2Bean.java:1040) at sun.reflect.GeneratedMethodAccessor4087.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy108.getUserOccurrencesWithLeaderboardOpen(Unknown Source) at casinomodule.core.logic.casino.CasinoServiceBean.getClassicTournamentsForUser(CasinoServiceBean.java:1382) at sun.reflect.GeneratedMethodAccessor4086.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy207.getClassicTournamentsForUser(Unknown Source) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournamentsFromChannel(CasinoSOAPMultiCurrencyService.java:1567) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournaments(CasinoSOAPMultiCurrencyService.java:1545) at sun.reflect.GeneratedMethodAccessor4084.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) at casino.system.service.SoapCallWrapper.invokeMethod(SoapCallWrapper.java:78) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:333) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at casinomodule.servercommon.web.security.filter.IpCheckFilter.processRequest(IpCheckFilter.java:157) at casinomodule.servercommon.web.security.filter.IpCheckFilter.doFilter(IpCheckFilter.java:123) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:313) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:291) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:672) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:603) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:877) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:264) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) Locked ownable synchronizers: - None "httpSSLWorkerThread-10080-99" daemon prio=3 tid=0x0b310000 nid=0x144 waiting for monitor entry [0x264e8000] java.lang.Thread.State: BLOCKED (on object monitor) at casinomodule.util.TimeUtilImpl.synchronizeWithDatabase(TimeUtilImpl.java:93) - waiting to lock <0x75b432d8> (a casinomodule.util.TimeUtilImpl) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:58) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:42) at casinomodule.core.domain.tournament.Occurrence.isLeaderboardActive(Occurrence.java:235) at casinomodule.core.logic.tournament.TournamentManager2Bean.skipToAddTournament(TournamentManager2Bean.java:656) at casinomodule.core.logic.tournament.TournamentManager2Bean.filterOccurencesByTickedbasedAndGameCategoryGroup(TournamentManager2Bean.java:602) at casinomodule.core.logic.tournament.TournamentManager2Bean.getGrantedOccurrences(TournamentManager2Bean.java:578) at casinomodule.core.logic.tournament.TournamentManager2Bean.getUserOccurrencesWithLeaderboardOpen(TournamentManager2Bean.java:1040) at sun.reflect.GeneratedMethodAccessor4087.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy108.getUserOccurrencesWithLeaderboardOpen(Unknown Source) at casinomodule.core.logic.casino.CasinoServiceBean.getClassicTournamentsForUser(CasinoServiceBean.java:1382) at sun.reflect.GeneratedMethodAccessor4086.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy207.getClassicTournamentsForUser(Unknown Source) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournamentsFromChannel(CasinoSOAPMultiCurrencyService.java:1567) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournaments(CasinoSOAPMultiCurrencyService.java:1545) at sun.reflect.GeneratedMethodAccessor4084.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) at casino.system.service.SoapCallWrapper.invokeMethod(SoapCallWrapper.java:78) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:333) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at casinomodule.servercommon.web.security.filter.IpCheckFilter.processRequest(IpCheckFilter.java:157) at casinomodule.servercommon.web.security.filter.IpCheckFilter.doFilter(IpCheckFilter.java:123) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:313) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:291) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:672) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:603) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:877) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:264) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) Locked ownable synchronizers: - None "httpSSLWorkerThread-10080-45" daemon prio=3 tid=0x0a647000 nid=0x10e waiting for monitor entry [0x275fe000] java.lang.Thread.State: BLOCKED (on object monitor) at casinomodule.util.TimeUtilImpl.synchronizeWithDatabase(TimeUtilImpl.java:93) - waiting to lock <0x75b432d8> (a casinomodule.util.TimeUtilImpl) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:58) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:42) at casinomodule.core.domain.tournament.Occurrence.isLeaderboardActive(Occurrence.java:235) at casinomodule.core.logic.tournament.TournamentManager2Bean.skipToAddTournament(TournamentManager2Bean.java:656) at casinomodule.core.logic.tournament.TournamentManager2Bean.filterOccurencesByTickedbasedAndGameCategoryGroup(TournamentManager2Bean.java:602) at casinomodule.core.logic.tournament.TournamentManager2Bean.getGrantedOccurrences(TournamentManager2Bean.java:578) at casinomodule.core.logic.tournament.TournamentManager2Bean.getUserOccurrencesWithLeaderboardOpen(TournamentManager2Bean.java:1040) at sun.reflect.GeneratedMethodAccessor4087.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy108.getUserOccurrencesWithLeaderboardOpen(Unknown Source) at casinomodule.core.logic.casino.CasinoServiceBean.getClassicTournamentsForUser(CasinoServiceBean.java:1382) at sun.reflect.GeneratedMethodAccessor4086.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy207.getClassicTournamentsForUser(Unknown Source) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournamentsFromChannel(CasinoSOAPMultiCurrencyService.java:1567) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournaments(CasinoSOAPMultiCurrencyService.java:1545) at sun.reflect.GeneratedMethodAccessor4084.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) at casino.system.service.SoapCallWrapper.invokeMethod(SoapCallWrapper.java:78) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:333) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at casinomodule.servercommon.web.security.filter.IpCheckFilter.processRequest(IpCheckFilter.java:157) at casinomodule.servercommon.web.security.filter.IpCheckFilter.doFilter(IpCheckFilter.java:123) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:313) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:291) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:672) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:603) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:877) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:264) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) Locked ownable synchronizers: - None 2012-07-05 14:28:16 Full thread dump Java HotSpot(TM) Server VM (16.3-b01 mixed mode): "httpSSLWorkerThread-10080-221" daemon prio=3 tid=0x09197400 nid=0x1c1 waiting for monitor entry [0x23d5b000] java.lang.Thread.State: BLOCKED (on object monitor) at casinomodule.util.TimeUtilImpl.synchronizeWithDatabase(TimeUtilImpl.java:93) - waiting to lock <0x75b432d8> (a casinomodule.util.TimeUtilImpl) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:58) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:42) at casinomodule.core.domain.tournament.Occurrence.isLeaderboardActive(Occurrence.java:235) at casinomodule.core.logic.tournament.TournamentManager2Bean.skipToAddTournament(TournamentManager2Bean.java:656) at casinomodule.core.logic.tournament.TournamentManager2Bean.filterOccurencesByTickedbasedAndGameCategoryGroup(TournamentManager2Bean.java:602) at casinomodule.core.logic.tournament.TournamentManager2Bean.getGrantedOccurrences(TournamentManager2Bean.java:578) at casinomodule.core.logic.tournament.TournamentManager2Bean.getUserOccurrencesWithLeaderboardOpen(TournamentManager2Bean.java:1040) at sun.reflect.GeneratedMethodAccessor4087.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy108.getUserOccurrencesWithLeaderboardOpen(Unknown Source) at casinomodule.core.logic.casino.CasinoServiceBean.getClassicTournamentsForUser(CasinoServiceBean.java:1382) at sun.reflect.GeneratedMethodAccessor4086.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy207.getClassicTournamentsForUser(Unknown Source) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournamentsFromChannel(CasinoSOAPMultiCurrencyService.java:1567) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournaments(CasinoSOAPMultiCurrencyService.java:1545) at sun.reflect.GeneratedMethodAccessor4084.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) at casino.system.service.SoapCallWrapper.invokeMethod(SoapCallWrapper.java:78) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:333) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at casinomodule.servercommon.web.security.filter.IpCheckFilter.processRequest(IpCheckFilter.java:157) at casinomodule.servercommon.web.security.filter.IpCheckFilter.doFilter(IpCheckFilter.java:123) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:313) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:291) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:672) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:603) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:877) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:383) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:264) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) Locked ownable synchronizers: - None "httpSSLWorkerThread-10080-134" daemon prio=3 tid=0x0b38a800 nid=0x16a waiting for monitor entry [0x258e2000] java.lang.Thread.State: BLOCKED (on object monitor) at casinomodule.util.TimeUtilImpl.synchronizeWithDatabase(TimeUtilImpl.java:93) - locked <0x75b432d8> (a casinomodule.util.TimeUtilImpl) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:58) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:42) at casinomodule.core.domain.tournament.Occurrence.isLeaderboardActive(Occurrence.java:235) at casinomodule.core.logic.tournament.TournamentManager2Bean.skipToAddTournament(TournamentManager2Bean.java:656) at casinomodule.core.logic.tournament.TournamentManager2Bean.filterOccurencesByTickedbasedAndGameCategoryGroup(TournamentManager2Bean.java:602) at casinomodule.core.logic.tournament.TournamentManager2Bean.getGrantedOccurrences(TournamentManager2Bean.java:578) at casinomodule.core.logic.tournament.TournamentManager2Bean.getUserOccurrencesWithLeaderboardOpen(TournamentManager2Bean.java:1040) at sun.reflect.GeneratedMethodAccessor4087.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy108.getUserOccurrencesWithLeaderboardOpen(Unknown Source) at casinomodule.core.logic.casino.CasinoServiceBean.getClassicTournamentsForUser(CasinoServiceBean.java:1382) at sun.reflect.GeneratedMethodAccessor4086.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy207.getClassicTournamentsForUser(Unknown Source) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournamentsFromChannel(CasinoSOAPMultiCurrencyService.java:1567) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournaments(CasinoSOAPMultiCurrencyService.java:1545) at sun.reflect.GeneratedMethodAccessor4084.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) at casino.system.service.SoapCallWrapper.invokeMethod(SoapCallWrapper.java:78) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:333) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at casinomodule.servercommon.web.security.filter.IpCheckFilter.processRequest(IpCheckFilter.java:157) at casinomodule.servercommon.web.security.filter.IpCheckFilter.doFilter(IpCheckFilter.java:123) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:313) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:291) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:672) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:603) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:877) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:383) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:264) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) Locked ownable synchronizers: - None "httpSSLWorkerThread-10080-107" daemon prio=3 tid=0x0912f800 nid=0x14c waiting for monitor entry [0x26260000] java.lang.Thread.State: BLOCKED (on object monitor) at casinomodule.util.TimeUtilImpl.synchronizeWithDatabase(TimeUtilImpl.java:93) - waiting to lock <0x75b432d8> (a casinomodule.util.TimeUtilImpl) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:58) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:42) at casinomodule.core.domain.tournament.Occurrence.isLeaderboardActive(Occurrence.java:235) at casinomodule.core.logic.tournament.TournamentManager2Bean.skipToAddTournament(TournamentManager2Bean.java:656) at casinomodule.core.logic.tournament.TournamentManager2Bean.filterOccurencesByTickedbasedAndGameCategoryGroup(TournamentManager2Bean.java:602) at casinomodule.core.logic.tournament.TournamentManager2Bean.getGrantedOccurrences(TournamentManager2Bean.java:578) at casinomodule.core.logic.tournament.TournamentManager2Bean.getUserOccurrencesWithLeaderboardOpen(TournamentManager2Bean.java:1040) at sun.reflect.GeneratedMethodAccessor4087.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy108.getUserOccurrencesWithLeaderboardOpen(Unknown Source) at casinomodule.core.logic.casino.CasinoServiceBean.getClassicTournamentsForUser(CasinoServiceBean.java:1382) at sun.reflect.GeneratedMethodAccessor4086.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy207.getClassicTournamentsForUser(Unknown Source) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournamentsFromChannel(CasinoSOAPMultiCurrencyService.java:1567) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournaments(CasinoSOAPMultiCurrencyService.java:1545) at sun.reflect.GeneratedMethodAccessor4084.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) at casino.system.service.SoapCallWrapper.invokeMethod(SoapCallWrapper.java:78) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:333) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at casinomodule.servercommon.web.security.filter.IpCheckFilter.processRequest(IpCheckFilter.java:157) at casinomodule.servercommon.web.security.filter.IpCheckFilter.doFilter(IpCheckFilter.java:123) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:313) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:291) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:672) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:603) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:877) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:264) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) Locked ownable synchronizers: - None "httpSSLWorkerThread-10080-99" daemon prio=3 tid=0x0b310000 nid=0x144 waiting for monitor entry [0x264e8000] java.lang.Thread.State: BLOCKED (on object monitor) at casinomodule.util.TimeUtilImpl.synchronizeWithDatabase(TimeUtilImpl.java:93) - waiting to lock <0x75b432d8> (a casinomodule.util.TimeUtilImpl) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:58) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:42) at casinomodule.core.domain.tournament.Occurrence.isLeaderboardActive(Occurrence.java:235) at casinomodule.core.logic.tournament.TournamentManager2Bean.skipToAddTournament(TournamentManager2Bean.java:656) at casinomodule.core.logic.tournament.TournamentManager2Bean.filterOccurencesByTickedbasedAndGameCategoryGroup(TournamentManager2Bean.java:602) at casinomodule.core.logic.tournament.TournamentManager2Bean.getGrantedOccurrences(TournamentManager2Bean.java:578) at casinomodule.core.logic.tournament.TournamentManager2Bean.getUserOccurrencesWithLeaderboardOpen(TournamentManager2Bean.java:1040) at sun.reflect.GeneratedMethodAccessor4087.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy108.getUserOccurrencesWithLeaderboardOpen(Unknown Source) at casinomodule.core.logic.casino.CasinoServiceBean.getClassicTournamentsForUser(CasinoServiceBean.java:1382) at sun.reflect.GeneratedMethodAccessor4086.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy207.getClassicTournamentsForUser(Unknown Source) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournamentsFromChannel(CasinoSOAPMultiCurrencyService.java:1567) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournaments(CasinoSOAPMultiCurrencyService.java:1545) at sun.reflect.GeneratedMethodAccessor4084.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) at casino.system.service.SoapCallWrapper.invokeMethod(SoapCallWrapper.java:78) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:333) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at casinomodule.servercommon.web.security.filter.IpCheckFilter.processRequest(IpCheckFilter.java:157) at casinomodule.servercommon.web.security.filter.IpCheckFilter.doFilter(IpCheckFilter.java:123) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:313) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:291) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:672) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:603) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:877) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:264) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) Locked ownable synchronizers: - None "httpSSLWorkerThread-10080-45" daemon prio=3 tid=0x0a647000 nid=0x10e runnable [0x275fe000] java.lang.Thread.State: RUNNABLE at casinomodule.util.TimeUtilImpl.synchronizeWithDatabase(TimeUtilImpl.java:93) - locked <0x75b432d8> (a casinomodule.util.TimeUtilImpl) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:58) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:42) at casinomodule.core.domain.tournament.Occurrence.isLeaderboardActive(Occurrence.java:235) at casinomodule.core.logic.tournament.TournamentManager2Bean.skipToAddTournament(TournamentManager2Bean.java:656) at casinomodule.core.logic.tournament.TournamentManager2Bean.filterOccurencesByTickedbasedAndGameCategoryGroup(TournamentManager2Bean.java:602) at casinomodule.core.logic.tournament.TournamentManager2Bean.getGrantedOccurrences(TournamentManager2Bean.java:578) at casinomodule.core.logic.tournament.TournamentManager2Bean.getUserOccurrencesWithLeaderboardOpen(TournamentManager2Bean.java:1040) at sun.reflect.GeneratedMethodAccessor4087.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy108.getUserOccurrencesWithLeaderboardOpen(Unknown Source) at casinomodule.core.logic.casino.CasinoServiceBean.getClassicTournamentsForUser(CasinoServiceBean.java:1382) at sun.reflect.GeneratedMethodAccessor4086.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy207.getClassicTournamentsForUser(Unknown Source) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournamentsFromChannel(CasinoSOAPMultiCurrencyService.java:1567) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournaments(CasinoSOAPMultiCurrencyService.java:1545) at sun.reflect.GeneratedMethodAccessor4084.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) at casino.system.service.SoapCallWrapper.invokeMethod(SoapCallWrapper.java:78) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:333) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at casinomodule.servercommon.web.security.filter.IpCheckFilter.processRequest(IpCheckFilter.java:157) at casinomodule.servercommon.web.security.filter.IpCheckFilter.doFilter(IpCheckFilter.java:123) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:313) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:291) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:672) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:603) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:877) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:264) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) Locked ownable synchronizers: - None 2012-07-06 13:21:08 Full thread dump Java HotSpot(TM) Server VM (16.3-b01 mixed mode): "httpSSLWorkerThread-10080-221" daemon prio=3 tid=0x09197400 nid=0x1c1 runnable [0x23d5b000] java.lang.Thread.State: RUNNABLE at casinomodule.util.TimeUtilImpl.synchronizeWithDatabase(TimeUtilImpl.java:93) - locked <0x75b395d8> (a casinomodule.util.TimeUtilImpl) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:58) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:42) at casinomodule.core.domain.tournament.Occurrence.isLeaderboardActive(Occurrence.java:235) at casinomodule.core.logic.tournament.TournamentManager2Bean.skipToAddTournament(TournamentManager2Bean.java:656) at casinomodule.core.logic.tournament.TournamentManager2Bean.filterOccurencesByTickedbasedAndGameCategoryGroup(TournamentManager2Bean.java:602) at casinomodule.core.logic.tournament.TournamentManager2Bean.getGrantedOccurrences(TournamentManager2Bean.java:578) at casinomodule.core.logic.tournament.TournamentManager2Bean.getUserOccurrencesWithLeaderboardOpen(TournamentManager2Bean.java:1040) at sun.reflect.GeneratedMethodAccessor4087.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy108.getUserOccurrencesWithLeaderboardOpen(Unknown Source) at casinomodule.core.logic.casino.CasinoServiceBean.getClassicTournamentsForUser(CasinoServiceBean.java:1382) at sun.reflect.GeneratedMethodAccessor4086.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy207.getClassicTournamentsForUser(Unknown Source) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournamentsFromChannel(CasinoSOAPMultiCurrencyService.java:1567) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournaments(CasinoSOAPMultiCurrencyService.java:1545) at sun.reflect.GeneratedMethodAccessor4084.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) at casino.system.service.SoapCallWrapper.invokeMethod(SoapCallWrapper.java:78) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:333) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at casinomodule.servercommon.web.security.filter.IpCheckFilter.processRequest(IpCheckFilter.java:157) at casinomodule.servercommon.web.security.filter.IpCheckFilter.doFilter(IpCheckFilter.java:123) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:313) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:291) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:672) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:603) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:877) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:383) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:264) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) Locked ownable synchronizers: - None "httpSSLWorkerThread-10080-134" daemon prio=3 tid=0x0b38a800 nid=0x16a waiting for monitor entry [0x258e2000] java.lang.Thread.State: BLOCKED (on object monitor) at casinomodule.util.TimeUtilImpl.synchronizeWithDatabase(TimeUtilImpl.java:93) - locked <0x75b395d8> (a casinomodule.util.TimeUtilImpl) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:58) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:42) at casinomodule.core.domain.tournament.Occurrence.isLeaderboardActive(Occurrence.java:235) at casinomodule.core.logic.tournament.TournamentManager2Bean.skipToAddTournament(TournamentManager2Bean.java:656) at casinomodule.core.logic.tournament.TournamentManager2Bean.filterOccurencesByTickedbasedAndGameCategoryGroup(TournamentManager2Bean.java:602) at casinomodule.core.logic.tournament.TournamentManager2Bean.getGrantedOccurrences(TournamentManager2Bean.java:578) at casinomodule.core.logic.tournament.TournamentManager2Bean.getUserOccurrencesWithLeaderboardOpen(TournamentManager2Bean.java:1040) at sun.reflect.GeneratedMethodAccessor4087.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy108.getUserOccurrencesWithLeaderboardOpen(Unknown Source) at casinomodule.core.logic.casino.CasinoServiceBean.getClassicTournamentsForUser(CasinoServiceBean.java:1382) at sun.reflect.GeneratedMethodAccessor4086.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy207.getClassicTournamentsForUser(Unknown Source) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournamentsFromChannel(CasinoSOAPMultiCurrencyService.java:1567) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournaments(CasinoSOAPMultiCurrencyService.java:1545) at sun.reflect.GeneratedMethodAccessor4084.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) at casino.system.service.SoapCallWrapper.invokeMethod(SoapCallWrapper.java:78) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:333) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at casinomodule.servercommon.web.security.filter.IpCheckFilter.processRequest(IpCheckFilter.java:157) at casinomodule.servercommon.web.security.filter.IpCheckFilter.doFilter(IpCheckFilter.java:123) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:313) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:291) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:672) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:603) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:877) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:383) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:264) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) Locked ownable synchronizers: - None "httpSSLWorkerThread-10080-107" daemon prio=3 tid=0x0912f800 nid=0x14c waiting for monitor entry [0x26260000] java.lang.Thread.State: BLOCKED (on object monitor) at casinomodule.util.TimeUtilImpl.synchronizeWithDatabase(TimeUtilImpl.java:93) - waiting to lock <0x75b395d8> (a casinomodule.util.TimeUtilImpl) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:58) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:42) at casinomodule.core.domain.tournament.Occurrence.isLeaderboardActive(Occurrence.java:235) at casinomodule.core.logic.tournament.TournamentManager2Bean.skipToAddTournament(TournamentManager2Bean.java:656) at casinomodule.core.logic.tournament.TournamentManager2Bean.filterOccurencesByTickedbasedAndGameCategoryGroup(TournamentManager2Bean.java:602) at casinomodule.core.logic.tournament.TournamentManager2Bean.getGrantedOccurrences(TournamentManager2Bean.java:578) at casinomodule.core.logic.tournament.TournamentManager2Bean.getUserOccurrencesWithLeaderboardOpen(TournamentManager2Bean.java:1040) at sun.reflect.GeneratedMethodAccessor4087.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy108.getUserOccurrencesWithLeaderboardOpen(Unknown Source) at casinomodule.core.logic.casino.CasinoServiceBean.getClassicTournamentsForUser(CasinoServiceBean.java:1382) at sun.reflect.GeneratedMethodAccessor4086.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy207.getClassicTournamentsForUser(Unknown Source) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournamentsFromChannel(CasinoSOAPMultiCurrencyService.java:1567) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournaments(CasinoSOAPMultiCurrencyService.java:1545) at sun.reflect.GeneratedMethodAccessor4084.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) at casino.system.service.SoapCallWrapper.invokeMethod(SoapCallWrapper.java:78) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:333) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at casinomodule.servercommon.web.security.filter.IpCheckFilter.processRequest(IpCheckFilter.java:157) at casinomodule.servercommon.web.security.filter.IpCheckFilter.doFilter(IpCheckFilter.java:123) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:313) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:291) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:672) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:603) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:877) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:264) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) Locked ownable synchronizers: - None "httpSSLWorkerThread-10080-99" daemon prio=3 tid=0x0b310000 nid=0x144 waiting for monitor entry [0x264e8000] java.lang.Thread.State: BLOCKED (on object monitor) at casinomodule.util.TimeUtilImpl.synchronizeWithDatabase(TimeUtilImpl.java:93) - waiting to lock <0x75b395d8> (a casinomodule.util.TimeUtilImpl) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:58) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:42) at casinomodule.core.domain.tournament.Occurrence.isLeaderboardActive(Occurrence.java:235) at casinomodule.core.logic.tournament.TournamentManager2Bean.skipToAddTournament(TournamentManager2Bean.java:656) at casinomodule.core.logic.tournament.TournamentManager2Bean.filterOccurencesByTickedbasedAndGameCategoryGroup(TournamentManager2Bean.java:602) at casinomodule.core.logic.tournament.TournamentManager2Bean.getGrantedOccurrences(TournamentManager2Bean.java:578) at casinomodule.core.logic.tournament.TournamentManager2Bean.getUserOccurrencesWithLeaderboardOpen(TournamentManager2Bean.java:1040) at sun.reflect.GeneratedMethodAccessor4087.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy108.getUserOccurrencesWithLeaderboardOpen(Unknown Source) at casinomodule.core.logic.casino.CasinoServiceBean.getClassicTournamentsForUser(CasinoServiceBean.java:1382) at sun.reflect.GeneratedMethodAccessor4086.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy207.getClassicTournamentsForUser(Unknown Source) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournamentsFromChannel(CasinoSOAPMultiCurrencyService.java:1567) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournaments(CasinoSOAPMultiCurrencyService.java:1545) at sun.reflect.GeneratedMethodAccessor4084.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) at casino.system.service.SoapCallWrapper.invokeMethod(SoapCallWrapper.java:78) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:333) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at casinomodule.servercommon.web.security.filter.IpCheckFilter.processRequest(IpCheckFilter.java:157) at casinomodule.servercommon.web.security.filter.IpCheckFilter.doFilter(IpCheckFilter.java:123) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:313) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:291) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:672) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:603) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:877) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:264) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) Locked ownable synchronizers: - None "httpSSLWorkerThread-10080-45" daemon prio=3 tid=0x0a647000 nid=0x10e waiting for monitor entry [0x275fe000] java.lang.Thread.State: BLOCKED (on object monitor) at casinomodule.util.TimeUtilImpl.synchronizeWithDatabase(TimeUtilImpl.java:93) - waiting to lock <0x75b395d8> (a casinomodule.util.TimeUtilImpl) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:58) at casinomodule.util.TimeUtilImpl.getTime(TimeUtilImpl.java:42) at casinomodule.core.domain.tournament.Occurrence.isLeaderboardActive(Occurrence.java:235) at casinomodule.core.logic.tournament.TournamentManager2Bean.skipToAddTournament(TournamentManager2Bean.java:656) at casinomodule.core.logic.tournament.TournamentManager2Bean.filterOccurencesByTickedbasedAndGameCategoryGroup(TournamentManager2Bean.java:602) at casinomodule.core.logic.tournament.TournamentManager2Bean.getGrantedOccurrences(TournamentManager2Bean.java:578) at casinomodule.core.logic.tournament.TournamentManager2Bean.getUserOccurrencesWithLeaderboardOpen(TournamentManager2Bean.java:1040) at sun.reflect.GeneratedMethodAccessor4087.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy108.getUserOccurrencesWithLeaderboardOpen(Unknown Source) at casinomodule.core.logic.casino.CasinoServiceBean.getClassicTournamentsForUser(CasinoServiceBean.java:1382) at sun.reflect.GeneratedMethodAccessor4086.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4061) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.Invocation.proceed(Invocation.java:498) at casinomodule.servercommon.beancallmanager.BeanCallInterceptor.invoke(BeanCallInterceptor.java:57) at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:579) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:483) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:205) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4034) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83) at $Proxy207.getClassicTournamentsForUser(Unknown Source) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournamentsFromChannel(CasinoSOAPMultiCurrencyService.java:1567) at casino.system.service.CasinoSOAPMultiCurrencyService.getUserClassicTournaments(CasinoSOAPMultiCurrencyService.java:1545) at sun.reflect.GeneratedMethodAccessor4084.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) at casino.system.service.SoapCallWrapper.invokeMethod(SoapCallWrapper.java:78) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:333) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at casinomodule.servercommon.web.security.filter.IpCheckFilter.processRequest(IpCheckFilter.java:157) at casinomodule.servercommon.web.security.filter.IpCheckFilter.doFilter(IpCheckFilter.java:123) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:313) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:291) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:672) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:603) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:877) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:264) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) Locked ownable synchronizers: - None Here are some thread dumps taken at different time. During this period, only httpSSLWorkerThread-10080-99 can make progress. Other threads were always stuck in the synchronization point. And "waiting to lock <0x75b395d8>", this hex number changed several times. What does this number mean? Thanks a lot for your time. -- Sincerely yours and Best Regards, Xie Xiaodong From david.holmes at oracle.com Sun Jul 15 17:55:02 2012 From: david.holmes at oracle.com (David Holmes) Date: Mon, 16 Jul 2012 10:55:02 +1000 Subject: Are there any liveness issues about thread scheduling in the JVM? In-Reply-To: References: Message-ID: <50036666.8080707@oracle.com> On 10/07/2012 9:20 PM, Xie Xiaodong wrote: > > We are facing some interesting behavior in production. > Here are some thread dumps taken at different time. During this period, > only httpSSLWorkerThread-10080-99 can make progress. Other threads were > always stuck in the synchronization point. And "waiting to lock > <0x75b395d8>", this hex number changed several times. What does this number > mean? An example: - waiting to lock <0x75b395d8> (a casinomodule.util.TimeUtilImpl) The number is the address of an object that the threads are trying to lock. It is an instance of casinomodule.util.TimeUtilImpl. If the address, for a given thread, keeps changing, it means that the threads are in fact making progress, as they must have locked object form the previous stack dump and then moved on to the current one. If the number is different for different threads then they are simply trying to lock different objects. There would appears to be a synchronization bottleneck in this "casinomodule" David ----- > > Thanks a lot for your time. > > > From rednaxelafx at gmail.com Sun Jul 15 19:20:22 2012 From: rednaxelafx at gmail.com (Krystal Mok) Date: Mon, 16 Jul 2012 10:20:22 +0800 Subject: Are there any liveness issues about thread scheduling in the JVM? In-Reply-To: <50036666.8080707@oracle.com> References: <50036666.8080707@oracle.com> Message-ID: This is actually the source of my earlier mail "Multiple Java threads seem to have locked the same object monitor from the thread dumps" [1]. Apparently Xiaodong didn't subscribe to the mailing list before sending his mail to hotspot-dev, and while waiting for moderator approval he sent another mail directly to me... - Kris [1]: http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/2012-July/004106.html On Mon, Jul 16, 2012 at 8:55 AM, David Holmes wrote: > On 10/07/2012 9:20 PM, Xie Xiaodong wrote: > >> >> We are facing some interesting behavior in production. >> > > >> Here are some thread dumps taken at different time. During this period, >> only httpSSLWorkerThread-10080-99 can make progress. Other threads were >> always stuck in the synchronization point. And "waiting to lock >> <0x75b395d8>", this hex number changed several times. What does this >> number >> mean? >> > > An example: > > - waiting to lock <0x75b395d8> (a casinomodule.util.**TimeUtilImpl) > > The number is the address of an object that the threads are trying to > lock. It is an instance of casinomodule.util.**TimeUtilImpl. If the > address, for a given thread, keeps changing, it means that the threads are > in fact making progress, as they must have locked object form the previous > stack dump and then moved on to the current one. If the number is different > for different threads then they are simply trying to lock different objects. > > There would appears to be a synchronization bottleneck in this > "casinomodule" > > David > ----- > > >> Thanks a lot for your time. >> >> >> >> From david.holmes at oracle.com Sun Jul 15 19:54:42 2012 From: david.holmes at oracle.com (David Holmes) Date: Mon, 16 Jul 2012 12:54:42 +1000 Subject: Are there any liveness issues about thread scheduling in the JVM? In-Reply-To: References: <50036666.8080707@oracle.com> Message-ID: <50038272.8040706@oracle.com> On 16/07/2012 12:20 PM, Krystal Mok wrote: > This is actually the source of my earlier mail "Multiple Java threads > seem to have locked the same object monitor from the thread dumps" [1]. > Apparently Xiaodong didn't subscribe to the mailing list before sending > his mail to hotspot-dev, and while waiting for moderator approval he > sent another mail directly to me... I didn't see any mention in here of the same object claiming to be locked, so I didn't connect them. David ----- > - Kris > > [1]: > http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/2012-July/004106.html > > On Mon, Jul 16, 2012 at 8:55 AM, David Holmes > wrote: > > On 10/07/2012 9:20 PM, Xie Xiaodong wrote: > > > We are facing some interesting behavior in production. > > > > Here are some thread dumps taken at different time. During this > period, > only httpSSLWorkerThread-10080-99 can make progress. Other > threads were > always stuck in the synchronization point. And "waiting to lock > <0x75b395d8>", this hex number changed several times. What does > this number > mean? > > > An example: > > - waiting to lock <0x75b395d8> (a casinomodule.util.__TimeUtilImpl) > > The number is the address of an object that the threads are trying > to lock. It is an instance of casinomodule.util.__TimeUtilImpl. If > the address, for a given thread, keeps changing, it means that the > threads are in fact making progress, as they must have locked object > form the previous stack dump and then moved on to the current one. > If the number is different for different threads then they are > simply trying to lock different objects. > > There would appears to be a synchronization bottleneck in this > "casinomodule" > > David > ----- > > > Thanks a lot for your time. > > > > From xxd82329 at gmail.com Mon Jul 16 05:34:30 2012 From: xxd82329 at gmail.com (Xie Xiaodong) Date: Mon, 16 Jul 2012 14:34:30 +0200 Subject: Are there any liveness issues about thread scheduling in the JVM? In-Reply-To: <50038272.8040706@oracle.com> References: <50036666.8080707@oracle.com> <50038272.8040706@oracle.com> Message-ID: Hello, David and Krystal, I've seen your discussion in http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/2012-July/004106.html, thanks a lot for your attention. Unfortunately, this issue cannot be reproduced easily. And I've seen such scenarios twice, both were in production environment, when the lock was heavily contended. BR, Xiaodong Xie On Mon, Jul 16, 2012 at 4:54 AM, David Holmes wrote: > On 16/07/2012 12:20 PM, Krystal Mok wrote: > >> This is actually the source of my earlier mail "Multiple Java threads >> seem to have locked the same object monitor from the thread dumps" [1]. >> Apparently Xiaodong didn't subscribe to the mailing list before sending >> his mail to hotspot-dev, and while waiting for moderator approval he >> sent another mail directly to me... >> > > I didn't see any mention in here of the same object claiming to be locked, > so I didn't connect them. > > David > ----- > > - Kris >> >> [1]: >> http://mail.openjdk.java.net/**pipermail/hotspot-runtime-dev/** >> 2012-July/004106.html >> >> On Mon, Jul 16, 2012 at 8:55 AM, David Holmes > >> wrote: >> >> On 10/07/2012 9:20 PM, Xie Xiaodong wrote: >> >> >> We are facing some interesting behavior in production. >> >> >> >> Here are some thread dumps taken at different time. During this >> period, >> only httpSSLWorkerThread-10080-99 can make progress. Other >> threads were >> always stuck in the synchronization point. And "waiting to lock >> <0x75b395d8>", this hex number changed several times. What does >> this number >> mean? >> >> >> An example: >> >> - waiting to lock <0x75b395d8> (a casinomodule.util.__**TimeUtilImpl) >> >> >> The number is the address of an object that the threads are trying >> to lock. It is an instance of casinomodule.util.__**TimeUtilImpl. If >> >> the address, for a given thread, keeps changing, it means that the >> threads are in fact making progress, as they must have locked object >> form the previous stack dump and then moved on to the current one. >> If the number is different for different threads then they are >> simply trying to lock different objects. >> >> There would appears to be a synchronization bottleneck in this >> "casinomodule" >> >> David >> ----- >> >> >> Thanks a lot for your time. >> >> >> >> >> -- Sincerely yours and Best Regards, Xie Xiaodong From zhengyu.gu at oracle.com Mon Jul 16 07:39:47 2012 From: zhengyu.gu at oracle.com (Zhengyu Gu) Date: Mon, 16 Jul 2012 10:39:47 -0400 Subject: Code review request: three native memory tracking related bugs In-Reply-To: <50011873.8070806@oracle.com> References: <50007A62.4040801@oracle.com> <50011873.8070806@oracle.com> Message-ID: <500427B3.6020709@oracle.com> Hi David, On 7/14/2012 2:57 AM, David Holmes wrote: > On 14/07/2012 5:43 AM, Zhengyu Gu wrote: >> 7181989: NMT ON: Assertion failure when NMT checks thread's native >> CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7181989 >> Webrev: http://cr.openjdk.java.net/~zgu/7181989/webrev.00/ >> >> We try to assert Thread's stack base to ensure that >> Thread::record_stack_base_and_size() to record native stack to NMT, but >> there is scenario that the thread fails to start, which no native stack >> is created and should not be asserted. > > I'm not really clear on why we need to refer to the assert inside > stack_base(). If any started thread fails to setup the stackbase and > stacksize then it will likely crash well prior to the Thread > destructor. It seems to me that all that is needed here is to only > call MemTracker::record_virtual_memory_release for a thread that > actually started, and for that you can simplify the check to: > > if (os_thr != NULL && os_thr->get_state() > INITIALIZED) > > and so the whole thing can be expressed simply as: > > // Update NMT on Thread destruction, but only if the Thread > // actually started > OSThread* os_thr = osthread(); > if (os_thr != NULL && os_thr->get_state() > INITIALIZED) { > MemTracker::record_virtual_memory_release( > (stack_base() - stack_size()), stack_size(), this); > } Fair enough, since the assertion has yet caught anything, I assume that threads are calling record_stack_base_and_size(), so the assertion is not necessary. > >> 7181986: NMT ON: Assertion failure when running jdi >> ExpiredRequestDeletionTest >> CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7181986 >> Webrev: http://cr.openjdk.java.net/~zgu/7181986/webrev.00/ >> >> This is a racing condition when C/C++ runtime exit handler is ran >> before NMT worker thread exits. The exit handler calls _query_lock's >> destructor while NMT worker thread is still holding it. The fix is to >> make _query_lock a heap object, instead of static object, but the >> drawback is that, it does not seem that _query_lock can be safely >> deleted. >> >> Also, I reassigned MemSnaphot lock and query lock, so they participate >> in the deadlock detection logic. > > src/share/vm/services/memSnapshot.cpp > > We don't use std::nothrow when allocating other VM mutexes, and you > are not checking for allocation failures. > We do check "_lock == NULL" in out_of_memory(), which is not in the webrev. > Can't comment on whether the 'level' assigned to the mutexes is > appropriate - only testing and time will tell. > >> 7182543: NMT ON: Aggregate a few NMT related bugs >> CRhttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7182543 >> Webrev: http://cr.openjdk.java.net/~zgu/7182543/webrev.00/ >> >> - Fixed generations_in_used calculation >> - Wait MemRecorder instance count to drop to zero before completely >> shutdown NMT > > So previously the instance_count was only present in debug. Is this > likely to be a contention bottleneck? > >> - Added assertion for JavaThread in _thread_blocked state. > > Is the check for a safepoint needed? I'm assuming this assertion is > trying to verify that threads in _thread_blocked don't do > allocation/deallocation (though I'm unclear why the constraint > exists??). Whether a safepoint is presently active or not seems > irrelevant ?? > The initial assumption was that threads in _thread_blocked don't allocate/deallocate memory, but it is not the case ... Talked to Karen, the conclusion is that, NMT should just use ThreadCritical to block the threads in _thread_blocked state. Thanks, -Zhengyu > Cheers, > David > >> >> Thanks, >> >> -Zhengyu >> From zhengyu.gu at oracle.com Mon Jul 16 07:52:34 2012 From: zhengyu.gu at oracle.com (Zhengyu Gu) Date: Mon, 16 Jul 2012 10:52:34 -0400 Subject: Code review request: three native memory tracking related bugs In-Reply-To: <5000BF1B.6040105@oracle.com> References: <50007A62.4040801@oracle.com> <5000BF1B.6040105@oracle.com> Message-ID: <50042AB2.50100@oracle.com> Hi Vladmire, Thanks for reviewing. >> 7182543: NMT ON: Aggregate a few NMT related bugs >> CRhttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7182543 >> Webrev: http://cr.openjdk.java.net/~zgu/7182543/webrev.00/ > > I think the next should be guarantee() instead of check since all > MemRecorders should be deleted in preceding code: > > if (MemRecorder::_instance_count == 0) { > Not necessary true, it depends on when "shutdown_pending" flag is visible to a particular thread, that thread can still generate pending recorders when they are overflown. Thanks, -Zhengyu > Vladimir > >> >> - Fixed generations_in_used calculation >> - Wait MemRecorder instance count to drop to zero before completely >> shutdown NMT >> - Added assertion for JavaThread in _thread_blocked state. >> >> >> Thanks, >> >> -Zhengyu >> From zhengyu.gu at oracle.com Mon Jul 16 10:31:04 2012 From: zhengyu.gu at oracle.com (Zhengyu Gu) Date: Mon, 16 Jul 2012 13:31:04 -0400 Subject: Code review request: three native memory tracking related bugs In-Reply-To: <50007A62.4040801@oracle.com> References: <50007A62.4040801@oracle.com> Message-ID: <50044FD8.3080300@oracle.com> Thank you for reviewing. Followings are updated webrevs based on the comments http://cr.openjdk.java.net/~zgu/7181989/webrev.01/ http://cr.openjdk.java.net/~zgu/7181986/webrev.01/ http://cr.openjdk.java.net/~zgu/7182543/webrev.01/ Thanks, -Zhengyu On 7/13/2012 3:43 PM, Zhengyu Gu wrote: > 7181989: NMT ON: Assertion failure when NMT checks thread's native > CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7181989 > Webrev: http://cr.openjdk.java.net/~zgu/7181989/webrev.00/ > > We try to assert Thread's stack base to ensure that > Thread::record_stack_base_and_size() to record native stack to NMT, > but there is scenario that the thread fails to start, which no native > stack is created and should not be asserted. > > 7181986: NMT ON: Assertion failure when running jdi > ExpiredRequestDeletionTest > CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7181986 > Webrev: http://cr.openjdk.java.net/~zgu/7181986/webrev.00/ > > This is a racing condition when C/C++ runtime exit handler is ran > before NMT worker thread exits. The exit handler calls _query_lock's > destructor while NMT worker thread is still holding it. The fix is to > make _query_lock a heap object, instead of static object, but the > drawback is that, it does not seem that _query_lock can be safely > deleted. > > Also, I reassigned MemSnaphot lock and query lock, so they participate > in the deadlock detection logic. > > 7182543: NMT ON: Aggregate a few NMT related bugs > CRhttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7182543 > Webrev: http://cr.openjdk.java.net/~zgu/7182543/webrev.00/ > > - Fixed generations_in_used calculation > - Wait MemRecorder instance count to drop to zero before completely > shutdown NMT > - Added assertion for JavaThread in _thread_blocked state. > > > Thanks, > > -Zhengyu > From karen.kinnear at oracle.com Mon Jul 16 12:56:26 2012 From: karen.kinnear at oracle.com (Karen Kinnear) Date: Mon, 16 Jul 2012 15:56:26 -0400 Subject: Code review request: three native memory tracking related bugs In-Reply-To: <50044FD8.3080300@oracle.com> References: <50007A62.4040801@oracle.com> <50044FD8.3080300@oracle.com> Message-ID: Zhengyu, Thank you for the updates. A couple of comments below: On Jul 16, 2012, at 1:31 PM, Zhengyu Gu wrote: > Thank you for reviewing. Followings are updated webrevs based on the comments > > http://cr.openjdk.java.net/~zgu/7181989/webrev.01/ Looks good. > http://cr.openjdk.java.net/~zgu/7181986/webrev.01/ Still looking at. > > http://cr.openjdk.java.net/~zgu/7182543/webrev.01/ Looks good. Thank you for the changes. If you do another round to fix any bugs could you possibly change: memTracker.cpp: line 372 "to stop it while it happens" to "ensure no threads at safepoint create new records while the records are being gathered and the sequence number is changing" line 512/513 change "wait until" to "try at a later sync point to ensure" thanks, Karen > > > Thanks, > > -Zhengyu > > On 7/13/2012 3:43 PM, Zhengyu Gu wrote: >> 7181989: NMT ON: Assertion failure when NMT checks thread's native >> CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7181989 >> Webrev: http://cr.openjdk.java.net/~zgu/7181989/webrev.00/ >> >> We try to assert Thread's stack base to ensure that Thread::record_stack_base_and_size() to record native stack to NMT, but there is scenario that the thread fails to start, which no native stack is created and should not be asserted. >> >> 7181986: NMT ON: Assertion failure when running jdi ExpiredRequestDeletionTest >> CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7181986 >> Webrev: http://cr.openjdk.java.net/~zgu/7181986/webrev.00/ >> >> This is a racing condition when C/C++ runtime exit handler is ran >> before NMT worker thread exits. The exit handler calls _query_lock's >> destructor while NMT worker thread is still holding it. The fix is to >> make _query_lock a heap object, instead of static object, but the >> drawback is that, it does not seem that _query_lock can be safely deleted. >> >> Also, I reassigned MemSnaphot lock and query lock, so they participate in the deadlock detection logic. >> >> 7182543: NMT ON: Aggregate a few NMT related bugs >> CRhttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7182543 >> Webrev: http://cr.openjdk.java.net/~zgu/7182543/webrev.00/ >> >> - Fixed generations_in_used calculation >> - Wait MemRecorder instance count to drop to zero before completely shutdown NMT >> - Added assertion for JavaThread in _thread_blocked state. >> >> >> Thanks, >> >> -Zhengyu >> From david.holmes at oracle.com Mon Jul 16 18:12:58 2012 From: david.holmes at oracle.com (David Holmes) Date: Tue, 17 Jul 2012 11:12:58 +1000 Subject: Code review request: three native memory tracking related bugs In-Reply-To: <50044FD8.3080300@oracle.com> References: <50007A62.4040801@oracle.com> <50044FD8.3080300@oracle.com> Message-ID: <5004BC1A.4040105@oracle.com> On 17/07/2012 3:31 AM, Zhengyu Gu wrote: > Thank you for reviewing. Followings are updated webrevs based on the > comments > > http://cr.openjdk.java.net/~zgu/7181989/webrev.01/ Ok. > http://cr.openjdk.java.net/~zgu/7181986/webrev.01/ src/share/vm/services/memSnapshot.cpp I don't understand your memory-management strategy in the MemSnapshot code. In the constructor you don't check if any of the allocations are successful. You check for null and bypass the action in some places ( eg merge() wrt _staging_area), but assert that it is not null in others (eg. promote()), and don't check at all in others (eg print_snapshot_stats()). It is far from clear if those latter functions will never be reached if some of those values are null. Also if _lock is null, you will simply not lock! - which doesn't seem right. > http://cr.openjdk.java.net/~zgu/7182543/webrev.01/ It is difficult to gauge the full implications of using ThreadCritical. I would not be surprised is there is a potential problem with assertion failures while holding the ThreadCritical. But this is little different to other debug option combinations that can cause secondary failures/hangs during error reporting. David ----- > > > Thanks, > > -Zhengyu > > On 7/13/2012 3:43 PM, Zhengyu Gu wrote: >> 7181989: NMT ON: Assertion failure when NMT checks thread's native >> CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7181989 >> Webrev: http://cr.openjdk.java.net/~zgu/7181989/webrev.00/ >> >> We try to assert Thread's stack base to ensure that >> Thread::record_stack_base_and_size() to record native stack to NMT, >> but there is scenario that the thread fails to start, which no native >> stack is created and should not be asserted. >> >> 7181986: NMT ON: Assertion failure when running jdi >> ExpiredRequestDeletionTest >> CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7181986 >> Webrev: http://cr.openjdk.java.net/~zgu/7181986/webrev.00/ >> >> This is a racing condition when C/C++ runtime exit handler is ran >> before NMT worker thread exits. The exit handler calls _query_lock's >> destructor while NMT worker thread is still holding it. The fix is to >> make _query_lock a heap object, instead of static object, but the >> drawback is that, it does not seem that _query_lock can be safely >> deleted. >> >> Also, I reassigned MemSnaphot lock and query lock, so they participate >> in the deadlock detection logic. >> >> 7182543: NMT ON: Aggregate a few NMT related bugs >> CRhttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7182543 >> Webrev: http://cr.openjdk.java.net/~zgu/7182543/webrev.00/ >> >> - Fixed generations_in_used calculation >> - Wait MemRecorder instance count to drop to zero before completely >> shutdown NMT >> - Added assertion for JavaThread in _thread_blocked state. >> >> >> Thanks, >> >> -Zhengyu >> From neil.richards at ngmr.net Tue Jul 17 00:58:02 2012 From: neil.richards at ngmr.net (Neil Richards) Date: Tue, 17 Jul 2012 08:58:02 +0100 Subject: Sample doxygen configuration, output for VM interfaces In-Reply-To: <1336669461.14918.58.camel@chalkhill> References: <1336648134.23106.99.camel@chalkhill> <1336669461.14918.58.camel@chalkhill> Message-ID: <1342511882.28179.13.camel@chalkhill> Hi all, I've uploaded (a webrev of) a sample doxygen configuration file [1], together with the HTML documentation it generates for the (otherwise undocumented) artifacts defined in the header files under jdk/src/share/javavm/export and jdk/src/share/solaris/javavm/export [2]. Whilst the creation of the descriptive documentation for these artifacts is yet to be created, nevertheless I hope that this gives some indication of the structure / nature in which this information would be presented using this approach. I think the next step will be to make changes to the jdk/make/docs makefile, to pick up settings from there to generate the doxygen configuration file (for the platform currently being built) and then drive its use (in the situation where doxygen is available, naturally). Please cast your eyes over this stuff - all feedback gratefully received. Thanks, Neil [1] http://cr.openjdk.java.net/~ngmr/vmi.00/webrev/ [2] http://cr.openjdk.java.net/~ngmr/vmi.00/html/ -- Unless stated above: IBM email: neil_richards at uk.ibm.com IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU From zhengyu.gu at oracle.com Tue Jul 17 06:40:44 2012 From: zhengyu.gu at oracle.com (Zhengyu Gu) Date: Tue, 17 Jul 2012 09:40:44 -0400 Subject: Code review request: three native memory tracking related bugs In-Reply-To: <5004BC1A.4040105@oracle.com> References: <50007A62.4040801@oracle.com> <50044FD8.3080300@oracle.com> <5004BC1A.4040105@oracle.com> Message-ID: <50056B5C.5060600@oracle.com> http://cr.openjdk.java.net/~zgu/7181986/webrev.01/ > > src/share/vm/services/memSnapshot.cpp > > I don't understand your memory-management strategy in the MemSnapshot > code. In the constructor you don't check if any of the allocations are > successful. You check for null and bypass the action in some places ( > eg merge() wrt _staging_area), but assert that it is not null in > others (eg. promote()), and don't check at all in others (eg > print_snapshot_stats()). It is far from clear if those latter > functions will never be reached if some of those values are null. Also > if _lock is null, you will simply not lock! - which doesn't seem right. > As a requirement, NMT is a secondary functionality, which means that it should not cause VM to exit when it encounters error. In MemTracker::start() method, it uses 'nothrow new' to instantiate MemSnapshot and performs out of memory checking, which checks MemSnapshot object and all allocations inside constructor (snapshot == NULL || snapshot->out_of_memory()), if OOM is encountered, it shuts down NMT. In short, when NMT state >= started, snapshot lock != NULL. merge() merges recorders into _staging_area and _staging_area is expandable, so OOM checking is needed. promote() promotes _staging_area into snapshot, can only be reached when staging phase is successfully completed, and _staging_area is read-only during promotion, that's why OOM checking on _staging_area is not necessary, while any insertion failures to snapshot indicates OOM condition, that also results shutting down NMT. Again, if _lock == null, NMT can never transition to started state, so locking can never happen. >> http://cr.openjdk.java.net/~zgu/7182543/webrev.01/ > > It is difficult to gauge the full implications of using > ThreadCritical. I would not be surprised is there is a potential > problem with assertion failures while holding the ThreadCritical. But > this is little different to other debug option combinations that can > cause secondary failures/hangs during error reporting. > ThreadCritical is also used to block none JavaThread, if it is the case, we have to rethink what lock is proper. Thanks, -Zhengyu > David > ----- > >> >> >> Thanks, >> >> -Zhengyu >> >> On 7/13/2012 3:43 PM, Zhengyu Gu wrote: >>> 7181989: NMT ON: Assertion failure when NMT checks thread's native >>> CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7181989 >>> Webrev: http://cr.openjdk.java.net/~zgu/7181989/webrev.00/ >>> >>> We try to assert Thread's stack base to ensure that >>> Thread::record_stack_base_and_size() to record native stack to NMT, >>> but there is scenario that the thread fails to start, which no native >>> stack is created and should not be asserted. >>> >>> 7181986: NMT ON: Assertion failure when running jdi >>> ExpiredRequestDeletionTest >>> CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7181986 >>> Webrev: http://cr.openjdk.java.net/~zgu/7181986/webrev.00/ >>> >>> This is a racing condition when C/C++ runtime exit handler is ran >>> before NMT worker thread exits. The exit handler calls _query_lock's >>> destructor while NMT worker thread is still holding it. The fix is to >>> make _query_lock a heap object, instead of static object, but the >>> drawback is that, it does not seem that _query_lock can be safely >>> deleted. >>> >>> Also, I reassigned MemSnaphot lock and query lock, so they participate >>> in the deadlock detection logic. >>> >>> 7182543: NMT ON: Aggregate a few NMT related bugs >>> CRhttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7182543 >>> Webrev: http://cr.openjdk.java.net/~zgu/7182543/webrev.00/ >>> >>> - Fixed generations_in_used calculation >>> - Wait MemRecorder instance count to drop to zero before completely >>> shutdown NMT >>> - Added assertion for JavaThread in _thread_blocked state. >>> >>> >>> Thanks, >>> >>> -Zhengyu >>> From jiangli.zhou at oracle.com Tue Jul 17 12:43:00 2012 From: jiangli.zhou at oracle.com (jiangli.zhou at oracle.com) Date: Tue, 17 Jul 2012 19:43:00 +0000 Subject: hg: hsx/hotspot-main/hotspot: 6 new changesets Message-ID: <20120717194312.66A37470DC@hg.openjdk.java.net> Changeset: 8150fa46d2ed Author: jiangli Date: 2012-06-26 19:08 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/8150fa46d2ed 7178145: Change constMethodOop::_exception_table to optionally inlined u2 table. Summary: Change constMethodOop::_exception_table to optionally inlined u2 table. Reviewed-by: bdelsart, coleenp, kamg ! agent/src/share/classes/sun/jvm/hotspot/oops/ConstMethod.java + agent/src/share/classes/sun/jvm/hotspot/oops/ExceptionTableElement.java ! agent/src/share/classes/sun/jvm/hotspot/oops/GenerateOopMap.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Method.java ! agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java ! agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java ! src/share/vm/ci/ciMethod.cpp ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/classFileParser.hpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/classfile/verifier.cpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/memory/dump.cpp ! src/share/vm/memory/oopFactory.cpp ! src/share/vm/memory/oopFactory.hpp ! src/share/vm/oops/constMethodKlass.cpp ! src/share/vm/oops/constMethodKlass.hpp ! src/share/vm/oops/constMethodOop.cpp ! src/share/vm/oops/constMethodOop.hpp ! src/share/vm/oops/generateOopMap.cpp ! src/share/vm/oops/methodOop.cpp ! src/share/vm/oops/methodOop.hpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/jvmtiClassFileReconstituter.cpp ! src/share/vm/prims/jvmtiRedefineClasses.cpp ! src/share/vm/prims/methodHandleWalk.cpp ! src/share/vm/runtime/relocator.cpp ! src/share/vm/runtime/vmStructs.cpp Changeset: f0b82641fb7e Author: bdelsart Date: 2012-07-02 04:19 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/f0b82641fb7e Merge ! src/share/vm/classfile/verifier.cpp ! src/share/vm/memory/dump.cpp ! src/share/vm/runtime/vmStructs.cpp Changeset: d68b1274b9ba Author: jiangli Date: 2012-07-05 18:47 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/d68b1274b9ba 7180914: Compilation warning after: 7172967: Eliminate the constMethod's _method backpointer to the methodOop. Summary: Use read_pointer(J...) to access from 'constMethod' base in name_for_methodOop(), libjvm_db.c. Reviewed-by: kvn, coleenp ! src/os/solaris/dtrace/libjvm_db.c Changeset: 161ae369407d Author: jiangli Date: 2012-07-05 20:54 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/161ae369407d 7181632: nsk classLoad001_14 failure and CompileTheWorld crash after 7178145. Summary: Need to copy the inlined exception table to the new constMethodOop during method rewriting. Reviewed-by: coleenp, dholmes ! src/share/vm/oops/methodOop.cpp Changeset: e74da3c2b827 Author: jiangli Date: 2012-07-13 20:14 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/e74da3c2b827 Merge ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/oops/methodOop.hpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/jvmtiClassFileReconstituter.cpp ! src/share/vm/prims/jvmtiRedefineClasses.cpp ! src/share/vm/runtime/vmStructs.cpp Changeset: 0bca41b2fa63 Author: jiangli Date: 2012-07-17 12:32 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/0bca41b2fa63 Merge From zhengyu.gu at oracle.com Tue Jul 17 13:25:22 2012 From: zhengyu.gu at oracle.com (Zhengyu Gu) Date: Tue, 17 Jul 2012 16:25:22 -0400 Subject: Code review request: CR 7152671 RFE: Windows decoder should add some std dirs to the symbol search path Message-ID: <5005CA32.2000505@oracle.com> Hi, This enhancement is in the context of Full Debug Symbols support. $JAVA_HOME/lib and $JAVA_HOME/jre/lib directories are added to search path for matching pdb files, that contain symbols to decode native stacks. CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7152671 Webrev: http://cr.openjdk.java.net/~zgu/7152671/webrev.00/ Thanks, -Zhengyu From jon.masamitsu at oracle.com Tue Jul 17 16:08:42 2012 From: jon.masamitsu at oracle.com (jon.masamitsu at oracle.com) Date: Tue, 17 Jul 2012 23:08:42 +0000 Subject: hg: hsx/hotspot-main/hotspot: 3 new changesets Message-ID: <20120717230853.0603E470E5@hg.openjdk.java.net> Changeset: 922993931b3d Author: brutisso Date: 2012-07-11 22:47 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause Summary: Also reviewed by: vitalyd at gmail.com. Move the timing out of G1CollectorPolicy into the G1GCPhaseTimes class Reviewed-by: johnc ! src/share/vm/gc_implementation/g1/concurrentG1Refine.cpp ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp + src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp + src/share/vm/gc_implementation/g1/g1GCPhaseTimes.hpp ! src/share/vm/gc_implementation/g1/g1RemSet.cpp Changeset: 3a431b605145 Author: jmasa Date: 2012-07-16 13:00 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/3a431b605145 Merge ! src/share/vm/gc_implementation/g1/concurrentG1Refine.cpp ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp + src/share/vm/gc_implementation/g1/g1GCPhaseTimes.hpp ! src/share/vm/gc_implementation/g1/g1RemSet.cpp Changeset: 7553d441b878 Author: jmasa Date: 2012-07-17 14:33 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/7553d441b878 Merge From david.holmes at oracle.com Tue Jul 17 16:30:11 2012 From: david.holmes at oracle.com (David Holmes) Date: Wed, 18 Jul 2012 09:30:11 +1000 Subject: Code review request: three native memory tracking related bugs In-Reply-To: <50056B5C.5060600@oracle.com> References: <50007A62.4040801@oracle.com> <50044FD8.3080300@oracle.com> <5004BC1A.4040105@oracle.com> <50056B5C.5060600@oracle.com> Message-ID: <5005F583.5050409@oracle.com> Hi Zhengyu, On 17/07/2012 11:40 PM, Zhengyu Gu wrote: > > http://cr.openjdk.java.net/~zgu/7181986/webrev.01/ >> >> src/share/vm/services/memSnapshot.cpp >> >> I don't understand your memory-management strategy in the MemSnapshot >> code. In the constructor you don't check if any of the allocations are >> successful. You check for null and bypass the action in some places ( >> eg merge() wrt _staging_area), but assert that it is not null in >> others (eg. promote()), and don't check at all in others (eg >> print_snapshot_stats()). It is far from clear if those latter >> functions will never be reached if some of those values are null. Also >> if _lock is null, you will simply not lock! - which doesn't seem right. >> > As a requirement, NMT is a secondary functionality, which means that it > should not cause VM to exit when it encounters error. > > In MemTracker::start() method, it uses 'nothrow new' to instantiate > MemSnapshot and performs out of memory checking, which checks > MemSnapshot object and all allocations inside constructor (snapshot == > NULL || snapshot->out_of_memory()), if OOM is encountered, it shuts down > NMT. In short, when NMT state >= started, snapshot lock != NULL. Thanks for clarifying that. David ----- > merge() merges recorders into _staging_area and _staging_area is > expandable, so OOM checking is needed. promote() promotes _staging_area > into snapshot, can only be reached when staging phase is successfully > completed, and _staging_area is read-only during promotion, that's why > OOM checking on _staging_area is not necessary, while any insertion > failures to snapshot indicates OOM condition, that also results shutting > down NMT. > > Again, if _lock == null, NMT can never transition to started state, so > locking can never happen. > > >>> http://cr.openjdk.java.net/~zgu/7182543/webrev.01/ >> >> It is difficult to gauge the full implications of using >> ThreadCritical. I would not be surprised is there is a potential >> problem with assertion failures while holding the ThreadCritical. But >> this is little different to other debug option combinations that can >> cause secondary failures/hangs during error reporting. >> > ThreadCritical is also used to block none JavaThread, if it is the case, > we have to rethink what lock is proper. > > Thanks, > > -Zhengyu > > >> David >> ----- >> >>> >>> >>> Thanks, >>> >>> -Zhengyu >>> >>> On 7/13/2012 3:43 PM, Zhengyu Gu wrote: >>>> 7181989: NMT ON: Assertion failure when NMT checks thread's native >>>> CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7181989 >>>> Webrev: http://cr.openjdk.java.net/~zgu/7181989/webrev.00/ >>>> >>>> We try to assert Thread's stack base to ensure that >>>> Thread::record_stack_base_and_size() to record native stack to NMT, >>>> but there is scenario that the thread fails to start, which no native >>>> stack is created and should not be asserted. >>>> >>>> 7181986: NMT ON: Assertion failure when running jdi >>>> ExpiredRequestDeletionTest >>>> CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7181986 >>>> Webrev: http://cr.openjdk.java.net/~zgu/7181986/webrev.00/ >>>> >>>> This is a racing condition when C/C++ runtime exit handler is ran >>>> before NMT worker thread exits. The exit handler calls _query_lock's >>>> destructor while NMT worker thread is still holding it. The fix is to >>>> make _query_lock a heap object, instead of static object, but the >>>> drawback is that, it does not seem that _query_lock can be safely >>>> deleted. >>>> >>>> Also, I reassigned MemSnaphot lock and query lock, so they participate >>>> in the deadlock detection logic. >>>> >>>> 7182543: NMT ON: Aggregate a few NMT related bugs >>>> CRhttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7182543 >>>> Webrev: http://cr.openjdk.java.net/~zgu/7182543/webrev.00/ >>>> >>>> - Fixed generations_in_used calculation >>>> - Wait MemRecorder instance count to drop to zero before completely >>>> shutdown NMT >>>> - Added assertion for JavaThread in _thread_blocked state. >>>> >>>> >>>> Thanks, >>>> >>>> -Zhengyu >>>> From mjw at redhat.com Wed Jul 18 07:10:45 2012 From: mjw at redhat.com (Mark Wielaard) Date: Wed, 18 Jul 2012 16:10:45 +0200 Subject: [PATCH 0 of 3] Add support for dtrace compatible sdt probes on GNU/Linux In-Reply-To: <4FBD1D76.90206@oracle.com> References: <4FABE435.3070101@oracle.com> <1336982811.3015.1.camel@springer.wildebeest.org> <4FB10B9E.8060500@oracle.com> <20120517192555.GB2423@toonder.wildebeest.org> <4FB58E19.8070002@oracle.com> <4FB5D481.2060307@oracle.com> <4FB5EC9D.10302@oracle.com> <1337592522.3408.16.camel@springer.wildebeest.org> <4FBB07C1.8000302@oracle.com> <4FBB15A2.7090808@oracle.com> <4FBB3555.2080607@oracle.com> <4FBCB9C7.3000304@oracle.com> <4FBCE2B0.3050201@oracle.com> <1337779575.3002.6.camel@springer.wildebeest.org> <4FBCE92C.8010708@oracle.com> <1337781400.3002.17.camel@springer.wildebeest.org> <4FBCF2CF.9000301@oracle.com> <1337789969.3002.25.camel@springer.wildebeest.org> <4FBD0FFE.6060402@oracle.com> <4FBD1D76.90206@oracle.com> Message-ID: <1342620645.3058.63.camel@springer.wildebeest.org> Hi, What is the status of integrating these patches? Is there anything more I can do to help get these in? Thanks, Mark From serguei.spitsyn at oracle.com Wed Jul 18 10:10:43 2012 From: serguei.spitsyn at oracle.com (serguei.spitsyn at oracle.com) Date: Wed, 18 Jul 2012 10:10:43 -0700 Subject: [PATCH 0 of 3] Add support for dtrace compatible sdt probes on GNU/Linux In-Reply-To: <1342620645.3058.63.camel@springer.wildebeest.org> References: <4FABE435.3070101@oracle.com> <1336982811.3015.1.camel@springer.wildebeest.org> <4FB10B9E.8060500@oracle.com> <20120517192555.GB2423@toonder.wildebeest.org> <4FB58E19.8070002@oracle.com> <4FB5D481.2060307@oracle.com> <4FB5EC9D.10302@oracle.com> <1337592522.3408.16.camel@springer.wildebeest.org> <4FBB07C1.8000302@oracle.com> <4FBB15A2.7090808@oracle.com> <4FBB3555.2080607@oracle.com> <4FBCB9C7.3000304@oracle.com> <4FBCE2B0.3050201@oracle.com> <1337779575.3002.6.camel@springer.wildebeest.org> <4FBCE92C.8010708@oracle.com> <1337781400.3002.17.camel@springer.wildebeest.org> <4FBCF2CF.9000301@oracle.com> <1337789969.3002.25.camel@springer.wildebeest.org> <4FBD0FFE.6060402@oracle.com> <4FBD1D76.90206@oracle.com> <1342620645.3058.63.camel@springer.wildebeest.org> Message-ID: <5006EE13.6000406@oracle.com> Hi Mark, Sorry for taking so long to get back to you. This work includes investigation to find proper linux machine, installation of the systemTap, building and testing, and so, needs some engineering resources. Also, it needs a new unit test and submitting a CCC request. You only can help by providing a test for the patch. I've discussed it with my manager and got clear message that this work has to be included into planning and prioritized first. I'll check if any short-cut is possible. Sorry for this latency. Thanks, Serguei On 7/18/12 7:10 AM, Mark Wielaard wrote: > Hi, > > What is the status of integrating these patches? > Is there anything more I can do to help get these in? > > Thanks, > > Mark From mjw at redhat.com Wed Jul 18 10:23:07 2012 From: mjw at redhat.com (Mark Wielaard) Date: Wed, 18 Jul 2012 19:23:07 +0200 Subject: [PATCH 0 of 3] Add support for dtrace compatible sdt probes on GNU/Linux In-Reply-To: <5006EE13.6000406@oracle.com> References: <4FBCE2B0.3050201@oracle.com> <1337779575.3002.6.camel@springer.wildebeest.org> <4FBCE92C.8010708@oracle.com> <1337781400.3002.17.camel@springer.wildebeest.org> <4FBCF2CF.9000301@oracle.com> <1337789969.3002.25.camel@springer.wildebeest.org> <4FBD0FFE.6060402@oracle.com> <4FBD1D76.90206@oracle.com> <1342620645.3058.63.camel@springer.wildebeest.org> <5006EE13.6000406@oracle.com> Message-ID: <20120718172306.GA4153@toonder.wildebeest.org> On Wed, Jul 18, 2012 at 10:10:43AM -0700, serguei.spitsyn at oracle.com wrote: > This work includes investigation to find proper linux machine, > installation of the systemTap, building and testing, and so, > needs some engineering resources. I can do that, the patch has already been included in various distros so it shouldn't be a problem. Just let me know what you need. > Also, it needs a new unit test and submitting a CCC request. > You only can help by providing a test for the patch. Sure, I was looking for existing dtrace tests to see if I can match them. Do you have a good example I can follow? Thanks, Mark From serguei.spitsyn at oracle.com Wed Jul 18 11:41:34 2012 From: serguei.spitsyn at oracle.com (serguei.spitsyn at oracle.com) Date: Wed, 18 Jul 2012 11:41:34 -0700 Subject: [PATCH 0 of 3] Add support for dtrace compatible sdt probes on GNU/Linux In-Reply-To: <20120718172306.GA4153@toonder.wildebeest.org> References: <4FBCE2B0.3050201@oracle.com> <1337779575.3002.6.camel@springer.wildebeest.org> <4FBCE92C.8010708@oracle.com> <1337781400.3002.17.camel@springer.wildebeest.org> <4FBCF2CF.9000301@oracle.com> <1337789969.3002.25.camel@springer.wildebeest.org> <4FBD0FFE.6060402@oracle.com> <4FBD1D76.90206@oracle.com> <1342620645.3058.63.camel@springer.wildebeest.org> <5006EE13.6000406@oracle.com> <20120718172306.GA4153@toonder.wildebeest.org> Message-ID: <5007035E.8070602@oracle.com> On 7/18/12 10:23 AM, Mark Wielaard wrote: > On Wed, Jul 18, 2012 at 10:10:43AM -0700, serguei.spitsyn at oracle.com wrote: >> This work includes investigation to find proper linux machine, >> installation of the systemTap, building and testing, and so, >> needs some engineering resources. > I can do that, the patch has already been included in various > distros so it shouldn't be a problem. Just let me know what you > need. > >> Also, it needs a new unit test and submitting a CCC request. >> You only can help by providing a test for the patch. > Sure, I was looking for existing dtrace tests to see if I can > match them. Do you have a good example I can follow? > > Thanks, > > Mark Normally a dtrace test needs 4 parts: java test program, d-script, shell script and README All automated dtrace tests usually depend on the SQE testbase environment: .cfg file, testbase libraries and testbase build system So that, I do not have a simple standalone test for the HotSpot probes. But I can provide an example (just make a correction on this kind of dependency). The test ThreadLifecycle001 includes ThreadLifecycle.d, Please, see below and let me know if you have any questions. I can send you more examples if needed. Thanks, Serguei % cat ThreadLifecycle.d #!/usr/sbin/dtrace -Zs #pragma D option quiet #pragma D option destructive /* %W% %G% * Copyright %G% Sun Microsystems, Inc. */ /* * The script trace hotspot:::thread-start and hotspot:::thread-stop events. */ self char *str_ptr; self string thread_name; :::BEGIN { TEST_NAME = "Thread lifecycle"; TEST_PASS = 1; EXIT_CODE_PASS = 0; EXIT_CODE_FAIL = 1; printf("BEGIN %s probes testing\n\n", TEST_NAME); } /* * hotspot:::thread-start, hotspot:::thread-stop probe arguments: * arg0: char*, thread name passed as UTF8 string * arg1: uintptr_t, thread name length * arg2: uintptr_t, Java thread id * arg3: uintptr_t, native/OS thread id * arg4: uintptr_t, is a daemon or not */ /* Check is_daemon is correct */ hotspot$target:::thread-start, hotspot$target:::thread-stop / arg4 > 1 / { TEST_PASS = 0; printf("FAIL: wrong is_daemon=%u is passed in %s\n", arg4, probename); } hotspot$target:::thread-start { THREAD_START_CNT ++; } hotspot$target:::thread-stop { THREAD_STOP_CNT ++; } hotspot$target:::thread-start, hotspot$target:::thread-stop { /* Yes, we copy for one byte more from user space. This is temporal solution till support for * not-null terminated strings will be donein DTRACE */ self->str_ptr = (char*) copyin(arg0, arg1+1); self->str_ptr[arg1] = '\0'; self->thread_name = (string) self->str_ptr; printf("\nPROBE ARGS: %s:\n", probename); printf("PROBE ARGS: arg0=%p (thread name pointer)\n", arg0); printf("PROBE ARGS: arg1=%u (thread name length)\n", arg1); printf("PROBE ARGS: arg2=%u (Java thread id)\n", arg2); printf("PROBE ARGS: arg3=%u (native/OS id)\n", arg3); printf("PROBE ARGS: arg4=%u (is daemon)\n", arg4); /* this output will be used by Perl script */ printf("%s: id=%u, is_daemon=%u, name=%s\n", probename, arg2, arg4, self->thread_name); } /* check exit status of traced java process */ syscall::rexit:entry /pid == $target && arg0 != 0 && arg0 != 95 / { printf("\n"); printf("ERROR: java process failed with status=%d\n", arg0); TEST_PASS = 0; } syscall::rexit:entry /pid == $target && !THREAD_START_CNT/ { printf("ERROR: no 'thread-start' probes were fired\n"); TEST_PASS = 0; } syscall::rexit:entry /pid == $target && !THREAD_STOP_CNT/ { printf("ERROR: no 'thread-stop' probes were fired\n"); TEST_PASS = 0; } syscall::rexit:entry /pid == $target && !TEST_PASS/ { printf("FAIL\n"); exit(EXIT_CODE_FAIL); } syscall::rexit:entry /pid == $target && TEST_PASS/ { printf("PASS\n"); exit(EXIT_CODE_PASS); } :::END { printf("\nEND %s tracing\n", TEST_NAME); } sspitsyn at hsdev-10 more *.* | cat :::::::::::::: ThreadLifecycle001.cfg :::::::::::::: # %W% %G% # Copyright %G% Sun Microsystems, Inc. DSCRIPT=${TESTBASE}/src/dtrace/share/dscripts/hotspot/ThreadLifecycle.d EXECUTE_CLASS=dtrace.hotspot.ThreadLifecycle.ThreadLifecycle001.ThreadLifecycle001 export DSCRIPT export JAVA export JAVA_OPTS export TESTDIR export TEST_ARGS export EXECUTE_CLASS export TESTBASE export TESTARGS DTRACE_RESULTS_ANALYZER_SCRIPT=${TESTBASE}/src/dtrace/hotspot/ThreadLifecycle/ThreadLifecycle001/ThreadLifecycle001.pl export DTRACE_RESULTS_ANALYZER_SCRIPT TONGA_EXECUTE=$PERL ${TESTBASE}/src/dtrace/share/run_dtrace.pl :::::::::::::: ThreadLifecycle001.java :::::::::::::: /* %W% %G% * Copyright %G% Sun Microsystems, Inc. */ package dtrace.hotspot.ThreadLifecycle.ThreadLifecycle001; import java.lang.*; class NewThread extends Thread { volatile private boolean stop = false; private boolean started = false; public NewThread(ThreadGroup group, String name) { super(group, name); } public void run() { synchronized(this) { started = true; } while (!stop) { for (int i=0; i<100; i++); } } synchronized public boolean isStarted() { return started; } public void terminate() { stop = true; } } public class ThreadLifecycle001 { public static void main(String[] args) { System.out.println("ThreadLifecycle001 test"); // create and start NewThread ThreadGroup newGroup = new ThreadGroup("newGroup"); NewThread newThread = new NewThread(newGroup, "NewThread"); newThread.start(); ThreadGroup parentGroup = Thread.currentThread().getThreadGroup(); if (parentGroup == null) return; while (parentGroup.getParent() != null) { parentGroup = parentGroup.getParent(); } // wait if newThread is not yet started while (!newThread.isStarted()) { for (int i = 0; i < 100; i++); } System.out.println(); listThreads(parentGroup); newThread.terminate(); try { newThread.join(); } catch(InterruptedException ex) {} } static void listThreads(ThreadGroup currentGroup) { int threadCount = currentGroup.activeCount(); Thread listOfThreads[] = new Thread[threadCount]; currentGroup.enumerate(listOfThreads, true); for (int i = 0; i < threadCount; i++) { System.out.println( "Thread: id=" + listOfThreads[i].getId() + ", is_daemon=" + (listOfThreads[i].isDaemon() ? "1" : "0") + ", name=" + listOfThreads[i].getName() + ", groupName=" + listOfThreads[i].getThreadGroup().getName() ); } } } :::::::::::::: ThreadLifecycle001.pl :::::::::::::: # %W% %G% # Copyright %G% Sun Microsystems, Inc. # # Implement analyze_dtrace_results_proc function for ThreadLifecycle001 test. # sub analyze_dtrace_results_proc($$$) { my ($dtrace_log_filename, $java_log_filename, $args) = @_; my $test_fail = 0; my %java_threads = (); # threads started according to Java log file my %dtrace_start_threads = (); # threads started according to hotspot:::thread-start probes my %dtrace_stop_threads = (); # threads started according to hotspot:::thread-start probes if ( &read_java_log($java_log_filename, \%java_threads) || &read_dtrace_log($dtrace_log_filename, \%dtrace_start_threads, \%dtrace_stop_threads) ) { return 1; } # Check that all probes have been fired foreach (keys %java_threads) { unless (exists $dtrace_start_threads{$_}) { print STDOUT "ERROR: no 'thread-start' probe was fired for thread: $_\n"; $test_fail = 1; } unless (exists $dtrace_stop_threads{$_}) { print STDOUT "ERROR: no 'thread-stop' probe was fired for thread: $_\n"; $test_fail = 1; } } # check that 'thread-start' probes have been fired exactly 1 time for each thread foreach (keys %dtrace_start_threads) { if ($dtrace_start_threads{$_} > 1) { print STDOUT "ERROR: 'thread-start' probe for '$_' fired " . $dtrace_start_threads{$_} . " (>1) times\n"; $test_fail = 1; } } # check that 'thread-stop' probes have been fired exactly 1 time for each thread foreach (keys %dtrace_stop_threads) { if ($dtrace_stop_threads{$_} > 1) { print STDOUT "ERROR: 'thread-stop' probe for '$_' fired " . $dtrace_stop_threads{$_} . " (>1) times\n"; $test_fail = 1; } } return $test_fail; } sub read_java_log($$) { my ($java_log_filename, $java_threads) = @_; unless (open(IN, "<$java_log_filename")) { print STDOUT "Failed to read $java_log_filename: $!\n"; return 1; } while(my $str = ) { $str =~ s/\r*\n//; if ($str =~ s/^Thread: //) { # thread group name is not passed in dtrace probes, so delete it $str =~ s/, groupName=.*$//; $java_threads->{$str} ++; } } close(IN); return 0; } sub read_dtrace_log($$$) { my ($dtrace_log_filename, $dtrace_start_threads, $dtrace_stop_threads) = @_; unless (open(IN, "<$dtrace_log_filename")) { print STDOUT "Failed to read $java_log_filename: $!\n"; return 1; } my $probe_name; while(my $str = ) { $str =~ s/\r*\n//; if ($str =~ s/^thread-start: //) { $dtrace_start_threads->{$str} ++; } elsif ($str =~ s/^thread-stop: //) { $dtrace_stop_threads->{$str} ++; } } close(IN); return 0; } 1; :::::::::::::: ThreadLifecycle001.README :::::::::::::: %W% %G% Copyright %G% Sun Microsystems, Inc. DESCRIPTION The test exercise hotspot:::thread-start and hotspot:::thread-stop Dtrace probes functionality. The test do: - run ThreadLifecycle001 java programm which dumps information abould all running threads in VM. - check if: - for each Java thread thread-start and thread-stop probes are fired the same time - input probe's arguments are passed correctly (attempt to print them doesn't cause the error) - no any Dtrace errors are thrown COMMENTS AUTHOR . . . From serguei.spitsyn at oracle.com Wed Jul 18 11:57:15 2012 From: serguei.spitsyn at oracle.com (serguei.spitsyn at oracle.com) Date: Wed, 18 Jul 2012 11:57:15 -0700 Subject: [PATCH 0 of 3] Add support for dtrace compatible sdt probes on GNU/Linux In-Reply-To: <5007035E.8070602@oracle.com> References: <4FBCE2B0.3050201@oracle.com> <1337779575.3002.6.camel@springer.wildebeest.org> <4FBCE92C.8010708@oracle.com> <1337781400.3002.17.camel@springer.wildebeest.org> <4FBCF2CF.9000301@oracle.com> <1337789969.3002.25.camel@springer.wildebeest.org> <4FBD0FFE.6060402@oracle.com> <4FBD1D76.90206@oracle.com> <1342620645.3058.63.camel@springer.wildebeest.org> <5006EE13.6000406@oracle.com> <20120718172306.GA4153@toonder.wildebeest.org> <5007035E.8070602@oracle.com> Message-ID: <5007070B.1090904@oracle.com> On 7/18/12 11:41 AM, serguei.spitsyn at oracle.com wrote: > On 7/18/12 10:23 AM, Mark Wielaard wrote: >> On Wed, Jul 18, 2012 at 10:10:43AM -0700,serguei.spitsyn at oracle.com wrote: >>> This work includes investigation to find proper linux machine, >>> installation of the systemTap, building and testing, and so, >>> needs some engineering resources. >> I can do that, the patch has already been included in various >> distros so it shouldn't be a problem. Just let me know what you >> need. >> >>> Also, it needs a new unit test and submitting a CCC request. >>> You only can help by providing a test for the patch. >> Sure, I was looking for existing dtrace tests to see if I can >> match them. Do you have a good example I can follow? >> >> Thanks, >> >> Mark > > Normally a dtrace test needs 4 parts: > java test program, d-script, shell script and README > > All automated dtrace tests usually depend on the SQE testbase > environment: > .cfg file, testbase libraries and testbase build system > > So that, I do not have a simple standalone test for the HotSpot probes. > But I can provide an example (just make a correction on this kind of > dependency). > > The test ThreadLifecycle001 includes ThreadLifecycle.d, Need to complete the sentence above: The test ThreadLifecycle001 includes ThreadLifecycle.d, ThreadLifecycle001.cfg, ThreadLifecycle001.java, ThreadLifecycle001.pl and ThreadLifecycle001.README Thanks, Serguei > > > Please, see below and let me know if you have any questions. > I can send you more examples if needed. > > Thanks, > Serguei > > > % cat ThreadLifecycle.d > > #!/usr/sbin/dtrace -Zs > > #pragma D option quiet > #pragma D option destructive > > /* %W% %G% > * Copyright %G% Sun Microsystems, Inc. > */ > > /* > * The script trace hotspot:::thread-start and hotspot:::thread-stop > events. > */ > > self char *str_ptr; > self string thread_name; > > :::BEGIN { > TEST_NAME = "Thread lifecycle"; > TEST_PASS = 1; > > EXIT_CODE_PASS = 0; > EXIT_CODE_FAIL = 1; > > printf("BEGIN %s probes testing\n\n", TEST_NAME); > } > > /* > * hotspot:::thread-start, hotspot:::thread-stop probe arguments: > * arg0: char*, thread name passed as UTF8 string > * arg1: uintptr_t, thread name length > * arg2: uintptr_t, Java thread id > * arg3: uintptr_t, native/OS thread id > * arg4: uintptr_t, is a daemon or not > */ > > /* Check is_daemon is correct */ > hotspot$target:::thread-start, > hotspot$target:::thread-stop > / arg4 > 1 / > { > TEST_PASS = 0; > > printf("FAIL: wrong is_daemon=%u is passed in %s\n", > arg4, probename); > } > > hotspot$target:::thread-start > { > THREAD_START_CNT ++; > } > > hotspot$target:::thread-stop > { > THREAD_STOP_CNT ++; > } > > hotspot$target:::thread-start, > hotspot$target:::thread-stop > { > /* Yes, we copy for one byte more from user space. This is > temporal solution till support for > * not-null terminated strings will be donein DTRACE > */ > self->str_ptr = (char*) copyin(arg0, arg1+1); > self->str_ptr[arg1] = '\0'; > self->thread_name = (string) self->str_ptr; > > printf("\nPROBE ARGS: %s:\n", probename); > printf("PROBE ARGS: arg0=%p (thread name pointer)\n", arg0); > printf("PROBE ARGS: arg1=%u (thread name length)\n", arg1); > printf("PROBE ARGS: arg2=%u (Java thread id)\n", arg2); > printf("PROBE ARGS: arg3=%u (native/OS id)\n", arg3); > printf("PROBE ARGS: arg4=%u (is daemon)\n", arg4); > > /* this output will be used by Perl script */ > printf("%s: id=%u, is_daemon=%u, name=%s\n", > probename, arg2, arg4, self->thread_name); > } > > /* check exit status of traced java process */ > syscall::rexit:entry > /pid == $target && arg0 != 0 && arg0 != 95 / > { > printf("\n"); > printf("ERROR: java process failed with status=%d\n", arg0); > TEST_PASS = 0; > } > > syscall::rexit:entry > /pid == $target && !THREAD_START_CNT/ > { > printf("ERROR: no 'thread-start' probes were fired\n"); > TEST_PASS = 0; > } > > syscall::rexit:entry > /pid == $target && !THREAD_STOP_CNT/ > { > printf("ERROR: no 'thread-stop' probes were fired\n"); > TEST_PASS = 0; > } > > syscall::rexit:entry > /pid == $target && !TEST_PASS/ > { > printf("FAIL\n"); > exit(EXIT_CODE_FAIL); > } > > syscall::rexit:entry > /pid == $target && TEST_PASS/ > { > printf("PASS\n"); > exit(EXIT_CODE_PASS); > } > > :::END { > printf("\nEND %s tracing\n", TEST_NAME); > } > > > sspitsyn at hsdev-10 more *.* | cat > :::::::::::::: > ThreadLifecycle001.cfg > :::::::::::::: > # %W% %G% > # Copyright %G% Sun Microsystems, Inc. > > > DSCRIPT=${TESTBASE}/src/dtrace/share/dscripts/hotspot/ThreadLifecycle.d > > EXECUTE_CLASS=dtrace.hotspot.ThreadLifecycle.ThreadLifecycle001.ThreadLifecycle001 > > export DSCRIPT > export JAVA > export JAVA_OPTS > export TESTDIR > export TEST_ARGS > export EXECUTE_CLASS > export TESTBASE > export TESTARGS > > DTRACE_RESULTS_ANALYZER_SCRIPT=${TESTBASE}/src/dtrace/hotspot/ThreadLifecycle/ThreadLifecycle001/ThreadLifecycle001.pl > export DTRACE_RESULTS_ANALYZER_SCRIPT > > TONGA_EXECUTE=$PERL ${TESTBASE}/src/dtrace/share/run_dtrace.pl > > > :::::::::::::: > ThreadLifecycle001.java > :::::::::::::: > /* %W% %G% > * Copyright %G% Sun Microsystems, Inc. > */ > > package dtrace.hotspot.ThreadLifecycle.ThreadLifecycle001; > > import java.lang.*; > > class NewThread extends Thread > { > volatile private boolean stop = false; > private boolean started = false; > > public NewThread(ThreadGroup group, String name) > { > super(group, name); > } > > public void run() > { > synchronized(this) { started = true; } > > while (!stop) > { > for (int i=0; i<100; i++); > } > } > > > synchronized public boolean isStarted() > { > return started; > } > > public void terminate() > { > stop = true; > } > } > > > public class ThreadLifecycle001 > { > public static void main(String[] args) > { > System.out.println("ThreadLifecycle001 test"); > > // create and start NewThread > ThreadGroup newGroup = new ThreadGroup("newGroup"); > NewThread newThread = new NewThread(newGroup, "NewThread"); > newThread.start(); > > ThreadGroup parentGroup = Thread.currentThread().getThreadGroup(); > if (parentGroup == null) > return; > > while (parentGroup.getParent() != null) > { > parentGroup = parentGroup.getParent(); > } > > // wait if newThread is not yet started > while (!newThread.isStarted()) > { > for (int i = 0; i < 100; i++); > } > > System.out.println(); > listThreads(parentGroup); > > newThread.terminate(); > try > { > newThread.join(); > } > catch(InterruptedException ex) {} > } > > static void listThreads(ThreadGroup currentGroup) > { > int threadCount = currentGroup.activeCount(); > Thread listOfThreads[] = new Thread[threadCount]; > > currentGroup.enumerate(listOfThreads, true); > for (int i = 0; i < threadCount; i++) > { > System.out.println( > "Thread: id=" + listOfThreads[i].getId() + > ", is_daemon=" + (listOfThreads[i].isDaemon() ? "1" : > "0") + > ", name=" + listOfThreads[i].getName() + > ", groupName=" + > listOfThreads[i].getThreadGroup().getName() ); > } > } > } > > > :::::::::::::: > ThreadLifecycle001.pl > :::::::::::::: > # %W% %G% > # Copyright %G% Sun Microsystems, Inc. > # > # Implement analyze_dtrace_results_proc function for > ThreadLifecycle001 test. > # > > sub analyze_dtrace_results_proc($$$) > { > my ($dtrace_log_filename, $java_log_filename, $args) = @_; > > my $test_fail = 0; > my %java_threads = (); # threads started according to > Java log file > my %dtrace_start_threads = (); # threads started according to > hotspot:::thread-start probes > my %dtrace_stop_threads = (); # threads started according to > hotspot:::thread-start probes > > if ( &read_java_log($java_log_filename, \%java_threads) || > &read_dtrace_log($dtrace_log_filename, > \%dtrace_start_threads, \%dtrace_stop_threads) ) > { > return 1; > } > > # Check that all probes have been fired > foreach (keys %java_threads) > { > unless (exists $dtrace_start_threads{$_}) { > print STDOUT "ERROR: no 'thread-start' probe was fired for > thread: $_\n"; > $test_fail = 1; > } > > unless (exists $dtrace_stop_threads{$_}) { > print STDOUT "ERROR: no 'thread-stop' probe was fired for > thread: $_\n"; > $test_fail = 1; > } > } > > # check that 'thread-start' probes have been fired exactly 1 time > for each thread > foreach (keys %dtrace_start_threads) { > if ($dtrace_start_threads{$_} > 1) { > print STDOUT "ERROR: 'thread-start' probe for '$_' fired " . > $dtrace_start_threads{$_} . " (>1) times\n"; > $test_fail = 1; > } > } > > # check that 'thread-stop' probes have been fired exactly 1 time > for each thread > foreach (keys %dtrace_stop_threads) { > if ($dtrace_stop_threads{$_} > 1) { > print STDOUT "ERROR: 'thread-stop' probe for '$_' fired " . > $dtrace_stop_threads{$_} . " (>1) times\n"; > $test_fail = 1; > } > } > > return $test_fail; > } > > sub read_java_log($$) > { > my ($java_log_filename, $java_threads) = @_; > > unless (open(IN, "<$java_log_filename")) > { > print STDOUT "Failed to read $java_log_filename: $!\n"; > return 1; > } > > while(my $str = ) > { > $str =~ s/\r*\n//; > > if ($str =~ s/^Thread: //) > { > # thread group name is not passed in dtrace probes, so > delete it > $str =~ s/, groupName=.*$//; > > $java_threads->{$str} ++; > } > } > > close(IN); > return 0; > } > > sub read_dtrace_log($$$) > { > my ($dtrace_log_filename, $dtrace_start_threads, > $dtrace_stop_threads) = @_; > > unless (open(IN, "<$dtrace_log_filename")) > { > print STDOUT "Failed to read $java_log_filename: $!\n"; > return 1; > } > > my $probe_name; > while(my $str = ) > { > $str =~ s/\r*\n//; > > if ($str =~ s/^thread-start: //) > { > $dtrace_start_threads->{$str} ++; > } > elsif ($str =~ s/^thread-stop: //) > { > $dtrace_stop_threads->{$str} ++; > } > } > > close(IN); > return 0; > } > > 1; > > :::::::::::::: > ThreadLifecycle001.README > :::::::::::::: > %W% %G% > Copyright %G% Sun Microsystems, Inc. > > DESCRIPTION > > The test exercise hotspot:::thread-start and hotspot:::thread-stop > Dtrace probes functionality. > > The test do: > - run ThreadLifecycle001 java programm which dumps information abould > all running threads in VM. > - check if: > - for each Java thread thread-start and thread-stop probes are > fired the same time > - input probe's arguments are passed correctly > (attempt to print them doesn't cause the error) > - no any Dtrace errors are thrown > > COMMENTS > > AUTHOR > . . . > > > > From mjw at redhat.com Wed Jul 18 12:03:01 2012 From: mjw at redhat.com (Mark Wielaard) Date: Wed, 18 Jul 2012 21:03:01 +0200 Subject: [PATCH 0 of 3] Add support for dtrace compatible sdt probes on GNU/Linux In-Reply-To: <5007035E.8070602@oracle.com> References: <4FBCE2B0.3050201@oracle.com> <1337779575.3002.6.camel@springer.wildebeest.org> <4FBCE92C.8010708@oracle.com> <1337781400.3002.17.camel@springer.wildebeest.org> <4FBCF2CF.9000301@oracle.com> <1337789969.3002.25.camel@springer.wildebeest.org> <4FBD0FFE.6060402@oracle.com> <4FBD1D76.90206@oracle.com> <1342620645.3058.63.camel@springer.wildebeest.org> <5006EE13.6000406@oracle.com> <20120718172306.GA4153@toonder.wildebeest.org> <5007035E.8070602@oracle.com> Message-ID: <1342638181.3058.76.camel@springer.wildebeest.org> On Wed, 2012-07-18 at 11:41 -0700, serguei.spitsyn at oracle.com wrote: > On 7/18/12 10:23 AM, Mark Wielaard wrote: > > > On Wed, Jul 18, 2012 at 10:10:43AM -0700, serguei.spitsyn at oracle.com wrote: > > > This work includes investigation to find proper linux machine, > > > installation of the systemTap, building and testing, and so, > > > needs some engineering resources. > > I can do that, the patch has already been included in various > > distros so it shouldn't be a problem. Just let me know what you > > need. > > > > > Also, it needs a new unit test and submitting a CCC request. > > > You only can help by providing a test for the patch. > > Sure, I was looking for existing dtrace tests to see if I can > > match them. Do you have a good example I can follow? > > Normally a dtrace test needs 4 parts: > java test program, d-script, shell script and README How/Where does this hook into the openjdk testsuite? d-scripts obviously aren't supported on GNU/Linux, so that part seems not easily reusable. And the functionality that is being added is just for the probe points, not for anything higher level. Detecting the sdt probes are there can be done with anything that can read elf notes, stap, gdb, readelf, etc. It seems none of these are used yet in the openjdk/hotspot/test suite (there seems to be only 1 lonely servicability test), but I can try to hook something up. Is it all jtreg based? How do you check in the testsuite which features are enabled in a build? Thanks, Mark From serguei.spitsyn at oracle.com Wed Jul 18 12:42:55 2012 From: serguei.spitsyn at oracle.com (serguei.spitsyn at oracle.com) Date: Wed, 18 Jul 2012 12:42:55 -0700 Subject: [PATCH 0 of 3] Add support for dtrace compatible sdt probes on GNU/Linux In-Reply-To: <1342638181.3058.76.camel@springer.wildebeest.org> References: <4FBCE2B0.3050201@oracle.com> <1337779575.3002.6.camel@springer.wildebeest.org> <4FBCE92C.8010708@oracle.com> <1337781400.3002.17.camel@springer.wildebeest.org> <4FBCF2CF.9000301@oracle.com> <1337789969.3002.25.camel@springer.wildebeest.org> <4FBD0FFE.6060402@oracle.com> <4FBD1D76.90206@oracle.com> <1342620645.3058.63.camel@springer.wildebeest.org> <5006EE13.6000406@oracle.com> <20120718172306.GA4153@toonder.wildebeest.org> <5007035E.8070602@oracle.com> <1342638181.3058.76.camel@springer.wildebeest.org> Message-ID: <500711BF.4050301@oracle.com> On 7/18/12 12:03 PM, Mark Wielaard wrote: > On Wed, 2012-07-18 at 11:41 -0700, serguei.spitsyn at oracle.com wrote: >> On 7/18/12 10:23 AM, Mark Wielaard wrote: >> >>> On Wed, Jul 18, 2012 at 10:10:43AM -0700, serguei.spitsyn at oracle.com wrote: >>>> This work includes investigation to find proper linux machine, >>>> installation of the systemTap, building and testing, and so, >>>> needs some engineering resources. >>> I can do that, the patch has already been included in various >>> distros so it shouldn't be a problem. Just let me know what you >>> need. >>> >>>> Also, it needs a new unit test and submitting a CCC request. >>>> You only can help by providing a test for the patch. >>> Sure, I was looking for existing dtrace tests to see if I can >>> match them. Do you have a good example I can follow? >> Normally a dtrace test needs 4 parts: >> java test program, d-script, shell script and README > How/Where does this hook into the openjdk testsuite? Currently, it does not. > > d-scripts obviously aren't supported on GNU/Linux, so that part seems > not easily reusable. And the functionality that is being added is just > for the probe points, not for anything higher level. Detecting the sdt Ok. It is good to know. > probes are there can be done with anything that can read elf notes, > stap, gdb, readelf, etc. It seems none of these are used yet in the > openjdk/hotspot/test suite (there seems to be only 1 lonely > servicability test), but I can try to hook something up. That would be nice. > Is it all jtreg based? The SQE testbase is used for the dtrace tests which is not jtreg based. I do not need yet the test in any existing format. What I need is a manual test that consists of whatever you add there. It must be suitable to run testing steps manually and check if the feature works. I'll convert it to the jtreg format if needed. > How do you check in the testsuite which features are enabled in a > build? This is one of the questions that has to be resolved. The test has to be reliable and finish gracefully if the feature is not enabled. Thanks, Serguei > > Thanks, > > Mark > From vladimir.kozlov at oracle.com Thu Jul 19 20:06:53 2012 From: vladimir.kozlov at oracle.com (vladimir.kozlov at oracle.com) Date: Fri, 20 Jul 2012 03:06:53 +0000 Subject: hg: hsx/hotspot-main/hotspot: 7 new changesets Message-ID: <20120720030715.3D4FA47158@hg.openjdk.java.net> Changeset: 6d8f36bcef55 Author: jrose Date: 2012-07-12 00:39 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/6d8f36bcef55 6711908: JVM needs direct access to some annotations Summary: Add annotation extraction code to class file parser. Reviewed-by: twisti, jrose, kvn Contributed-by: michael.haupt at oracle.com ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/ci/ciMethod.hpp ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/classFileParser.hpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/oops/methodOop.hpp Changeset: ed21db7b3fda Author: kvn Date: 2012-07-13 17:48 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/ed21db7b3fda 7123926: Some CTW test crash: !_control.contains(ctrl) Summary: Don't eliminate Integer::toString() call node during String concatenation optimization if it has several uses. Reviewed-by: twisti ! src/share/vm/opto/stringopts.cpp Changeset: 56c4f88474b3 Author: twisti Date: 2012-07-16 11:14 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/56c4f88474b3 7087357: JSR 292: remove obsolete code after 7085860 Reviewed-by: kvn, never ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/prims/methodHandles.cpp ! src/share/vm/prims/unsafe.cpp Changeset: 2c368ea3e844 Author: kvn Date: 2012-07-16 17:10 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/2c368ea3e844 7181494: cleanup avx and vectors code Summary: renamed mach nodes which use scalar AVX instructions, added integer vectors shuffling instructions Reviewed-by: twisti ! src/cpu/x86/vm/assembler_x86.cpp ! src/cpu/x86/vm/assembler_x86.hpp ! src/cpu/x86/vm/vm_version_x86.cpp ! src/cpu/x86/vm/x86.ad ! src/share/vm/code/vmreg.hpp Changeset: 9c9fb30d2b3b Author: kvn Date: 2012-07-16 19:50 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/9c9fb30d2b3b Merge ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/classFileParser.hpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/oops/methodOop.hpp ! src/share/vm/prims/unsafe.cpp Changeset: dd785aabe02b Author: kvn Date: 2012-07-17 11:16 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/dd785aabe02b Merge ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/classFileParser.hpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/oops/methodOop.hpp Changeset: bc3e01899804 Author: kvn Date: 2012-07-19 16:17 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/bc3e01899804 Merge From mjw at redhat.com Fri Jul 20 07:34:32 2012 From: mjw at redhat.com (Mark Wielaard) Date: Fri, 20 Jul 2012 16:34:32 +0200 Subject: [PATCH 4 of 4] 7170638: Add testcase for GNU/Linux to check SDT probes are there In-Reply-To: References: Message-ID: test/serviceability/SDTProbesGNULinuxTest.sh | 68 ++++++++++++++++++++++++++++ 1 files changed, 68 insertions(+), 0 deletions(-) # HG changeset patch # User Mark Wielaard # Date 1342794226 -7200 # Node ID ffce731ebe8c0f2a1e648df7bf911ec2f112304f # Parent 83f53049b275e6c613e149114aece6d078889038 7170638: Add testcase for GNU/Linux to check SDT probes are there. Summary: Check .note.stapsdt is there on GNU/Linux with DTRACE_ENABLED. Contributed-by: Mark Wielaard diff --git a/test/serviceability/SDTProbesGNULinuxTest.sh b/test/serviceability/SDTProbesGNULinuxTest.sh new file mode 100755 --- /dev/null +++ b/test/serviceability/SDTProbesGNULinuxTest.sh @@ -0,0 +1,68 @@ +# +# Copyright (c) 2012, Red Hat, Inc. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +# @test SDTProbesGNULinuxTest.sh +# @bug 7170638 +# @summary Test SDT probes available on GNU/Linux when DTRACE_ENABLED +# @run shell SDTProbesGNULinuxTest.sh + +# This test only matters on GNU/Linux, others trivially PASS. +OS=`uname -s` +case "$OS" in + Linux ) + ;; + *) + echo "Not testing on anything but GNU/Linux. PASSED" + exit 0; + ;; +esac + +# Where is our java (parent) directory? +if [ "${TESTJAVA}" = "" ]; then + PARENT=$(dirname $(readlink -f $(which java))) + TESTJAVA=`dirname ${PARENT}` + echo "TESTJAVA directory not set, using " ${TESTJAVA} +fi + +# This test only matters when build with DTRACE_ENABLED. +${TESTJAVA}/bin/java -XX:+ExtendedDTraceProbes -version +if [ "$?" != "0" ]; then + echo "Not build using DTRACE_ENABLED. PASSED" + exit 0 +fi + +# Test all available libjvm.so variants +for libjvm in $(find ${TESTJAVA} -name libjvm.so); do + echo "Testing ${libjvm}" + # Check whether the SDT probes are compiled in. + readelf -S ${libjvm} | grep '.note.stapsdt' + if [ "$?" != "0" ]; then + echo "Failed: ${libjvm} doesn't contain SDT probes." + exit 1 + fi + # We could iterate over all SDT probes and test them individually + # with readelf -n, but older readelf versions don't understand them. +done + +echo "Passed." +exit 0 From mjw at redhat.com Fri Jul 20 07:34:30 2012 From: mjw at redhat.com (Mark Wielaard) Date: Fri, 20 Jul 2012 16:34:30 +0200 Subject: [PATCH 2 of 4] 7170638: Define DTRACE macros for use with GNU/Linux SystemTap sys/sdt.h In-Reply-To: References: Message-ID: src/share/vm/utilities/dtrace.hpp | 50 ++++++++++++++++++++++++++++++++++++++- 1 files changed, 49 insertions(+), 1 deletions(-) # HG changeset patch # User Mark Wielaard # Date 1342788224 -7200 # Node ID c85270e9500fa52fefa80763c4ccec7f3f0dc3a2 # Parent f36b62abb026adbd458a9d9414684f3ac80f9ac9 7170638: Define DTRACE macros for use with GNU/Linux SystemTap sys/sdt.h. Summary: LINUX also uses USDT1, but with macros instead of function decls. Contributed-by: Mark Wielaard diff --git a/src/share/vm/utilities/dtrace.hpp b/src/share/vm/utilities/dtrace.hpp --- a/src/share/vm/utilities/dtrace.hpp +++ b/src/share/vm/utilities/dtrace.hpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2012 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -32,12 +33,15 @@ #define DTRACE_ONLY(x) x #define NOT_DTRACE(x) +#if defined(SOLARIS) // Work around dtrace tail call bug 6672627 until it is fixed in solaris 10. #define HS_DTRACE_WORKAROUND_TAIL_CALL_BUG() \ do { volatile size_t dtrace_workaround_tail_call_bug = 1; } while (0) -#if defined(SOLARIS) #define USDT1 1 +#elif defined(LINUX) +#define USDT1 1 +#define HS_DTRACE_WORKAROUND_TAIL_CALL_BUG() #elif defined(__APPLE__) #define USDT2 1 #include @@ -63,6 +67,11 @@ #define DTRACE_PROBE3(a,b,c,d,e) {;} #define DTRACE_PROBE4(a,b,c,d,e,f) {;} #define DTRACE_PROBE5(a,b,c,d,e,f,g) {;} +#define DTRACE_PROBE6(a,b,c,d,e,f,g,h) {;} +#define DTRACE_PROBE7(a,b,c,d,e,f,g,h,i) {;} +#define DTRACE_PROBE8(a,b,c,d,e,f,g,h,i,j) {;} +#define DTRACE_PROBE9(a,b,c,d,e,f,g,h,i,j,k) {;} +#define DTRACE_PROBE10(a,b,c,d,e,f,g,h,i,j,k,l) {;} #else /* USDT2 */ @@ -76,10 +85,19 @@ #define HS_DTRACE_PROBE_FN(provider,name)\ __dtrace_##provider##___##name +#ifdef SOLARIS +// Solaris dtrace needs actual extern function decls. #define HS_DTRACE_PROBE_DECL_N(provider,name,args) \ DTRACE_ONLY(extern "C" void HS_DTRACE_PROBE_FN(provider,name) args) #define HS_DTRACE_PROBE_CDECL_N(provider,name,args) \ DTRACE_ONLY(extern void HS_DTRACE_PROBE_FN(provider,name) args) +#elif defined(LINUX) +// Systemtap dtrace compatible probes on GNU/Linux don't. +#define HS_DTRACE_PROBE_DECL_N(provider,name,args) +#define HS_DTRACE_PROBE_CDECL_N(provider,name,args) +#else +#error "USDT1 enabled for unknown os" +#endif /* Dtrace probe declarations */ #define HS_DTRACE_PROBE_DECL(provider,name) \ @@ -118,6 +136,8 @@ uintptr_t,uintptr_t,uintptr_t)) /* Dtrace probe definitions */ +#if defined(SOLARIS) +// Solaris dtrace uses actual function calls. #define HS_DTRACE_PROBE_N(provider,name, args) \ DTRACE_ONLY(HS_DTRACE_PROBE_FN(provider,name) args) @@ -153,6 +173,34 @@ HS_DTRACE_PROBE_N(provider,name,((uintptr_t)a0,(uintptr_t)a1,(uintptr_t)a2,\ (uintptr_t)a3,(uintptr_t)a4,(uintptr_t)a5,(uintptr_t)a6,(uintptr_t)a7,\ (uintptr_t)a8,(uintptr_t)a9)) +#elif defined(LINUX) +// Systemtap dtrace compatible probes on GNU/Linux use direct macros. +#define HS_DTRACE_PROBE(provider,name) HS_DTRACE_PROBE0(provider,name) +#define HS_DTRACE_PROBE0(provider,name)\ + DTRACE_PROBE(provider,name) +#define HS_DTRACE_PROBE1(provider,name,a0)\ + DTRACE_PROBE1(provider,name,a0) +#define HS_DTRACE_PROBE2(provider,name,a0,a1)\ + DTRACE_PROBE2(provider,name,a0,a1) +#define HS_DTRACE_PROBE3(provider,name,a0,a1,a2)\ + DTRACE_PROBE3(provider,name,a0,a1,a2) +#define HS_DTRACE_PROBE4(provider,name,a0,a1,a2,a3)\ + DTRACE_PROBE4(provider,name,a0,a1,a2,a3) +#define HS_DTRACE_PROBE5(provider,name,a0,a1,a2,a3,a4)\ + DTRACE_PROBE5(provider,name,a0,a1,a2,a3,a4) +#define HS_DTRACE_PROBE6(provider,name,a0,a1,a2,a3,a4,a5)\ + DTRACE_PROBE6(provider,name,a0,a1,a2,a3,a4,a5) +#define HS_DTRACE_PROBE7(provider,name,a0,a1,a2,a3,a4,a5,a6)\ + DTRACE_PROBE7(provider,name,a0,a1,a2,a3,a4,a5,a6) +#define HS_DTRACE_PROBE8(provider,name,a0,a1,a2,a3,a4,a5,a6,a7)\ + DTRACE_PROBE8(provider,name,a0,a1,a2,a3,a4,a5,a6,a7) +#define HS_DTRACE_PROBE9(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)\ + DTRACE_PROBE9(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8) +#define HS_DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)\ + DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8) +#else +#error "USDT1 enabled for unknown os" +#endif #endif /* !USDT2 */ From mjw at redhat.com Fri Jul 20 07:34:28 2012 From: mjw at redhat.com (Mark Wielaard) Date: Fri, 20 Jul 2012 16:34:28 +0200 Subject: [PATCH 0 of 4] Add support for dtrace compatible sdt probes on GNU/Linux In-Reply-To: <500711BF.4050301@oracle.com> References: <500711BF.4050301@oracle.com> Message-ID: Hi, This is a rebased version of the original patch set from last May against current hsx/hotspot-main. This version contains an extra patch with a simple testcase that makes sure that on GNU/Linux systems build with ENABLE_DTRACE the SDT probes are actually there. They don't have to be applied all at once. Just apply those in the serie you feel are good to go. The later patches do depend on the earlier ones. But I rather see only the first applied and get feedback on why the later ones aren't good enough yet, than not get anything applied. Please let me know if there is anything else I can do to get these applied. The first patch is just a consistency cleanup patch. The JNI Set and SetStatic Field methods used HS_DTRACE_PROBE_CDECL_N and HS_DTRACE_PROBE_N directly instead of just using DTRACE_PROBE[N] like all other JNI methods. This doesn't matter for the Solaris macros, but on GNU/Linux the macros don't use direct function declarations (which is introduced in the second patch). The second patch introduces the DTRACE macros for use with the GNU/Linux SystemTap provided sys/sdt.h. Like Solaris this uses USDT1, but using macros instead of function declaractions. So it just adds a check for whether USDT1 is used with SOLARIS (HS_DTRACE_WORKAROUND_TAIL_CALL_BUG is only needed there) and defines HS_DTRACE_PROBE[N] for the LINUX case. The third patch enables the support in the build. I took the approach used in the make/solaris/dtrace.make and vm.make file with a test to see whether sys/sdt.h is available or not and printing a notice when they are not found. In IcedTea there is a more elaborate configure check to see if a small C++ program can be build with DTRACE probes in it, but that looked like overkill here. The last patch introduces a small jtreg based testcase that checks whether this is a GNU/Linux build with ENABLE_DTRACE and in that case makes sure the SDT probes are actually there in libjvm.so. src/share/vm/prims/jni.cpp | 11 +--- src/share/vm/utilities/dtrace.hpp | 50 ++++++++++++++++++++- make/linux/makefiles/dtrace.make | 24 +++++++++ make/linux/makefiles/vm.make | 2 +- test/serviceability/SDTProbesGNULinuxTest.sh | 68 ++++++++++++++++++++++++++++ 5 files changed, 145 insertions(+), 10 deletions(-) Patches in separate emails. Thanks, Mark From mjw at redhat.com Fri Jul 20 07:34:31 2012 From: mjw at redhat.com (Mark Wielaard) Date: Fri, 20 Jul 2012 16:34:31 +0200 Subject: [PATCH 3 of 4] 7170638: Enable dtrace compatible sdt probes on GNU/Linux builds In-Reply-To: References: Message-ID: <83f53049b275e6c613e1.1342794871@springer.wildebeest.org> make/linux/makefiles/dtrace.make | 24 ++++++++++++++++++++++++ make/linux/makefiles/vm.make | 2 +- 2 files changed, 25 insertions(+), 1 deletions(-) # HG changeset patch # User Mark Wielaard # Date 1342788329 -7200 # Node ID 83f53049b275e6c613e149114aece6d078889038 # Parent c85270e9500fa52fefa80763c4ccec7f3f0dc3a2 7170638: Enable dtrace compatible sdt probes on GNU/Linux builds. Summary: If sys/sdt.h is found, then enable dtrace compatible sdt probes. Contributed-by: Mark Wielaard diff --git a/make/linux/makefiles/dtrace.make b/make/linux/makefiles/dtrace.make --- a/make/linux/makefiles/dtrace.make +++ b/make/linux/makefiles/dtrace.make @@ -1,5 +1,6 @@ # # Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2012 Red Hat, Inc. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -25,3 +26,26 @@ # Linux does not build jvm_db LIBJVM_DB = +# But it does have a SystemTap dtrace compatible sys/sdt.h +ifneq ($(ALT_SDT_H),) + SDT_H_FILE = $(ALT_SDT_H) +else + SDT_H_FILE = /usr/include/sys/sdt.h +endif +DTRACE_ENABLED = $(shell test -f $(SDT_H_FILE) && echo $(SDT_H_FILE)) + +ifneq ($(DTRACE_ENABLED),) + CFLAGS += -DDTRACE_ENABLED +endif + +# Phone target used in vm.make build target to check whether enabled. +.PHONY: dtraceCheck +ifeq ($(DTRACE_ENABLED),) +dtraceCheck: + $(QUIETLY) echo "**NOTICE** Dtrace support disabled $(SDT_H_FILE) not found" +else +dtraceCheck: +endif + +# It doesn't support HAVE_DTRACE_H though. + diff --git a/make/linux/makefiles/vm.make b/make/linux/makefiles/vm.make --- a/make/linux/makefiles/vm.make +++ b/make/linux/makefiles/vm.make @@ -387,7 +387,7 @@ #---------------------------------------------------------------------- -build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(BUILDLIBSAPROC) $(WB_JAR) +build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(BUILDLIBSAPROC) dtraceCheck $(WB_JAR) install: install_jvm install_jsig install_saproc From mjw at redhat.com Fri Jul 20 07:34:29 2012 From: mjw at redhat.com (Mark Wielaard) Date: Fri, 20 Jul 2012 16:34:29 +0200 Subject: [PATCH 1 of 4] 7170638: Use DTRACE_PROBE[N] in JNI Set and SetStatic Field In-Reply-To: References: Message-ID: src/share/vm/prims/jni.cpp | 11 +++-------- 1 files changed, 3 insertions(+), 8 deletions(-) # HG changeset patch # User Mark Wielaard # Date 1342788059 -7200 # Node ID f36b62abb026adbd458a9d9414684f3ac80f9ac9 # Parent bc3e0189980428f5f80391841af0194f22faec85 7170638: Use DTRACE_PROBE[N] in JNI Set and SetStatic Field. Summary: Don't use HS_DTRACE_PROBE_CDECL_N and HS_DTRACE_PROBE_N directly. Contributed-by: Mark Wielaard diff --git a/src/share/vm/prims/jni.cpp b/src/share/vm/prims/jni.cpp --- a/src/share/vm/prims/jni.cpp +++ b/src/share/vm/prims/jni.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -2820,10 +2821,7 @@ JNI_QUICK_ENTRY(void, jni_Set##Result##Field(JNIEnv *env, jobject obj, jfieldID fieldID, Argument value)) \ JNIWrapper("Set" XSTR(Result) "Field"); \ \ - HS_DTRACE_PROBE_CDECL_N(hotspot_jni, Set##Result##Field__entry, \ - ( JNIEnv*, jobject, jfieldID FP_SELECT_##Result(COMMA Argument,/*empty*/) ) ); \ - HS_DTRACE_PROBE_N(hotspot_jni, Set##Result##Field__entry, \ - ( env, obj, fieldID FP_SELECT_##Result(COMMA value,/*empty*/) ) ); \ + FP_SELECT_##Result(DTRACE_PROBE4(hotspot_jni, Set##Result##Field__entry, env, obj, fieldID, value),DTRACE_PROBE3(hotspot_jni, Set##Result##Field__entry, env, obj, fieldID)); \ \ oop o = JNIHandles::resolve_non_null(obj); \ klassOop k = o->klass(); \ @@ -3130,10 +3128,7 @@ \ JNI_ENTRY(void, jni_SetStatic##Result##Field(JNIEnv *env, jclass clazz, jfieldID fieldID, Argument value)) \ JNIWrapper("SetStatic" XSTR(Result) "Field"); \ - HS_DTRACE_PROBE_CDECL_N(hotspot_jni, SetStatic##Result##Field__entry,\ - ( JNIEnv*, jclass, jfieldID FP_SELECT_##Result(COMMA Argument,/*empty*/) ) ); \ - HS_DTRACE_PROBE_N(hotspot_jni, SetStatic##Result##Field__entry, \ - ( env, clazz, fieldID FP_SELECT_##Result(COMMA value,/*empty*/) ) ); \ + FP_SELECT_##Result(DTRACE_PROBE4(hotspot_jni, SetStatic##Result##Field__entry, env, clazz, fieldID, value),DTRACE_PROBE3(hotspot_jni, SetStatic##Result##Field__entry, env, clazz, fieldID)); \ \ JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fieldID); \ assert(id->is_static_field_id(), "invalid static field id"); \ From serguei.spitsyn at oracle.com Fri Jul 20 10:49:14 2012 From: serguei.spitsyn at oracle.com (serguei.spitsyn at oracle.com) Date: Fri, 20 Jul 2012 10:49:14 -0700 Subject: [PATCH 0 of 4] Add support for dtrace compatible sdt probes on GNU/Linux In-Reply-To: References: <500711BF.4050301@oracle.com> Message-ID: <50099A1A.5030106@oracle.com> Hi Mark, Ok. Thank you for the jtreg test! Thanks, -Serguei 7/20/12 7:34 AM, Mark Wielaard wrote: > Hi, > > This is a rebased version of the original patch set from last May against > current hsx/hotspot-main. This version contains an extra patch with a > simple testcase that makes sure that on GNU/Linux systems build with > ENABLE_DTRACE the SDT probes are actually there. > > They don't have to be applied all at once. Just apply those in the serie > you feel are good to go. The later patches do depend on the earlier ones. > But I rather see only the first applied and get feedback on why the later > ones aren't good enough yet, than not get anything applied. > > Please let me know if there is anything else I can do to get these applied. > > The first patch is just a consistency cleanup patch. The JNI Set and > SetStatic Field methods used HS_DTRACE_PROBE_CDECL_N and HS_DTRACE_PROBE_N > directly instead of just using DTRACE_PROBE[N] like all other JNI methods. > This doesn't matter for the Solaris macros, but on GNU/Linux the macros > don't use direct function declarations (which is introduced in the second > patch). > > The second patch introduces the DTRACE macros for use with the GNU/Linux > SystemTap provided sys/sdt.h. Like Solaris this uses USDT1, but using > macros instead of function declaractions. So it just adds a check for > whether USDT1 is used with SOLARIS (HS_DTRACE_WORKAROUND_TAIL_CALL_BUG > is only needed there) and defines HS_DTRACE_PROBE[N] for the LINUX case. > > The third patch enables the support in the build. I took the approach > used in the make/solaris/dtrace.make and vm.make file with a test to > see whether sys/sdt.h is available or not and printing a notice when > they are not found. In IcedTea there is a more elaborate configure > check to see if a small C++ program can be build with DTRACE probes > in it, but that looked like overkill here. > > The last patch introduces a small jtreg based testcase that checks > whether this is a GNU/Linux build with ENABLE_DTRACE and in that case > makes sure the SDT probes are actually there in libjvm.so. > > src/share/vm/prims/jni.cpp | 11 +--- > src/share/vm/utilities/dtrace.hpp | 50 ++++++++++++++++++++- > make/linux/makefiles/dtrace.make | 24 +++++++++ > make/linux/makefiles/vm.make | 2 +- > test/serviceability/SDTProbesGNULinuxTest.sh | 68 ++++++++++++++++++++++++++++ > 5 files changed, 145 insertions(+), 10 deletions(-) > > Patches in separate emails. > > Thanks, > > Mark From coleen.phillimore at oracle.com Fri Jul 20 12:45:39 2012 From: coleen.phillimore at oracle.com (coleen.phillimore at oracle.com) Date: Fri, 20 Jul 2012 19:45:39 +0000 Subject: hg: hsx/hotspot-main/hotspot: 9 new changesets Message-ID: <20120720194558.9F7B547173@hg.openjdk.java.net> Changeset: d900d95bfdb0 Author: fparain Date: 2012-07-16 04:06 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/d900d95bfdb0 7183754: Test runtime/6294277/Test6294277.sh runs wrong JVM Reviewed-by: kamg, coleenp, ctornqvi ! test/runtime/6294277/SourceDebugExtension.java - test/runtime/6294277/Test6294277.sh Changeset: 149c36689fcb Author: asaha Date: 2012-07-17 22:16 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/149c36689fcb 7053586: TEST: runtime/7020373/Test7020373.sh fails on 64-bit platforms Reviewed-by: kamg ! test/runtime/7020373/Test7020373.sh Changeset: 7e5976e66c62 Author: zgu Date: 2012-07-19 09:05 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/7e5976e66c62 7182543: NMT ON: Aggregate a few NMT related bugs Summary: 1) Fixed MemTrackWorker::generations_in_used() calculation 2) Ensured NMT not to leak memory recorders after shutdown 3) Used ThreadCritical to block safepoint safe threads Reviewed-by: acorn, coleenp, dholmes, kvn ! src/share/vm/services/memRecorder.cpp ! src/share/vm/services/memRecorder.hpp ! src/share/vm/services/memTrackWorker.hpp ! src/share/vm/services/memTracker.cpp ! src/share/vm/services/memTracker.hpp Changeset: f1f45dddb0bd Author: zgu Date: 2012-07-16 14:10 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/f1f45dddb0bd 7181986: NMT ON: Assertion failure when running jdi ExpiredRequestDeletionTest Summary: Changed _query_lock to heap object from static object. Also fixed _query_lock and snapshot lock ranks, so they can participate deadlock detection. Reviewed-by: coleenp, dholmes, kvn ! src/share/vm/services/memSnapshot.cpp ! src/share/vm/services/memTracker.cpp ! src/share/vm/services/memTracker.hpp Changeset: d5bc62fcfac7 Author: zgu Date: 2012-07-19 09:10 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/d5bc62fcfac7 Merge ! src/share/vm/services/memTracker.cpp ! src/share/vm/services/memTracker.hpp Changeset: 04a9b3789683 Author: zgu Date: 2012-07-16 14:05 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/04a9b3789683 7181989: NMT ON: Assertion failure when NMT checks thread's native stack base address Summary: Assertion on stack base is not necessary Reviewed-by: coleenp, dholmes, kvn ! src/share/vm/services/memTracker.cpp Changeset: 58a04a45a549 Author: zgu Date: 2012-07-19 09:15 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/58a04a45a549 Merge ! src/share/vm/services/memTracker.cpp Changeset: 950ed41429e5 Author: zgu Date: 2012-07-19 06:24 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/950ed41429e5 Merge Changeset: 12fc2571a6e2 Author: coleenp Date: 2012-07-20 12:09 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/12fc2571a6e2 Merge - test/runtime/6294277/Test6294277.sh From david.holmes at oracle.com Sat Jul 21 00:48:21 2012 From: david.holmes at oracle.com (David Holmes) Date: Sat, 21 Jul 2012 17:48:21 +1000 Subject: [PATCH 0 of 4] Add support for dtrace compatible sdt probes on GNU/Linux In-Reply-To: References: <500711BF.4050301@oracle.com> Message-ID: <500A5EC5.8070201@oracle.com> I'd love to see webrevs for these patches. It's just too hard to evaluate a patch directly. Thanks, David On 21/07/2012 12:34 AM, Mark Wielaard wrote: > Hi, > > This is a rebased version of the original patch set from last May against > current hsx/hotspot-main. This version contains an extra patch with a > simple testcase that makes sure that on GNU/Linux systems build with > ENABLE_DTRACE the SDT probes are actually there. > > They don't have to be applied all at once. Just apply those in the serie > you feel are good to go. The later patches do depend on the earlier ones. > But I rather see only the first applied and get feedback on why the later > ones aren't good enough yet, than not get anything applied. > > Please let me know if there is anything else I can do to get these applied. > > The first patch is just a consistency cleanup patch. The JNI Set and > SetStatic Field methods used HS_DTRACE_PROBE_CDECL_N and HS_DTRACE_PROBE_N > directly instead of just using DTRACE_PROBE[N] like all other JNI methods. > This doesn't matter for the Solaris macros, but on GNU/Linux the macros > don't use direct function declarations (which is introduced in the second > patch). > > The second patch introduces the DTRACE macros for use with the GNU/Linux > SystemTap provided sys/sdt.h. Like Solaris this uses USDT1, but using > macros instead of function declaractions. So it just adds a check for > whether USDT1 is used with SOLARIS (HS_DTRACE_WORKAROUND_TAIL_CALL_BUG > is only needed there) and defines HS_DTRACE_PROBE[N] for the LINUX case. > > The third patch enables the support in the build. I took the approach > used in the make/solaris/dtrace.make and vm.make file with a test to > see whether sys/sdt.h is available or not and printing a notice when > they are not found. In IcedTea there is a more elaborate configure > check to see if a small C++ program can be build with DTRACE probes > in it, but that looked like overkill here. > > The last patch introduces a small jtreg based testcase that checks > whether this is a GNU/Linux build with ENABLE_DTRACE and in that case > makes sure the SDT probes are actually there in libjvm.so. > > src/share/vm/prims/jni.cpp | 11 +--- > src/share/vm/utilities/dtrace.hpp | 50 ++++++++++++++++++++- > make/linux/makefiles/dtrace.make | 24 +++++++++ > make/linux/makefiles/vm.make | 2 +- > test/serviceability/SDTProbesGNULinuxTest.sh | 68 ++++++++++++++++++++++++++++ > 5 files changed, 145 insertions(+), 10 deletions(-) > > Patches in separate emails. > > Thanks, > > Mark From mjw at redhat.com Sat Jul 21 02:08:49 2012 From: mjw at redhat.com (Mark Wielaard) Date: Sat, 21 Jul 2012 11:08:49 +0200 Subject: [PATCH 0 of 4] Add support for dtrace compatible sdt probes on GNU/Linux In-Reply-To: <500A5EC5.8070201@oracle.com> References: <500711BF.4050301@oracle.com> <500A5EC5.8070201@oracle.com> Message-ID: <20120721090848.GA24462@toonder.wildebeest.org> On Sat, Jul 21, 2012 at 05:48:21PM +1000, David Holmes wrote: > I'd love to see webrevs for these patches. Patches as webrevs here: http://icedtea.classpath.org/~mjw/webrev/7170638/ From david.holmes at oracle.com Sat Jul 21 15:10:17 2012 From: david.holmes at oracle.com (David Holmes) Date: Sun, 22 Jul 2012 08:10:17 +1000 Subject: [PATCH 0 of 4] Add support for dtrace compatible sdt probes on GNU/Linux In-Reply-To: <20120721090848.GA24462@toonder.wildebeest.org> References: <500711BF.4050301@oracle.com> <500A5EC5.8070201@oracle.com> <20120721090848.GA24462@toonder.wildebeest.org> Message-ID: <500B28C9.6010704@oracle.com> On 21/07/2012 7:08 PM, Mark Wielaard wrote: > On Sat, Jul 21, 2012 at 05:48:21PM +1000, David Holmes wrote: >> I'd love to see webrevs for these patches. > > Patches as webrevs here: http://icedtea.classpath.org/~mjw/webrev/7170638/ Thanks. Unfortunately it didn't help with patch 1 as I can't mentally expand all those nested macros (in original or new). :( How portable is sys/sdt.h? Does it vary from linux to linux? What happens if you build on linux A (as we do) and then run on linux B, C, D ... ? What if it is not available at runtime? Will we get dynamic link failures or ? Thanks, David From mjw at redhat.com Sun Jul 22 00:17:47 2012 From: mjw at redhat.com (Mark Wielaard) Date: Sun, 22 Jul 2012 09:17:47 +0200 Subject: [PATCH 0 of 4] Add support for dtrace compatible sdt probes on GNU/Linux In-Reply-To: <500B28C9.6010704@oracle.com> References: <500711BF.4050301@oracle.com> <500A5EC5.8070201@oracle.com> <20120721090848.GA24462@toonder.wildebeest.org> <500B28C9.6010704@oracle.com> Message-ID: <1342941467.30850.13.camel@springer.wildebeest.org> On Sun, 2012-07-22 at 08:10 +1000, David Holmes wrote: > How portable is sys/sdt.h? Does it vary from linux to linux? What > happens if you build on linux A (as we do) and then run on linux B, C, D > ... ? What if it is not available at runtime? Will we get dynamic link > failures or ? There is only one sys/sdt.h. The only code it "generates" is a NOP instruction. For the rest it is like debug info, just an additional ELF notes section with additional info on the binary (the only difference being that this one is never stripped away). There is no runtime. There are just tools like readelf, gdb, stap, that can interpret the extra observability info in the ELF note section (and place breakpoints on the NOP instructions if so instructed). See also http://sourceware.org/systemtap/wiki/UserSpaceProbeImplementation Cheers, Mark From mjw at redhat.com Sun Jul 22 00:51:05 2012 From: mjw at redhat.com (Mark Wielaard) Date: Sun, 22 Jul 2012 09:51:05 +0200 Subject: [PATCH 0 of 4] Add support for dtrace compatible sdt probes on GNU/Linux In-Reply-To: <500B28C9.6010704@oracle.com> References: <500711BF.4050301@oracle.com> <500A5EC5.8070201@oracle.com> <20120721090848.GA24462@toonder.wildebeest.org> <500B28C9.6010704@oracle.com> Message-ID: <1342943465.30850.19.camel@springer.wildebeest.org> On Sun, 2012-07-22 at 08:10 +1000, David Holmes wrote: > On 21/07/2012 7:08 PM, Mark Wielaard wrote: > > On Sat, Jul 21, 2012 at 05:48:21PM +1000, David Holmes wrote: > >> I'd love to see webrevs for these patches. > > > > Patches as webrevs here: http://icedtea.classpath.org/~mjw/webrev/7170638/ > > Thanks. Unfortunately it didn't help with patch 1 as I can't mentally > expand all those nested macros (in original or new). :( It just follows the pattern from the rest of jni.h. That patch is really just a cleanup to make things more consistent. From my explanation: The first patch is just a consistency cleanup patch. The JNI Set and SetStatic Field methods used HS_DTRACE_PROBE_CDECL_N and HS_DTRACE_PROBE_N directly instead of just using DTRACE_PROBE[N] like all other JNI methods. This doesn't matter for the Solaris macros, but on GNU/Linux the macros don't use direct function declarations (which is introduced in the second patch). Back in May Keith said: Ok, might be that it's fine. I don't remember if there was a reason that SetStatic was different from the other JNI calls, but it certainly could just have been an omission in refactoring or something. We just need to make sure that it still works (solaris-dtrace-wise). It's certainly better this way! So if at least this patch can now finally be applied we are making at least some progress. Thanks, Mark From david.holmes at oracle.com Sun Jul 22 01:09:31 2012 From: david.holmes at oracle.com (David Holmes) Date: Sun, 22 Jul 2012 18:09:31 +1000 Subject: [PATCH 0 of 4] Add support for dtrace compatible sdt probes on GNU/Linux In-Reply-To: <1342943465.30850.19.camel@springer.wildebeest.org> References: <500711BF.4050301@oracle.com> <500A5EC5.8070201@oracle.com> <20120721090848.GA24462@toonder.wildebeest.org> <500B28C9.6010704@oracle.com> <1342943465.30850.19.camel@springer.wildebeest.org> Message-ID: <500BB53B.1040203@oracle.com> On 22/07/2012 5:51 PM, Mark Wielaard wrote: > On Sun, 2012-07-22 at 08:10 +1000, David Holmes wrote: >> On 21/07/2012 7:08 PM, Mark Wielaard wrote: >>> On Sat, Jul 21, 2012 at 05:48:21PM +1000, David Holmes wrote: >>>> I'd love to see webrevs for these patches. >>> >>> Patches as webrevs here: http://icedtea.classpath.org/~mjw/webrev/7170638/ >> >> Thanks. Unfortunately it didn't help with patch 1 as I can't mentally >> expand all those nested macros (in original or new). :( > > It just follows the pattern from the rest of jni.h. That patch is really > just a cleanup to make things more consistent. From my explanation: I'm having trouble understanding the orignal FP_SELECT_##Result macro and the inversion between its use with respect to the probe in the old and new code. I need to spend some time seeing what it does. But I understand what you are saying about using the DTRACE_PROBE[N] forms. Thanks, David > The first patch is just a consistency cleanup patch. The JNI Set > and > SetStatic Field methods used HS_DTRACE_PROBE_CDECL_N and HS_DTRACE_PROBE_N > directly instead of just using DTRACE_PROBE[N] like all other JNI methods. > This doesn't matter for the Solaris macros, but on GNU/Linux the macros > don't use direct function declarations (which is introduced in the second > patch). > > Back in May Keith said: > > Ok, might be that it's fine. I don't remember if there was a > reason that SetStatic was different from the other JNI calls, > but it certainly could just have been an omission in refactoring > or something. We just need to make sure that it still works > (solaris-dtrace-wise). It's certainly better this way! > > So if at least this patch can now finally be applied we are making at > least some progress. > > Thanks, > > Mark > From mjw at redhat.com Sun Jul 22 02:47:17 2012 From: mjw at redhat.com (Mark Wielaard) Date: Sun, 22 Jul 2012 11:47:17 +0200 Subject: [PATCH 0 of 4] Add support for dtrace compatible sdt probes on GNU/Linux In-Reply-To: <500BB53B.1040203@oracle.com> References: <500711BF.4050301@oracle.com> <500A5EC5.8070201@oracle.com> <20120721090848.GA24462@toonder.wildebeest.org> <500B28C9.6010704@oracle.com> <1342943465.30850.19.camel@springer.wildebeest.org> <500BB53B.1040203@oracle.com> Message-ID: <20120722094716.GB17724@toonder.wildebeest.org> On Sun, Jul 22, 2012 at 06:09:31PM +1000, David Holmes wrote: > On 22/07/2012 5:51 PM, Mark Wielaard wrote: > >On Sun, 2012-07-22 at 08:10 +1000, David Holmes wrote: > >>On 21/07/2012 7:08 PM, Mark Wielaard wrote: > >>>On Sat, Jul 21, 2012 at 05:48:21PM +1000, David Holmes wrote: > >>>>I'd love to see webrevs for these patches. > >>> > >>>Patches as webrevs here: http://icedtea.classpath.org/~mjw/webrev/7170638/ > >> > >>Thanks. Unfortunately it didn't help with patch 1 as I can't mentally > >>expand all those nested macros (in original or new). :( > > > >It just follows the pattern from the rest of jni.h. That patch is really > >just a cleanup to make things more consistent. From my explanation: > > I'm having trouble understanding the orignal FP_SELECT_##Result > macro and the inversion between its use with respect to the probe in > the old and new code. I need to spend some time seeing what it does. Yeah, that macro is somewhat hairy. But it is used likewise in the rest of jni.cpp. It is easiest to understand if you know that the SDT probes don't handle floating point arguments (this is a limitation shared by all implementations, GNU/Linux, Solaris, MacOS). The macro is generically expressed as selecting either an integer code path or a float code path. But in practice it is just used to suppress the float arguments. In the original variant the macro adds the value set as argument (plus a comma) if the Set[Static]#Result#Field was an integer argument, or adds the comment /* empty */ instead of the argument if the Result was of floating point type. In the new variant the macro just selects a DTRACE_PROBE4 variant (with value argument) for the integer case, or a DTRACE_PROBE3 variant (without the value argument) for the floating point case. Hope that helps, Mark From coleen.phillimore at oracle.com Mon Jul 23 09:13:56 2012 From: coleen.phillimore at oracle.com (Coleen Phillimore) Date: Mon, 23 Jul 2012 12:13:56 -0400 Subject: Latest PermGen elimination webrev In-Reply-To: <4FF47497.8010307@oracle.com> References: <4FF47497.8010307@oracle.com> Message-ID: <500D7844.50505@oracle.com> This is the latest Permgen Elimination work. open webrev at http://cr.openjdk.java.net/~coleenp/metadata7 Merged with NMT and fixed some bugs. Coleen On 7/4/2012 12:51 PM, Coleen Phillimore wrote: > > The latest webrev of the Permgen Elimination work is available here: > > open webrev at http://cr.openjdk.java.net/~coleenp/metadata6 > > This is relative to this changeset in the hotspot-gc repository: > changeset: 3462:3759236eea14 > > Since the last published webrev there have been some bug fixes, > cleanups and merging. Please look at areas of interest to you and we > welcome all comments. > > Thanks, > Coleen From alejandro.murillo at oracle.com Mon Jul 23 19:00:15 2012 From: alejandro.murillo at oracle.com (alejandro.murillo at oracle.com) Date: Tue, 24 Jul 2012 02:00:15 +0000 Subject: hg: hsx/hsx24/hotspot: 29 new changesets Message-ID: <20120724020116.B87DE471C5@hg.openjdk.java.net> Changeset: e3619706a725 Author: cl Date: 2012-07-23 12:38 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/e3619706a725 Added tag jdk8-b48 for changeset 1e26f61bbb52 ! .hgtags Changeset: 54e66510c9cd Author: amurillo Date: 2012-07-13 14:16 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/54e66510c9cd 7184050: new hotspot build - hs24-b17 Reviewed-by: jcoomes ! make/hotspot_version Changeset: 8150fa46d2ed Author: jiangli Date: 2012-06-26 19:08 -0400 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/8150fa46d2ed 7178145: Change constMethodOop::_exception_table to optionally inlined u2 table. Summary: Change constMethodOop::_exception_table to optionally inlined u2 table. Reviewed-by: bdelsart, coleenp, kamg ! agent/src/share/classes/sun/jvm/hotspot/oops/ConstMethod.java + agent/src/share/classes/sun/jvm/hotspot/oops/ExceptionTableElement.java ! agent/src/share/classes/sun/jvm/hotspot/oops/GenerateOopMap.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Method.java ! agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java ! agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java ! src/share/vm/ci/ciMethod.cpp ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/classFileParser.hpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/classfile/verifier.cpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/memory/dump.cpp ! src/share/vm/memory/oopFactory.cpp ! src/share/vm/memory/oopFactory.hpp ! src/share/vm/oops/constMethodKlass.cpp ! src/share/vm/oops/constMethodKlass.hpp ! src/share/vm/oops/constMethodOop.cpp ! src/share/vm/oops/constMethodOop.hpp ! src/share/vm/oops/generateOopMap.cpp ! src/share/vm/oops/methodOop.cpp ! src/share/vm/oops/methodOop.hpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/jvmtiClassFileReconstituter.cpp ! src/share/vm/prims/jvmtiRedefineClasses.cpp ! src/share/vm/prims/methodHandleWalk.cpp ! src/share/vm/runtime/relocator.cpp ! src/share/vm/runtime/vmStructs.cpp Changeset: f0b82641fb7e Author: bdelsart Date: 2012-07-02 04:19 -0400 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/f0b82641fb7e Merge ! src/share/vm/classfile/verifier.cpp ! src/share/vm/memory/dump.cpp ! src/share/vm/runtime/vmStructs.cpp Changeset: d68b1274b9ba Author: jiangli Date: 2012-07-05 18:47 -0400 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/d68b1274b9ba 7180914: Compilation warning after: 7172967: Eliminate the constMethod's _method backpointer to the methodOop. Summary: Use read_pointer(J...) to access from 'constMethod' base in name_for_methodOop(), libjvm_db.c. Reviewed-by: kvn, coleenp ! src/os/solaris/dtrace/libjvm_db.c Changeset: 161ae369407d Author: jiangli Date: 2012-07-05 20:54 -0400 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/161ae369407d 7181632: nsk classLoad001_14 failure and CompileTheWorld crash after 7178145. Summary: Need to copy the inlined exception table to the new constMethodOop during method rewriting. Reviewed-by: coleenp, dholmes ! src/share/vm/oops/methodOop.cpp Changeset: e74da3c2b827 Author: jiangli Date: 2012-07-13 20:14 -0400 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/e74da3c2b827 Merge ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/oops/methodOop.hpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/jvmtiClassFileReconstituter.cpp ! src/share/vm/prims/jvmtiRedefineClasses.cpp ! src/share/vm/runtime/vmStructs.cpp Changeset: 0bca41b2fa63 Author: jiangli Date: 2012-07-17 12:32 -0400 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/0bca41b2fa63 Merge Changeset: 922993931b3d Author: brutisso Date: 2012-07-11 22:47 +0200 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause Summary: Also reviewed by: vitalyd at gmail.com. Move the timing out of G1CollectorPolicy into the G1GCPhaseTimes class Reviewed-by: johnc ! src/share/vm/gc_implementation/g1/concurrentG1Refine.cpp ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp + src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp + src/share/vm/gc_implementation/g1/g1GCPhaseTimes.hpp ! src/share/vm/gc_implementation/g1/g1RemSet.cpp Changeset: 3a431b605145 Author: jmasa Date: 2012-07-16 13:00 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/3a431b605145 Merge ! src/share/vm/gc_implementation/g1/concurrentG1Refine.cpp ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp + src/share/vm/gc_implementation/g1/g1GCPhaseTimes.hpp ! src/share/vm/gc_implementation/g1/g1RemSet.cpp Changeset: 7553d441b878 Author: jmasa Date: 2012-07-17 14:33 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/7553d441b878 Merge Changeset: 6d8f36bcef55 Author: jrose Date: 2012-07-12 00:39 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/6d8f36bcef55 6711908: JVM needs direct access to some annotations Summary: Add annotation extraction code to class file parser. Reviewed-by: twisti, jrose, kvn Contributed-by: michael.haupt at oracle.com ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/ci/ciMethod.hpp ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/classFileParser.hpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/oops/methodOop.hpp Changeset: ed21db7b3fda Author: kvn Date: 2012-07-13 17:48 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/ed21db7b3fda 7123926: Some CTW test crash: !_control.contains(ctrl) Summary: Don't eliminate Integer::toString() call node during String concatenation optimization if it has several uses. Reviewed-by: twisti ! src/share/vm/opto/stringopts.cpp Changeset: 56c4f88474b3 Author: twisti Date: 2012-07-16 11:14 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/56c4f88474b3 7087357: JSR 292: remove obsolete code after 7085860 Reviewed-by: kvn, never ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/prims/methodHandles.cpp ! src/share/vm/prims/unsafe.cpp Changeset: 2c368ea3e844 Author: kvn Date: 2012-07-16 17:10 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/2c368ea3e844 7181494: cleanup avx and vectors code Summary: renamed mach nodes which use scalar AVX instructions, added integer vectors shuffling instructions Reviewed-by: twisti ! src/cpu/x86/vm/assembler_x86.cpp ! src/cpu/x86/vm/assembler_x86.hpp ! src/cpu/x86/vm/vm_version_x86.cpp ! src/cpu/x86/vm/x86.ad ! src/share/vm/code/vmreg.hpp Changeset: 9c9fb30d2b3b Author: kvn Date: 2012-07-16 19:50 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/9c9fb30d2b3b Merge ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/classFileParser.hpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/oops/methodOop.hpp ! src/share/vm/prims/unsafe.cpp Changeset: dd785aabe02b Author: kvn Date: 2012-07-17 11:16 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/dd785aabe02b Merge ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/classFileParser.hpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/oops/methodOop.hpp Changeset: bc3e01899804 Author: kvn Date: 2012-07-19 16:17 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/bc3e01899804 Merge Changeset: d900d95bfdb0 Author: fparain Date: 2012-07-16 04:06 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/d900d95bfdb0 7183754: Test runtime/6294277/Test6294277.sh runs wrong JVM Reviewed-by: kamg, coleenp, ctornqvi ! test/runtime/6294277/SourceDebugExtension.java - test/runtime/6294277/Test6294277.sh Changeset: 149c36689fcb Author: asaha Date: 2012-07-17 22:16 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/149c36689fcb 7053586: TEST: runtime/7020373/Test7020373.sh fails on 64-bit platforms Reviewed-by: kamg ! test/runtime/7020373/Test7020373.sh Changeset: 7e5976e66c62 Author: zgu Date: 2012-07-19 09:05 -0400 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/7e5976e66c62 7182543: NMT ON: Aggregate a few NMT related bugs Summary: 1) Fixed MemTrackWorker::generations_in_used() calculation 2) Ensured NMT not to leak memory recorders after shutdown 3) Used ThreadCritical to block safepoint safe threads Reviewed-by: acorn, coleenp, dholmes, kvn ! src/share/vm/services/memRecorder.cpp ! src/share/vm/services/memRecorder.hpp ! src/share/vm/services/memTrackWorker.hpp ! src/share/vm/services/memTracker.cpp ! src/share/vm/services/memTracker.hpp Changeset: f1f45dddb0bd Author: zgu Date: 2012-07-16 14:10 -0400 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/f1f45dddb0bd 7181986: NMT ON: Assertion failure when running jdi ExpiredRequestDeletionTest Summary: Changed _query_lock to heap object from static object. Also fixed _query_lock and snapshot lock ranks, so they can participate deadlock detection. Reviewed-by: coleenp, dholmes, kvn ! src/share/vm/services/memSnapshot.cpp ! src/share/vm/services/memTracker.cpp ! src/share/vm/services/memTracker.hpp Changeset: d5bc62fcfac7 Author: zgu Date: 2012-07-19 09:10 -0400 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/d5bc62fcfac7 Merge ! src/share/vm/services/memTracker.cpp ! src/share/vm/services/memTracker.hpp Changeset: 04a9b3789683 Author: zgu Date: 2012-07-16 14:05 -0400 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/04a9b3789683 7181989: NMT ON: Assertion failure when NMT checks thread's native stack base address Summary: Assertion on stack base is not necessary Reviewed-by: coleenp, dholmes, kvn ! src/share/vm/services/memTracker.cpp Changeset: 58a04a45a549 Author: zgu Date: 2012-07-19 09:15 -0400 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/58a04a45a549 Merge ! src/share/vm/services/memTracker.cpp Changeset: 950ed41429e5 Author: zgu Date: 2012-07-19 06:24 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/950ed41429e5 Merge Changeset: 12fc2571a6e2 Author: coleenp Date: 2012-07-20 12:09 -0400 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/12fc2571a6e2 Merge - test/runtime/6294277/Test6294277.sh Changeset: bd54fe36b5e5 Author: amurillo Date: 2012-07-23 12:54 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/bd54fe36b5e5 Merge - test/runtime/6294277/Test6294277.sh Changeset: 15eb2b903b04 Author: amurillo Date: 2012-07-23 12:54 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/15eb2b903b04 Added tag hs24-b17 for changeset bd54fe36b5e5 ! .hgtags From alejandro.murillo at oracle.com Mon Jul 23 20:49:34 2012 From: alejandro.murillo at oracle.com (alejandro.murillo at oracle.com) Date: Tue, 24 Jul 2012 03:49:34 +0000 Subject: hg: hsx/hotspot-main/hotspot: 4 new changesets Message-ID: <20120724034945.F21D7471C6@hg.openjdk.java.net> Changeset: e3619706a725 Author: cl Date: 2012-07-23 12:38 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/e3619706a725 Added tag jdk8-b48 for changeset 1e26f61bbb52 ! .hgtags Changeset: bd54fe36b5e5 Author: amurillo Date: 2012-07-23 12:54 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/bd54fe36b5e5 Merge - test/runtime/6294277/Test6294277.sh Changeset: 15eb2b903b04 Author: amurillo Date: 2012-07-23 12:54 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/15eb2b903b04 Added tag hs24-b17 for changeset bd54fe36b5e5 ! .hgtags Changeset: aba91a731143 Author: amurillo Date: 2012-07-23 13:04 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/aba91a731143 7185775: new hotspot build - hs24-b18 Reviewed-by: jcoomes ! make/hotspot_version From rkennke at redhat.com Tue Jul 24 12:42:09 2012 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 24 Jul 2012 21:42:09 +0200 Subject: [PATCH] Linux implementation for set_native_thread_name() Message-ID: <1343158929.5573.19.camel@mercury> Hello, The following patch implements set_native_thread_name() for Linux, which was so far unimplemented. The name needs to be truncated to 15 chars, otherwise it would not be accepted by pthread_setname_np() at all. http://cr.openjdk.java.net/~rkennke/linux_threadname/webrev.00/ This is my first patch to hotspot ever, so please let me know when I did anything fundamental wrong. I have another patch in the pipeline for implementing the other 2 missing methods in the same source file (distribute_processes() and bind_to_processor() ). What do you think? Kind regards, Roman From Dmitry.Samersoff at oracle.com Tue Jul 24 13:03:10 2012 From: Dmitry.Samersoff at oracle.com (Dmitry Samersoff) Date: Wed, 25 Jul 2012 00:03:10 +0400 Subject: [PATCH] Linux implementation for set_native_thread_name() In-Reply-To: <1343158929.5573.19.camel@mercury> References: <1343158929.5573.19.camel@mercury> Message-ID: <500EFF7E.9090505@oracle.com> Roman, Looks good for me except a nit: memcpy(buf,name,MAXTHREADNAMESIZE-1); buf[MAXTHREADNAMESIZE-1] = 0; is much faster then snprintf call. -Dmitry On 2012-07-24 23:42, Roman Kennke wrote: > Hello, > > The following patch implements set_native_thread_name() for Linux, which > was so far unimplemented. The name needs to be truncated to 15 chars, > otherwise it would not be accepted by pthread_setname_np() at all. > > http://cr.openjdk.java.net/~rkennke/linux_threadname/webrev.00/ > > This is my first patch to hotspot ever, so please let me know when I did > anything fundamental wrong. I have another patch in the pipeline for > implementing the other 2 missing methods in the same source file > (distribute_processes() and bind_to_processor() ). > > What do you think? > > Kind regards, Roman > > -- Dmitry Samersoff Java Hotspot development team, SPB04 * There will come soft rains ... From keith.mcguigan at oracle.com Tue Jul 24 13:17:46 2012 From: keith.mcguigan at oracle.com (keith mcguigan) Date: Tue, 24 Jul 2012 16:17:46 -0400 Subject: [PATCH] Linux implementation for set_native_thread_name() In-Reply-To: <1343158929.5573.19.camel@mercury> References: <1343158929.5573.19.camel@mercury> Message-ID: <500F02EA.8090203@oracle.com> I think it looks fine. Do you have a bug number for this? Also, how do we verify the result? -- - Keith On 7/24/2012 3:42 PM, Roman Kennke wrote: > Hello, > > The following patch implements set_native_thread_name() for Linux, which > was so far unimplemented. The name needs to be truncated to 15 chars, > otherwise it would not be accepted by pthread_setname_np() at all. > > http://cr.openjdk.java.net/~rkennke/linux_threadname/webrev.00/ > > This is my first patch to hotspot ever, so please let me know when I did > anything fundamental wrong. I have another patch in the pipeline for > implementing the other 2 missing methods in the same source file > (distribute_processes() and bind_to_processor() ). > > What do you think? > > Kind regards, Roman > > From rkennke at redhat.com Tue Jul 24 14:10:58 2012 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 24 Jul 2012 23:10:58 +0200 Subject: [PATCH] Linux implementation for set_native_thread_name() In-Reply-To: <500F02EA.8090203@oracle.com> References: <1343158929.5573.19.camel@mercury> <500F02EA.8090203@oracle.com> Message-ID: <1343164258.5573.43.camel@mercury> > I think it looks fine. Great! I posted an updated webrev for this (replaced snprint with jio_snprintf): http://cr.openjdk.java.net/~rkennke/linux_threadname/webrev.01/ > Do you have a bug number for this? No. (I don't have access to bugster anymore). > Also, how do we verify the result? I verified it using htop and by inspecting /proc/$PID/task/$TID/stat. Unfortuntately, I couldn't get top or ps to show the thread name, but maybe I'm just stupid (and I did not try very hard). Also: which of the many repositories do I need to push this to? Regards, Roman > -- > - Keith > > On 7/24/2012 3:42 PM, Roman Kennke wrote: > > Hello, > > > > The following patch implements set_native_thread_name() for Linux, which > > was so far unimplemented. The name needs to be truncated to 15 chars, > > otherwise it would not be accepted by pthread_setname_np() at all. > > > > http://cr.openjdk.java.net/~rkennke/linux_threadname/webrev.00/ > > > > This is my first patch to hotspot ever, so please let me know when I did > > anything fundamental wrong. I have another patch in the pipeline for > > implementing the other 2 missing methods in the same source file > > (distribute_processes() and bind_to_processor() ). > > > > What do you think? > > > > Kind regards, Roman > > > > From rkennke at redhat.com Wed Jul 25 04:06:15 2012 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 25 Jul 2012 13:06:15 +0200 Subject: [PATCH] Implement -XX:+BindGCTaskThreadsToCPUs for Linux Message-ID: <1343214375.5573.62.camel@mercury> I implemented the other two missing functions in os_linux.cpp (distribute_processes() and bind_to_processor() ) which implement support for the -XX:+BindGCTaskThreadsToCPUs option (together with -XX: +UseParallelGC), which distributes & binds GC worker threads to different processors. The implementation is adopted from os_solaris.cpp. In particular assign_distribution() is almost 1:1 copy (except for the type diff processor_t vs. uint). It could be worth extracting this into a shared method, but on the other hand, there is potential for divergence (for example, for NUMA support. See my related question here: http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2012-July/004751.html ). Just like the implementation for Solaris, we first check if we are running in a CPU set, and take this as a basis. I did not implement the other case though, it seems like a really rare fallback (processes that do not have any particular processor affinity return affinity with all processors set). Plus, if that call to pthread_getaffinity_np() does not work, it seems likely that the following call to pthread_setaffinity_np() doesn't work either (because lack of permissions or lack of support in the kernel or such). Please let me know if you think it's worth to implement this case anyway and use the set of all online processors then. Opinions about that patch? http://cr.openjdk.java.net/~rkennke/linux_gc_workers/webrev.00/ Kind regards, Roman From zhengyu.gu at oracle.com Wed Jul 25 10:47:00 2012 From: zhengyu.gu at oracle.com (Zhengyu Gu) Date: Wed, 25 Jul 2012 13:47:00 -0400 Subject: Code review request: 7186778 MachO decoder implementation for MacOSX Message-ID: <50103114.2060301@oracle.com> This is the implementation of MachO decoder for MacOSX. The implementation is based on the patch provided by Kevin Walls, I modified it to fit it into current decoder framework. CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7186778 Webrev: http://cr.openjdk.java.net/~zgu/7186778/webrev.00/ Tests: The repo has ran through JPRT. I also used NMT queries to display the decoded callsites. Thanks, -Zhengyu From mjw at redhat.com Thu Jul 26 03:28:37 2012 From: mjw at redhat.com (Mark Wielaard) Date: Thu, 26 Jul 2012 12:28:37 +0200 Subject: [PATCH 0 of 4] Add support for dtrace compatible sdt probes on GNU/Linux In-Reply-To: References: <500711BF.4050301@oracle.com> Message-ID: <1343298517.16205.14.camel@springer.wildebeest.org> On Fri, 2012-07-20 at 16:34 +0200, Mark Wielaard wrote: > This is a rebased version of the original patch set from last May against > current hsx/hotspot-main. This version contains an extra patch with a > simple testcase that makes sure that on GNU/Linux systems build with > ENABLE_DTRACE the SDT probes are actually there. > > They don't have to be applied all at once. Just apply those in the serie > you feel are good to go. The later patches do depend on the earlier ones. > But I rather see only the first applied and get feedback on why the later > ones aren't good enough yet, than not get anything applied. > > Please let me know if there is anything else I can do to get these applied. Ping. Just making sure this isn't stalled again and we are making progress. Can these patches be applied now? Thanks, Mark From david.holmes at oracle.com Thu Jul 26 05:00:17 2012 From: david.holmes at oracle.com (David Holmes) Date: Thu, 26 Jul 2012 22:00:17 +1000 Subject: [PATCH] Linux implementation for set_native_thread_name() In-Reply-To: <1343164258.5573.43.camel@mercury> References: <1343158929.5573.19.camel@mercury> <500F02EA.8090203@oracle.com> <1343164258.5573.43.camel@mercury> Message-ID: <50113151.7020207@oracle.com> Roman, On 25/07/2012 7:10 AM, Roman Kennke wrote: >> I think it looks fine. > > Great! I posted an updated webrev for this (replaced snprint with > jio_snprintf): You are assuming that these non-posix pthread extensions will always exist. Do we know that is true for all Linux's - including potentially custom distributions on embedded systems? I think we need dynamic lookup of the function, as done elsewhere, to verify that it exists. > http://cr.openjdk.java.net/~rkennke/linux_threadname/webrev.01/ This also has the distribute_processes etc changes, which should be handled seperately. >> Do you have a bug number for this? > > No. (I don't have access to bugster anymore). Bugster is nearly dead - long live Jira :) But for now someone will need to create a bug for this ... though it may already exist from when this function was added. >> Also, how do we verify the result? > > I verified it using htop and by inspecting /proc/$PID/task/$TID/stat. > Unfortuntately, I couldn't get top or ps to show the thread name, but > maybe I'm just stupid (and I did not try very hard). gdb? Not sure how this shows up on OSX. If the name doesn't appear in anything useful then there's not much point implementing the method. > Also: which of the many repositories do I need to push this to? It would go into hsx/hotspot-rt forest, but you can't push it directly. All hotspot changes must go via JPRT so you will need a sponsor. Cheers, David > Regards, > Roman > >> -- >> - Keith >> >> On 7/24/2012 3:42 PM, Roman Kennke wrote: >>> Hello, >>> >>> The following patch implements set_native_thread_name() for Linux, which >>> was so far unimplemented. The name needs to be truncated to 15 chars, >>> otherwise it would not be accepted by pthread_setname_np() at all. >>> >>> http://cr.openjdk.java.net/~rkennke/linux_threadname/webrev.00/ >>> >>> This is my first patch to hotspot ever, so please let me know when I did >>> anything fundamental wrong. I have another patch in the pipeline for >>> implementing the other 2 missing methods in the same source file >>> (distribute_processes() and bind_to_processor() ). >>> >>> What do you think? >>> >>> Kind regards, Roman >>> >>> > > From rkennke at redhat.com Thu Jul 26 05:18:49 2012 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 26 Jul 2012 14:18:49 +0200 Subject: [PATCH] Linux implementation for set_native_thread_name() In-Reply-To: <50113151.7020207@oracle.com> References: <1343158929.5573.19.camel@mercury> <500F02EA.8090203@oracle.com> <1343164258.5573.43.camel@mercury> <50113151.7020207@oracle.com> Message-ID: <1343305129.11524.11.camel@mercury> Am Donnerstag, den 26.07.2012, 22:00 +1000 schrieb David Holmes: > Roman, > > On 25/07/2012 7:10 AM, Roman Kennke wrote: > >> I think it looks fine. > > > > Great! I posted an updated webrev for this (replaced snprint with > > jio_snprintf): > > You are assuming that these non-posix pthread extensions will always > exist. Do we know that is true for all Linux's - including potentially > custom distributions on embedded systems? I think we need dynamic lookup > of the function, as done elsewhere, to verify that it exists. Do you mean at runtime, using dlopen or such? Or at compile time, using #ifdefs ? > > http://cr.openjdk.java.net/~rkennke/linux_threadname/webrev.01/ > > This also has the distribute_processes etc changes, which should be > handled seperately. Uff. I messed up something there. Please find the real webrev here: http://cr.openjdk.java.net/~rkennke/linux_threadname/webrev.02/ > >> Do you have a bug number for this? > > > > No. (I don't have access to bugster anymore). > > Bugster is nearly dead - long live Jira :) Wow, cool! > But for now someone will need > to create a bug for this ... though it may already exist from when this > function was added. > > >> Also, how do we verify the result? > > > > I verified it using htop and by inspecting /proc/$PID/task/$TID/stat. > > Unfortuntately, I couldn't get top or ps to show the thread name, but > > maybe I'm just stupid (and I did not try very hard). > > gdb? Not sure how this shows up on OSX. If the name doesn't appear in > anything useful then there's not much point implementing the method. Yes, gdb shows the thread name as well (dunno why I forgot about this most obvious use case). > > Also: which of the many repositories do I need to push this to? > > It would go into hsx/hotspot-rt forest, but you can't push it directly. > All hotspot changes must go via JPRT so you will need a sponsor. Ok. I think Keith said he can do this. :-) Thanks! Regards, Roman From david.holmes at oracle.com Thu Jul 26 05:18:52 2012 From: david.holmes at oracle.com (David Holmes) Date: Thu, 26 Jul 2012 22:18:52 +1000 Subject: [PATCH 0 of 4] Add support for dtrace compatible sdt probes on GNU/Linux In-Reply-To: <1343298517.16205.14.camel@springer.wildebeest.org> References: <500711BF.4050301@oracle.com> <1343298517.16205.14.camel@springer.wildebeest.org> Message-ID: <501135AC.50902@oracle.com> Hi Mark, On 26/07/2012 8:28 PM, Mark Wielaard wrote: > On Fri, 2012-07-20 at 16:34 +0200, Mark Wielaard wrote: >> This is a rebased version of the original patch set from last May against >> current hsx/hotspot-main. This version contains an extra patch with a >> simple testcase that makes sure that on GNU/Linux systems build with >> ENABLE_DTRACE the SDT probes are actually there. >> >> They don't have to be applied all at once. Just apply those in the serie >> you feel are good to go. The later patches do depend on the earlier ones. >> But I rather see only the first applied and get feedback on why the later >> ones aren't good enough yet, than not get anything applied. >> >> Please let me know if there is anything else I can do to get these applied. > > Ping. Just making sure this isn't stalled again and we are making > progress. Can these patches be applied now? Someone needs to sponsor this for you - hopefully Keith or Serguei will be able to spare the time. Sorry for the delay. David From david.holmes at oracle.com Thu Jul 26 05:41:49 2012 From: david.holmes at oracle.com (David Holmes) Date: Thu, 26 Jul 2012 22:41:49 +1000 Subject: [PATCH] Linux implementation for set_native_thread_name() In-Reply-To: <1343305129.11524.11.camel@mercury> References: <1343158929.5573.19.camel@mercury> <500F02EA.8090203@oracle.com> <1343164258.5573.43.camel@mercury> <50113151.7020207@oracle.com> <1343305129.11524.11.camel@mercury> Message-ID: <50113B0D.1060002@oracle.com> On 26/07/2012 10:18 PM, Roman Kennke wrote: > Am Donnerstag, den 26.07.2012, 22:00 +1000 schrieb David Holmes: >> Roman, >> >> On 25/07/2012 7:10 AM, Roman Kennke wrote: >>>> I think it looks fine. >>> >>> Great! I posted an updated webrev for this (replaced snprint with >>> jio_snprintf): >> >> You are assuming that these non-posix pthread extensions will always >> exist. Do we know that is true for all Linux's - including potentially >> custom distributions on embedded systems? I think we need dynamic lookup >> of the function, as done elsewhere, to verify that it exists. > > Do you mean at runtime, using dlopen or such? Or at compile time, using > #ifdefs ? Runtime using dlsym, the same way we look for the "optional" POSIX functions like clock_gettime. The support for this in linux/libc is very recent (in OS terms): http://sourceware.org/ml/libc-help/2010-03/msg00015.html You might also follow the BSD version and add a Java prefix: if (name != NULL) { // Add a "Java: " prefix to the name char buf[MAXTHREADNAMESIZE]; snprintf(buf, sizeof(buf), "Java: %s", name); pthread_setname_np(buf); } though that concerns me if MAXTHREADNAMESIZE is only 16! Can you tell me where this max name size is coming from? I can google different docs for pthread_setname_np and some say it internally limits the name length, while others say if the name is too long it gives an E2BIG error. The source code at http://sourceware.org/ml/libc-help/2010-03/msg00015.html does not set a specific limit on the length but will return a error if it can't write the full name. In contrast the cygwin version: http://www.mail-archive.com/cygwin-patches at cygwin.com/msg05387.html sets a limit of 16(actually 15 characters plus NUL) and returns ERANGE. This is why we try to stay away from the ill-defined _np functions. David ----- > >>> http://cr.openjdk.java.net/~rkennke/linux_threadname/webrev.01/ >> >> This also has the distribute_processes etc changes, which should be >> handled seperately. > > Uff. I messed up something there. Please find the real webrev here: > > http://cr.openjdk.java.net/~rkennke/linux_threadname/webrev.02/ > > >>>> Do you have a bug number for this? >>> >>> No. (I don't have access to bugster anymore). >> >> Bugster is nearly dead - long live Jira :) > > Wow, cool! > >> But for now someone will need >> to create a bug for this ... though it may already exist from when this >> function was added. >> >>>> Also, how do we verify the result? >>> >>> I verified it using htop and by inspecting /proc/$PID/task/$TID/stat. >>> Unfortuntately, I couldn't get top or ps to show the thread name, but >>> maybe I'm just stupid (and I did not try very hard). >> >> gdb? Not sure how this shows up on OSX. If the name doesn't appear in >> anything useful then there's not much point implementing the method. > > Yes, gdb shows the thread name as well (dunno why I forgot about this > most obvious use case). > >>> Also: which of the many repositories do I need to push this to? >> >> It would go into hsx/hotspot-rt forest, but you can't push it directly. >> All hotspot changes must go via JPRT so you will need a sponsor. > > Ok. I think Keith said he can do this. :-) > > Thanks! > > Regards, > Roman > > From david.holmes at oracle.com Thu Jul 26 05:52:39 2012 From: david.holmes at oracle.com (David Holmes) Date: Thu, 26 Jul 2012 22:52:39 +1000 Subject: [PATCH] Implement -XX:+BindGCTaskThreadsToCPUs for Linux In-Reply-To: <1343214375.5573.62.camel@mercury> References: <1343214375.5573.62.camel@mercury> Message-ID: <50113D97.7080509@oracle.com> Hi Roman, Processor binding is a problematic area in general. Copying what Solaris does is probably harmless but not necessarily useful - and the Solaris implementation is likely incomplete in itself (as there are three mechanisms for constraining available CPUs: process binding, processor sets and resource pools (which the VM is generally ignorant of). Do you have a motivating usecase for implementing this? Thanks, David On 25/07/2012 9:06 PM, Roman Kennke wrote: > I implemented the other two missing functions in os_linux.cpp > (distribute_processes() and bind_to_processor() ) which implement > support for the -XX:+BindGCTaskThreadsToCPUs option (together with -XX: > +UseParallelGC), which distributes& binds GC worker threads to > different processors. > > The implementation is adopted from os_solaris.cpp. In particular > assign_distribution() is almost 1:1 copy (except for the type diff > processor_t vs. uint). It could be worth extracting this into a shared > method, but on the other hand, there is potential for divergence (for > example, for NUMA support. See my related question here: > http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2012-July/004751.html ). > > Just like the implementation for Solaris, we first check if we are > running in a CPU set, and take this as a basis. I did not implement the > other case though, it seems like a really rare fallback (processes that > do not have any particular processor affinity return affinity with all > processors set). Plus, if that call to pthread_getaffinity_np() does not > work, it seems likely that the following call to > pthread_setaffinity_np() doesn't work either (because lack of > permissions or lack of support in the kernel or such). Please let me > know if you think it's worth to implement this case anyway and use the > set of all online processors then. > > Opinions about that patch? > > http://cr.openjdk.java.net/~rkennke/linux_gc_workers/webrev.00/ > > Kind regards, > Roman > > From david.holmes at oracle.com Thu Jul 26 06:19:06 2012 From: david.holmes at oracle.com (David Holmes) Date: Thu, 26 Jul 2012 23:19:06 +1000 Subject: [PATCH] Implement -XX:+BindGCTaskThreadsToCPUs for Linux In-Reply-To: <1343307800.11524.19.camel@mercury> References: <1343214375.5573.62.camel@mercury> <50113D97.7080509@oracle.com> <1343307800.11524.19.camel@mercury> Message-ID: <501143CA.3090704@oracle.com> On 26/07/2012 11:03 PM, Roman Kennke wrote: > Am Donnerstag, den 26.07.2012, 22:52 +1000 schrieb David Holmes: >> Processor binding is a problematic area in general. Copying what Solaris >> does is probably harmless but not necessarily useful - and the Solaris >> implementation is likely incomplete in itself (as there are three >> mechanisms for constraining available CPUs: process binding, processor >> sets and resource pools (which the VM is generally ignorant of). >> >> Do you have a motivating usecase for implementing this? > > Not really. > > Andrew Hughes found those missing methods and I thought I'd take a look > at them, in order to get me started on hotspot, and to poke around the > code and see how it worked (the code is fairly simple...). > > Initially I thought it could be helpful for assuring that each GC worker > runs on a different CPU, but I am not so sure anymore, because it might > undo NUMA benefits (see my related question on hotspot-gc-dev) and maybe > the system's scheduler probably can do a better job of distributing the > work. I haven't tested yet if the change gives us any benefit, I wanted > to do this soon and thought I'd throw out the code for discussion. (And > your comments seem to support my concerns...) I don't subscribe to the GC list so haven't see the discussion, but as you can guess there's been no motivation for implementing these functions on linux :) David > Thanks, > Roman > >> >> Thanks, >> David >> >> On 25/07/2012 9:06 PM, Roman Kennke wrote: >>> I implemented the other two missing functions in os_linux.cpp >>> (distribute_processes() and bind_to_processor() ) which implement >>> support for the -XX:+BindGCTaskThreadsToCPUs option (together with -XX: >>> +UseParallelGC), which distributes& binds GC worker threads to >>> different processors. >>> >>> The implementation is adopted from os_solaris.cpp. In particular >>> assign_distribution() is almost 1:1 copy (except for the type diff >>> processor_t vs. uint). It could be worth extracting this into a shared >>> method, but on the other hand, there is potential for divergence (for >>> example, for NUMA support. See my related question here: >>> http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2012-July/004751.html ). >>> >>> Just like the implementation for Solaris, we first check if we are >>> running in a CPU set, and take this as a basis. I did not implement the >>> other case though, it seems like a really rare fallback (processes that >>> do not have any particular processor affinity return affinity with all >>> processors set). Plus, if that call to pthread_getaffinity_np() does not >>> work, it seems likely that the following call to >>> pthread_setaffinity_np() doesn't work either (because lack of >>> permissions or lack of support in the kernel or such). Please let me >>> know if you think it's worth to implement this case anyway and use the >>> set of all online processors then. >>> >>> Opinions about that patch? >>> >>> http://cr.openjdk.java.net/~rkennke/linux_gc_workers/webrev.00/ >>> >>> Kind regards, >>> Roman >>> >>> > > From ben at jclarity.com Thu Jul 26 06:29:46 2012 From: ben at jclarity.com (Ben Evans) Date: Thu, 26 Jul 2012 06:29:46 -0700 Subject: [PATCH] Implement -XX:+BindGCTaskThreadsToCPUs for Linux In-Reply-To: <50113D97.7080509@oracle.com> References: <1343214375.5573.62.camel@mercury> <50113D97.7080509@oracle.com> Message-ID: Hi David, Could you expand a bit on why you feel processor binding is problematic? In the low-latency space at least, this is a topic which often comes up. Having a view from the platform implementors as to why Java seems to be lacking compared to alternatives would be very useful. Thanks, Ben On Thu, Jul 26, 2012 at 5:52 AM, David Holmes wrote: > Hi Roman, > > Processor binding is a problematic area in general. Copying what Solaris > does is probably harmless but not necessarily useful - and the Solaris > implementation is likely incomplete in itself (as there are three > mechanisms for constraining available CPUs: process binding, processor sets > and resource pools (which the VM is generally ignorant of). > > Do you have a motivating usecase for implementing this? > > Thanks, > David > > > On 25/07/2012 9:06 PM, Roman Kennke wrote: > >> I implemented the other two missing functions in os_linux.cpp >> (distribute_processes() and bind_to_processor() ) which implement >> support for the -XX:+BindGCTaskThreadsToCPUs option (together with -XX: >> +UseParallelGC), which distributes& binds GC worker threads to >> >> different processors. >> >> The implementation is adopted from os_solaris.cpp. In particular >> assign_distribution() is almost 1:1 copy (except for the type diff >> processor_t vs. uint). It could be worth extracting this into a shared >> method, but on the other hand, there is potential for divergence (for >> example, for NUMA support. See my related question here: >> http://mail.openjdk.java.net/**pipermail/hotspot-gc-dev/2012-** >> July/004751.html). >> >> Just like the implementation for Solaris, we first check if we are >> running in a CPU set, and take this as a basis. I did not implement the >> other case though, it seems like a really rare fallback (processes that >> do not have any particular processor affinity return affinity with all >> processors set). Plus, if that call to pthread_getaffinity_np() does not >> work, it seems likely that the following call to >> pthread_setaffinity_np() doesn't work either (because lack of >> permissions or lack of support in the kernel or such). Please let me >> know if you think it's worth to implement this case anyway and use the >> set of all online processors then. >> >> Opinions about that patch? >> >> http://cr.openjdk.java.net/~**rkennke/linux_gc_workers/**webrev.00/ >> >> Kind regards, >> Roman >> >> >> From rkennke at redhat.com Thu Jul 26 06:03:20 2012 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 26 Jul 2012 15:03:20 +0200 Subject: [PATCH] Implement -XX:+BindGCTaskThreadsToCPUs for Linux In-Reply-To: <50113D97.7080509@oracle.com> References: <1343214375.5573.62.camel@mercury> <50113D97.7080509@oracle.com> Message-ID: <1343307800.11524.19.camel@mercury> Am Donnerstag, den 26.07.2012, 22:52 +1000 schrieb David Holmes: > Hi Roman, > > Processor binding is a problematic area in general. Copying what Solaris > does is probably harmless but not necessarily useful - and the Solaris > implementation is likely incomplete in itself (as there are three > mechanisms for constraining available CPUs: process binding, processor > sets and resource pools (which the VM is generally ignorant of). > > Do you have a motivating usecase for implementing this? Not really. Andrew Hughes found those missing methods and I thought I'd take a look at them, in order to get me started on hotspot, and to poke around the code and see how it worked (the code is fairly simple...). Initially I thought it could be helpful for assuring that each GC worker runs on a different CPU, but I am not so sure anymore, because it might undo NUMA benefits (see my related question on hotspot-gc-dev) and maybe the system's scheduler probably can do a better job of distributing the work. I haven't tested yet if the change gives us any benefit, I wanted to do this soon and thought I'd throw out the code for discussion. (And your comments seem to support my concerns...) Thanks, Roman > > Thanks, > David > > On 25/07/2012 9:06 PM, Roman Kennke wrote: > > I implemented the other two missing functions in os_linux.cpp > > (distribute_processes() and bind_to_processor() ) which implement > > support for the -XX:+BindGCTaskThreadsToCPUs option (together with -XX: > > +UseParallelGC), which distributes& binds GC worker threads to > > different processors. > > > > The implementation is adopted from os_solaris.cpp. In particular > > assign_distribution() is almost 1:1 copy (except for the type diff > > processor_t vs. uint). It could be worth extracting this into a shared > > method, but on the other hand, there is potential for divergence (for > > example, for NUMA support. See my related question here: > > http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2012-July/004751.html ). > > > > Just like the implementation for Solaris, we first check if we are > > running in a CPU set, and take this as a basis. I did not implement the > > other case though, it seems like a really rare fallback (processes that > > do not have any particular processor affinity return affinity with all > > processors set). Plus, if that call to pthread_getaffinity_np() does not > > work, it seems likely that the following call to > > pthread_setaffinity_np() doesn't work either (because lack of > > permissions or lack of support in the kernel or such). Please let me > > know if you think it's worth to implement this case anyway and use the > > set of all online processors then. > > > > Opinions about that patch? > > > > http://cr.openjdk.java.net/~rkennke/linux_gc_workers/webrev.00/ > > > > Kind regards, > > Roman > > > > From david.holmes at oracle.com Thu Jul 26 07:56:09 2012 From: david.holmes at oracle.com (David Holmes) Date: Fri, 27 Jul 2012 00:56:09 +1000 Subject: [PATCH] Implement -XX:+BindGCTaskThreadsToCPUs for Linux In-Reply-To: References: <1343214375.5573.62.camel@mercury> <50113D97.7080509@oracle.com> Message-ID: <50115A89.7050009@oracle.com> Hi Ben, On 26/07/2012 11:29 PM, Ben Evans wrote: > Hi David, > > Could you expand a bit on why you feel processor binding is problematic? Because there are a number of API that impact what processors are available to a thread or process; they are non standard (ie platform specific) and the interactions between them is not always clear. > In the low-latency space at least, this is a topic which often comes up. > Having a view from the platform implementors as to why Java seems to be > lacking compared to alternatives would be very useful. Processor binding APIs have been proposed as part of the next real-time spec (JSR-282) and was also suggested for Java SE. But it is a difficult API to provide in a general way due to the different underlying mechanisms that can provide/constrain available processors. The simplest form of the API is "bind the current thread to the current processor" but that can be done by a simple native call for those specialized contexts that require it. There is also concern that using process/thread binding effectively is a difficult task to get right, but very easy to get wrong. David > Thanks, > > Ben > > On Thu, Jul 26, 2012 at 5:52 AM, David Holmes > wrote: > > Hi Roman, > > Processor binding is a problematic area in general. Copying what > Solaris does is probably harmless but not necessarily useful - and > the Solaris implementation is likely incomplete in itself (as there > are three mechanisms for constraining available CPUs: process > binding, processor sets and resource pools (which the VM is > generally ignorant of). > > Do you have a motivating usecase for implementing this? > > Thanks, > David > > > On 25/07/2012 9:06 PM, Roman Kennke wrote: > > I implemented the other two missing functions in os_linux.cpp > (distribute_processes() and bind_to_processor() ) which implement > support for the -XX:+BindGCTaskThreadsToCPUs option (together > with -XX: > +UseParallelGC), which distributes& binds GC worker threads to > > different processors. > > The implementation is adopted from os_solaris.cpp. In particular > assign_distribution() is almost 1:1 copy (except for the type diff > processor_t vs. uint). It could be worth extracting this into a > shared > method, but on the other hand, there is potential for divergence > (for > example, for NUMA support. See my related question here: > http://mail.openjdk.java.net/__pipermail/hotspot-gc-dev/2012-__July/004751.html > > ). > > Just like the implementation for Solaris, we first check if we are > running in a CPU set, and take this as a basis. I did not > implement the > other case though, it seems like a really rare fallback > (processes that > do not have any particular processor affinity return affinity > with all > processors set). Plus, if that call to pthread_getaffinity_np() > does not > work, it seems likely that the following call to > pthread_setaffinity_np() doesn't work either (because lack of > permissions or lack of support in the kernel or such). Please let me > know if you think it's worth to implement this case anyway and > use the > set of all online processors then. > > Opinions about that patch? > > http://cr.openjdk.java.net/~__rkennke/linux_gc_workers/__webrev.00/ > > > Kind regards, > Roman > > > From coleen.phillimore at oracle.com Thu Jul 26 16:51:34 2012 From: coleen.phillimore at oracle.com (coleen.phillimore at oracle.com) Date: Thu, 26 Jul 2012 23:51:34 +0000 Subject: hg: hsx/hotspot-main/hotspot: 2 new changesets Message-ID: <20120726235141.7EEB247230@hg.openjdk.java.net> Changeset: fe94b4e7212b Author: asaha Date: 2012-07-23 14:28 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/fe94b4e7212b 7185550: TEST: runtime/7020373/Test7020373.sh fails because there is no test/runtime/7020373/testcase.jar Reviewed-by: coleenp ! test/runtime/7020373/Test7020373.sh + test/runtime/7020373/testcase.jar Changeset: 43541217e9f7 Author: jiangli Date: 2012-07-26 17:24 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/43541217e9f7 7187046: Crash in ClassFileParser on solaris-ia32 during RetransformClasses. Summary: Lower compiler optimization level when compiling jvmtiClassFileReconstituter.cpp as a workaround for the solaris x86 5.10 cc bug. Reviewed-by: kvn, coleenp ! make/solaris/makefiles/fastdebug.make ! make/solaris/makefiles/optimized.make ! make/solaris/makefiles/product.make From jiangli.zhou at oracle.com Thu Jul 26 18:36:57 2012 From: jiangli.zhou at oracle.com (jiangli.zhou at oracle.com) Date: Fri, 27 Jul 2012 01:36:57 +0000 Subject: hg: hsx/hotspot-main/hotspot: 3 new changesets Message-ID: <20120727013705.A92E64723A@hg.openjdk.java.net> Changeset: 611e8a669a2c Author: dlong Date: 2012-07-16 15:31 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/611e8a669a2c 7147464: Java crashed while executing method with over 8k of dneg operations Summary: replace recursive method with iterative Reviewed-by: kvn, twisti Contributed-by: dean.long at oracle.com ! src/share/vm/opto/phaseX.cpp ! src/share/vm/opto/phaseX.hpp Changeset: a93a6d2c9e6c Author: jiangli Date: 2012-07-24 13:16 -0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/a93a6d2c9e6c Merge Changeset: bcd1b9d98558 Author: jiangli Date: 2012-07-26 16:55 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/bcd1b9d98558 Merge From john.coomes at oracle.com Thu Jul 26 20:31:57 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 27 Jul 2012 03:31:57 +0000 Subject: hg: hsx/hotspot-main: 8 new changesets Message-ID: <20120727033158.0DF874723C@hg.openjdk.java.net> Changeset: ba77d95ed219 Author: ohair Date: 2012-07-16 11:43 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/rev/ba77d95ed219 7184406: Adjust get_source/hgforest script to allow for trailing // characters Reviewed-by: tbell ! make/scripts/hgforest.sh Changeset: 3f6c72d1c2a6 Author: katleman Date: 2012-07-18 14:18 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/rev/3f6c72d1c2a6 Merge Changeset: 969c75896558 Author: cl Date: 2012-07-23 12:37 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/rev/969c75896558 Added tag jdk8-b48 for changeset 3f6c72d1c2a6 ! .hgtags Changeset: 0562a97bd601 Author: vinnie Date: 2012-07-16 22:41 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-main/rev/0562a97bd601 6880559: Enable PKCS11 64-bit windows builds Reviewed-by: valeriep ! THIRD_PARTY_README Changeset: c88aceaf2f3f Author: lana Date: 2012-07-16 17:01 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/rev/c88aceaf2f3f Merge - common/autoconf/cores.m4 - common/makefiles/RMICompile.gmk Changeset: 36998bc84cff Author: lana Date: 2012-07-18 16:08 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/rev/36998bc84cff Merge Changeset: c97b99424815 Author: lana Date: 2012-07-24 11:05 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/rev/c97b99424815 Merge Changeset: 2fd67618b9a3 Author: cl Date: 2012-07-26 16:48 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/rev/2fd67618b9a3 Added tag jdk8-b49 for changeset c97b99424815 ! .hgtags From john.coomes at oracle.com Thu Jul 26 20:32:04 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 27 Jul 2012 03:32:04 +0000 Subject: hg: hsx/hotspot-main/corba: 2 new changesets Message-ID: <20120727033208.82C124723D@hg.openjdk.java.net> Changeset: fe44e58a6bdb Author: cl Date: 2012-07-23 12:38 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/corba/rev/fe44e58a6bdb Added tag jdk8-b48 for changeset 7e2b179a5b4d ! .hgtags Changeset: d20d9eb9f093 Author: cl Date: 2012-07-26 16:48 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/corba/rev/d20d9eb9f093 Added tag jdk8-b49 for changeset fe44e58a6bdb ! .hgtags From john.coomes at oracle.com Thu Jul 26 20:32:15 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 27 Jul 2012 03:32:15 +0000 Subject: hg: hsx/hotspot-main/jaxp: 5 new changesets Message-ID: <20120727033234.E22804723E@hg.openjdk.java.net> Changeset: a7e6e1048e4c Author: cl Date: 2012-07-23 12:38 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jaxp/rev/a7e6e1048e4c Added tag jdk8-b48 for changeset 1c88da9a1365 ! .hgtags Changeset: 6e444b892c99 Author: joehw Date: 2012-07-12 21:06 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jaxp/rev/6e444b892c99 7183760: DocumentBuilder.parse(String uri) is not IPv6 enabled Summary: removing the hack of using escapeNonUSAscii. this is the same patch as 7166896 for 7u8. Reviewed-by: psandoz, lancea ! src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java Changeset: df4092828362 Author: lana Date: 2012-07-16 17:02 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jaxp/rev/df4092828362 Merge Changeset: f81e981eca7b Author: lana Date: 2012-07-24 11:05 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jaxp/rev/f81e981eca7b Merge Changeset: 2791ec55f66b Author: cl Date: 2012-07-26 16:48 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jaxp/rev/2791ec55f66b Added tag jdk8-b49 for changeset f81e981eca7b ! .hgtags From john.coomes at oracle.com Thu Jul 26 20:32:41 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 27 Jul 2012 03:32:41 +0000 Subject: hg: hsx/hotspot-main/jaxws: 2 new changesets Message-ID: <20120727033248.BACE34723F@hg.openjdk.java.net> Changeset: b48865af8ac5 Author: cl Date: 2012-07-23 12:38 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jaxws/rev/b48865af8ac5 Added tag jdk8-b48 for changeset efb564de8a8e ! .hgtags Changeset: bdab72e87b83 Author: cl Date: 2012-07-26 16:48 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jaxws/rev/bdab72e87b83 Added tag jdk8-b49 for changeset b48865af8ac5 ! .hgtags From john.coomes at oracle.com Thu Jul 26 20:33:33 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 27 Jul 2012 03:33:33 +0000 Subject: hg: hsx/hotspot-main/jdk: 34 new changesets Message-ID: <20120727034006.AC7BB47240@hg.openjdk.java.net> Changeset: 09a79167142c Author: cl Date: 2012-07-23 12:38 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/09a79167142c Added tag jdk8-b48 for changeset 3e4ab821f461 ! .hgtags Changeset: a18a547546a4 Author: prr Date: 2012-07-12 16:24 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/a18a547546a4 7183458: Metrics of space character in algorithmically emboldened font have changed in JDK 7. Reviewed-by: igor, jgodinez + test/java/awt/FontMetrics/StyledSpaceAdvance.java Changeset: 9f21c95bfbc1 Author: lana Date: 2012-07-16 16:49 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/9f21c95bfbc1 Merge - makefiles/LegacyMakefiles.gmk - makefiles/OldImages.gmk - makefiles/com/sun/crypto/provider/Makefile - makefiles/common/Classes.gmk - makefiles/common/Cscope.gmk - makefiles/common/Defs-embedded.gmk - makefiles/common/Defs-linux.gmk - makefiles/common/Defs-macosx.gmk - makefiles/common/Defs-solaris.gmk - makefiles/common/Defs-windows.gmk - makefiles/common/Defs.gmk - makefiles/common/Demo.gmk - makefiles/common/Library.gmk - makefiles/common/Mapfile-vers.gmk - makefiles/common/Modules.gmk - makefiles/common/Program.gmk - makefiles/common/Release-embedded.gmk - makefiles/common/Release-macosx.gmk - makefiles/common/Release.gmk - makefiles/common/Rules.gmk - makefiles/common/Subdirs.gmk - makefiles/common/internal/Defs-corba.gmk - makefiles/common/internal/Defs-jaxp.gmk - makefiles/common/internal/Defs-jaxws.gmk - makefiles/common/internal/Defs-langtools.gmk - makefiles/common/internal/ImportComponents.gmk - makefiles/common/internal/NativeCompileRules.gmk - makefiles/common/internal/Resources.gmk - makefiles/common/shared/Compiler-gcc.gmk - makefiles/common/shared/Compiler-llvm.gmk - makefiles/common/shared/Compiler-msvc.gmk - makefiles/common/shared/Compiler-sun.gmk - makefiles/common/shared/Defs-control.gmk - makefiles/common/shared/Defs-java.gmk - makefiles/common/shared/Defs-javadoc.gmk - makefiles/common/shared/Defs-linux.gmk - makefiles/common/shared/Defs-macosx.gmk - makefiles/common/shared/Defs-solaris.gmk - makefiles/common/shared/Defs-versions.gmk - makefiles/common/shared/Defs-windows.gmk - makefiles/common/shared/Defs.gmk - makefiles/common/shared/Platform.gmk - makefiles/common/shared/PrivateDefs.gmk-example - makefiles/common/shared/Sanity-Settings.gmk - makefiles/java/Makefile - makefiles/java/invoke/Makefile - makefiles/java/redist/Makefile - makefiles/java/redist/sajdi/Makefile - makefiles/javax/crypto/Defs-jce.gmk - makefiles/javax/crypto/Makefile - makefiles/javax/crypto/policy/limited/LIMITED - makefiles/javax/crypto/policy/limited/default_local.policy - makefiles/javax/crypto/policy/limited/exempt_local.policy - makefiles/javax/crypto/policy/unlimited/UNLIMITED - makefiles/javax/crypto/policy/unlimited/default_US_export.policy - makefiles/javax/crypto/policy/unlimited/default_local.policy - makefiles/mkdemo/Makefile - makefiles/mkdemo/jni/Makefile - makefiles/mkdemo/jni/Poller/Makefile - makefiles/mkdemo/jvmti/Makefile - makefiles/mkdemo/jvmti/README.txt - makefiles/mkdemo/jvmti/hprof/Makefile - makefiles/mkdemo/jvmti/mapfile-vers - makefiles/mkdemo/management/README.txt - makefiles/sun/jkernel/Makefile - makefiles/sun/security/ec/Makefile - makefiles/sun/security/pkcs11/FILES_c.gmk - makefiles/sun/security/pkcs11/Makefile - makefiles/sun/security/pkcs11/mapfile-vers Changeset: ab0b2720a756 Author: prr Date: 2012-07-17 16:35 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/ab0b2720a756 7183251: Netbeans editor renders text wrong on JDK 7u6 build 17 Reviewed-by: igor, jgodinez ! src/share/classes/sun/font/SunLayoutEngine.java Changeset: f1a90ee31b38 Author: serb Date: 2012-07-04 14:38 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/f1a90ee31b38 7124244: [macosx] Shaped windows support Reviewed-by: anthony, art ! src/macosx/classes/sun/java2d/opengl/CGLLayer.java ! src/macosx/classes/sun/lwawt/LWComponentPeer.java ! src/macosx/classes/sun/lwawt/LWRepaintArea.java ! src/macosx/classes/sun/lwawt/LWToolkit.java ! src/macosx/classes/sun/lwawt/LWWindowPeer.java ! src/macosx/classes/sun/lwawt/macosx/CPlatformEmbeddedFrame.java ! src/macosx/classes/sun/lwawt/macosx/CPlatformView.java ! src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java ! src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java ! src/macosx/native/sun/awt/AWTWindow.m ! src/share/classes/javax/swing/RepaintManager.java ! src/share/classes/sun/awt/SunToolkit.java Changeset: 80c592c9458e Author: serb Date: 2012-07-04 15:36 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/80c592c9458e 7124513: [macosx] Support NSTexturedBackgroundWindowMask/different titlebar styles to create unified toolbar Reviewed-by: anthony, art ! src/macosx/classes/com/apple/laf/AquaPanelUI.java ! src/macosx/classes/com/apple/laf/AquaRootPaneUI.java ! src/macosx/classes/com/apple/laf/AquaToolBarUI.java ! src/macosx/classes/com/apple/laf/AquaUtils.java ! src/macosx/classes/sun/lwawt/LWWindowPeer.java ! src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java ! src/share/classes/javax/swing/JViewport.java Changeset: 911195d40b89 Author: anthony Date: 2012-07-06 14:20 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/911195d40b89 7177173: [macosx] JFrame.setExtendedState(JFrame.MAXIMIZED_BOTH) not working as expected in JDK 7 Summary: Avoid unnecessary changes to the extended state Reviewed-by: art, serb ! src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java + test/java/awt/Frame/HideMaximized/HideMaximized.java Changeset: 4d750ca79fb7 Author: ptisnovs Date: 2012-07-12 16:54 +0200 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/4d750ca79fb7 7022041: TitleBorder Null Pointer Exception Summary: Added check if getTitleFont() and getTitleColor() don't return null Reviewed-by: alexsch ! src/share/classes/javax/swing/border/TitledBorder.java + test/javax/swing/border/Test7022041.java Changeset: 4624486823a7 Author: serb Date: 2012-07-16 14:00 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/4624486823a7 7181438: [OGL] Incorrect alpha used, during blit from SW to the texture. Reviewed-by: prr, campbell ! src/share/native/sun/java2d/opengl/OGLBlitLoops.c + test/sun/java2d/OpenGL/bug7181438.java Changeset: c277657e5e10 Author: serb Date: 2012-07-16 14:04 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/c277657e5e10 7170657: [macosx] There seems to be no keyboard/mouse action to select non-contiguous items in List Reviewed-by: rupashka ! src/share/classes/javax/swing/SwingUtilities.java + test/javax/swing/SwingUtilities/7170657/bug7170657.java Changeset: 6d9ea8c91808 Author: lana Date: 2012-07-16 14:49 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/6d9ea8c91808 Merge - makefiles/LegacyMakefiles.gmk - makefiles/OldImages.gmk - makefiles/com/sun/crypto/provider/Makefile - makefiles/common/Classes.gmk - makefiles/common/Cscope.gmk - makefiles/common/Defs-embedded.gmk - makefiles/common/Defs-linux.gmk - makefiles/common/Defs-macosx.gmk - makefiles/common/Defs-solaris.gmk - makefiles/common/Defs-windows.gmk - makefiles/common/Defs.gmk - makefiles/common/Demo.gmk - makefiles/common/Library.gmk - makefiles/common/Mapfile-vers.gmk - makefiles/common/Modules.gmk - makefiles/common/Program.gmk - makefiles/common/Release-embedded.gmk - makefiles/common/Release-macosx.gmk - makefiles/common/Release.gmk - makefiles/common/Rules.gmk - makefiles/common/Subdirs.gmk - makefiles/common/internal/Defs-corba.gmk - makefiles/common/internal/Defs-jaxp.gmk - makefiles/common/internal/Defs-jaxws.gmk - makefiles/common/internal/Defs-langtools.gmk - makefiles/common/internal/ImportComponents.gmk - makefiles/common/internal/NativeCompileRules.gmk - makefiles/common/internal/Resources.gmk - makefiles/common/shared/Compiler-gcc.gmk - makefiles/common/shared/Compiler-llvm.gmk - makefiles/common/shared/Compiler-msvc.gmk - makefiles/common/shared/Compiler-sun.gmk - makefiles/common/shared/Defs-control.gmk - makefiles/common/shared/Defs-java.gmk - makefiles/common/shared/Defs-javadoc.gmk - makefiles/common/shared/Defs-linux.gmk - makefiles/common/shared/Defs-macosx.gmk - makefiles/common/shared/Defs-solaris.gmk - makefiles/common/shared/Defs-versions.gmk - makefiles/common/shared/Defs-windows.gmk - makefiles/common/shared/Defs.gmk - makefiles/common/shared/Platform.gmk - makefiles/common/shared/PrivateDefs.gmk-example - makefiles/common/shared/Sanity-Settings.gmk - makefiles/java/Makefile - makefiles/java/invoke/Makefile - makefiles/java/redist/Makefile - makefiles/java/redist/sajdi/Makefile - makefiles/javax/crypto/Defs-jce.gmk - makefiles/javax/crypto/Makefile - makefiles/javax/crypto/policy/limited/LIMITED - makefiles/javax/crypto/policy/limited/default_local.policy - makefiles/javax/crypto/policy/limited/exempt_local.policy - makefiles/javax/crypto/policy/unlimited/UNLIMITED - makefiles/javax/crypto/policy/unlimited/default_US_export.policy - makefiles/javax/crypto/policy/unlimited/default_local.policy - makefiles/mkdemo/Makefile - makefiles/mkdemo/jni/Makefile - makefiles/mkdemo/jni/Poller/Makefile - makefiles/mkdemo/jvmti/Makefile - makefiles/mkdemo/jvmti/README.txt - makefiles/mkdemo/jvmti/hprof/Makefile - makefiles/mkdemo/jvmti/mapfile-vers - makefiles/mkdemo/management/README.txt - makefiles/sun/jkernel/Makefile - makefiles/sun/security/ec/Makefile - makefiles/sun/security/pkcs11/FILES_c.gmk - makefiles/sun/security/pkcs11/Makefile - makefiles/sun/security/pkcs11/mapfile-vers Changeset: 08842f8ce960 Author: bagiras Date: 2012-07-17 12:59 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/08842f8ce960 7177040: Deadlock between PostEventQueue.noEvents, EventQueue.isDispatchThread and SwingUtilities.invokeLater Reviewed-by: anthony, ant ! src/share/classes/sun/awt/SunToolkit.java Changeset: 8a90db6c4d77 Author: alexsch Date: 2012-07-18 18:25 +0400 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/8a90db6c4d77 7182902: [macosx] Test api/java_awt/GraphicsDevice/indexTGF.html#SetDisplayMode fails on Mac OS X 10.7 Reviewed-by: bae, kizune ! src/macosx/classes/sun/awt/CGraphicsDevice.java ! src/macosx/native/sun/awt/CGraphicsDevice.m Changeset: 86ca943c120b Author: lana Date: 2012-07-18 16:07 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/86ca943c120b Merge Changeset: 97eb7a4b1fdd Author: smarks Date: 2012-07-05 15:12 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/97eb7a4b1fdd 6948101: java/rmi/transport/pinLastArguments/PinLastArguments.java failing intermittently Reviewed-by: dholmes, smarks Contributed-by: Eric Wang ! test/ProblemList.txt ! test/java/rmi/transport/pinLastArguments/PinLastArguments.java Changeset: 4ad204cc7433 Author: smarks Date: 2012-07-05 15:13 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/4ad204cc7433 7123972: test/java/lang/annotation/loaderLeak/Main.java fails intermittently Reviewed-by: dholmes, smarks Contributed-by: Eric Wang ! test/ProblemList.txt ! test/java/lang/annotation/loaderLeak/Main.java Changeset: 15a6b0bceb1e Author: zhouyx Date: 2012-07-06 10:36 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/15a6b0bceb1e 7181353: Update error message to distinguish native OOM and java OOM in net Reviewed-by: chegar ! src/solaris/native/java/net/Inet4AddressImpl.c ! src/solaris/native/java/net/Inet6AddressImpl.c ! src/solaris/native/java/net/NetworkInterface.c ! src/solaris/native/java/net/PlainDatagramSocketImpl.c ! src/windows/native/java/net/DualStackPlainDatagramSocketImpl.c ! src/windows/native/java/net/Inet6AddressImpl.c ! src/windows/native/java/net/NetworkInterface.c ! src/windows/native/java/net/TwoStacksPlainDatagramSocketImpl.c Changeset: 516e0c884af2 Author: robm Date: 2012-07-09 22:26 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/516e0c884af2 7179305: (fs) Method name sun.nio.fs.UnixPath.getPathForExecptionMessage is misspelled Reviewed-by: dholmes, chegar ! src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java ! src/solaris/classes/sun/nio/fs/LinuxWatchService.java ! src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java ! src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java ! src/solaris/classes/sun/nio/fs/SolarisWatchService.java ! src/solaris/classes/sun/nio/fs/UnixCopyFile.java ! src/solaris/classes/sun/nio/fs/UnixException.java ! src/solaris/classes/sun/nio/fs/UnixFileSystemProvider.java ! src/solaris/classes/sun/nio/fs/UnixPath.java Changeset: 79b63e8eceda Author: weijun Date: 2012-07-11 17:10 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/79b63e8eceda 6966259: Make PrincipalName and Realm immutable Reviewed-by: xuelei ! src/share/classes/javax/security/auth/kerberos/KerberosPrincipal.java ! src/share/classes/sun/security/jgss/krb5/Krb5NameElement.java ! src/share/classes/sun/security/krb5/Credentials.java ! src/share/classes/sun/security/krb5/KrbApReq.java ! src/share/classes/sun/security/krb5/KrbAppMessage.java ! src/share/classes/sun/security/krb5/KrbAsRep.java ! src/share/classes/sun/security/krb5/KrbAsReq.java ! src/share/classes/sun/security/krb5/KrbAsReqBuilder.java ! src/share/classes/sun/security/krb5/KrbCred.java ! src/share/classes/sun/security/krb5/KrbException.java ! src/share/classes/sun/security/krb5/KrbKdcRep.java ! src/share/classes/sun/security/krb5/KrbPriv.java ! src/share/classes/sun/security/krb5/KrbSafe.java ! src/share/classes/sun/security/krb5/KrbTgsRep.java ! src/share/classes/sun/security/krb5/KrbTgsReq.java ! src/share/classes/sun/security/krb5/PrincipalName.java ! src/share/classes/sun/security/krb5/Realm.java ! src/share/classes/sun/security/krb5/RealmException.java - src/share/classes/sun/security/krb5/ServiceName.java ! src/share/classes/sun/security/krb5/internal/ASRep.java ! src/share/classes/sun/security/krb5/internal/Authenticator.java ! src/share/classes/sun/security/krb5/internal/CredentialsUtil.java ! src/share/classes/sun/security/krb5/internal/EncASRepPart.java ! src/share/classes/sun/security/krb5/internal/EncKDCRepPart.java ! src/share/classes/sun/security/krb5/internal/EncTGSRepPart.java ! src/share/classes/sun/security/krb5/internal/EncTicketPart.java ! src/share/classes/sun/security/krb5/internal/KDCRep.java ! src/share/classes/sun/security/krb5/internal/KDCReqBody.java ! src/share/classes/sun/security/krb5/internal/KRBError.java ! src/share/classes/sun/security/krb5/internal/KrbCredInfo.java ! src/share/classes/sun/security/krb5/internal/TGSRep.java ! src/share/classes/sun/security/krb5/internal/Ticket.java ! src/share/classes/sun/security/krb5/internal/ccache/CCacheInputStream.java ! src/share/classes/sun/security/krb5/internal/ccache/Credentials.java ! src/share/classes/sun/security/krb5/internal/ccache/CredentialsCache.java ! src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java ! src/share/classes/sun/security/krb5/internal/ccache/MemoryCredentialsCache.java ! src/share/classes/sun/security/krb5/internal/ktab/KeyTabInputStream.java ! src/share/classes/sun/security/ssl/krb5/KerberosClientKeyExchangeImpl.java ! src/windows/classes/sun/security/krb5/internal/tools/Kinit.java ! src/windows/classes/sun/security/krb5/internal/tools/KinitOptions.java ! src/windows/classes/sun/security/krb5/internal/tools/Ktab.java ! src/windows/native/sun/security/krb5/NativeCreds.c - test/sun/security/krb5/ServiceNameClone.java ! test/sun/security/krb5/auto/KDC.java + test/sun/security/krb5/name/Constructors.java + test/sun/security/krb5/name/empty.conf + test/sun/security/krb5/name/krb5.conf Changeset: e9461aeff91f Author: khazra Date: 2012-07-13 16:02 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/e9461aeff91f 7160252: (prefs) NodeAddedEvent was not delivered when new node add when new Node Summary: Change native code to convey to Java code whether a new node was added Reviewed-by: alanb, chegar ! src/macosx/classes/java/util/prefs/MacOSXPreferences.java ! src/macosx/classes/java/util/prefs/MacOSXPreferencesFile.java ! src/macosx/native/java/util/MacOSXPreferencesFile.m + test/java/util/prefs/AddNodeChangeListener.java Changeset: 9e5150e8bcf5 Author: ksrini Date: 2012-07-14 18:00 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/9e5150e8bcf5 7184145: (pack200) pack200 --repack throws NullPointerException when JAR file specified without path Reviewed-by: alanb, sherman ! src/share/classes/com/sun/java/util/jar/pack/Driver.java + test/tools/pack200/RepackTest.java Changeset: 5cee646eaaa7 Author: vinnie Date: 2012-07-16 22:38 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/5cee646eaaa7 6880559: Enable PKCS11 64-bit windows builds Reviewed-by: valeriep ! THIRD_PARTY_README ! make/sun/security/Makefile ! test/sun/security/pkcs11/PKCS11Test.java + test/sun/security/pkcs11/nss/lib/windows-amd64/freebl3.chk + test/sun/security/pkcs11/nss/lib/windows-amd64/freebl3.dll + test/sun/security/pkcs11/nss/lib/windows-amd64/libnspr4.dll + test/sun/security/pkcs11/nss/lib/windows-amd64/libnspr4.lib + test/sun/security/pkcs11/nss/lib/windows-amd64/libplc4.dll + test/sun/security/pkcs11/nss/lib/windows-amd64/libplc4.lib + test/sun/security/pkcs11/nss/lib/windows-amd64/libplds4.dll + test/sun/security/pkcs11/nss/lib/windows-amd64/libplds4.lib + test/sun/security/pkcs11/nss/lib/windows-amd64/nss3.dll + test/sun/security/pkcs11/nss/lib/windows-amd64/nss3.lib + test/sun/security/pkcs11/nss/lib/windows-amd64/nssckbi.dll + test/sun/security/pkcs11/nss/lib/windows-amd64/nssdbm3.chk + test/sun/security/pkcs11/nss/lib/windows-amd64/nssdbm3.dll + test/sun/security/pkcs11/nss/lib/windows-amd64/nssutil3.dll + test/sun/security/pkcs11/nss/lib/windows-amd64/nssutil3.lib + test/sun/security/pkcs11/nss/lib/windows-amd64/softokn3.chk + test/sun/security/pkcs11/nss/lib/windows-amd64/softokn3.dll + test/sun/security/pkcs11/nss/lib/windows-amd64/sqlite3.dll + test/sun/security/pkcs11/nss/lib/windows-amd64/ssl3.dll + test/sun/security/pkcs11/nss/lib/windows-amd64/ssl3.lib + test/sun/security/pkcs11/nss/lib/windows-i586/freebl3.chk + test/sun/security/pkcs11/nss/lib/windows-i586/freebl3.dll + test/sun/security/pkcs11/nss/lib/windows-i586/libnspr4.dll + test/sun/security/pkcs11/nss/lib/windows-i586/libnspr4.lib + test/sun/security/pkcs11/nss/lib/windows-i586/libplc4.dll + test/sun/security/pkcs11/nss/lib/windows-i586/libplc4.lib + test/sun/security/pkcs11/nss/lib/windows-i586/libplds4.dll + test/sun/security/pkcs11/nss/lib/windows-i586/libplds4.lib + test/sun/security/pkcs11/nss/lib/windows-i586/nss3.dll + test/sun/security/pkcs11/nss/lib/windows-i586/nss3.lib + test/sun/security/pkcs11/nss/lib/windows-i586/nssckbi.dll + test/sun/security/pkcs11/nss/lib/windows-i586/nssdbm3.chk + test/sun/security/pkcs11/nss/lib/windows-i586/nssdbm3.dll + test/sun/security/pkcs11/nss/lib/windows-i586/nssutil3.dll + test/sun/security/pkcs11/nss/lib/windows-i586/nssutil3.lib + test/sun/security/pkcs11/nss/lib/windows-i586/softokn3.chk + test/sun/security/pkcs11/nss/lib/windows-i586/softokn3.dll + test/sun/security/pkcs11/nss/lib/windows-i586/sqlite3.dll + test/sun/security/pkcs11/nss/lib/windows-i586/ssl3.dll + test/sun/security/pkcs11/nss/lib/windows-i586/ssl3.lib + test/sun/security/pkcs11/nss/src/MD5SUMS + test/sun/security/pkcs11/nss/src/SHA1SUMS + test/sun/security/pkcs11/nss/src/nss-3.13.1.tar.gz Changeset: 1469be7182b4 Author: khazra Date: 2012-07-16 16:30 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/1469be7182b4 7177045: Rework the TestProviderLeak.java regression test, it is too fragile to low memory errors. Summary: Increase Xmx to 20 MB and add mechanisms to eat up most of the JVM free memory. Reviewed-by: wetmore Contributed-by: dan.xu at oracle.com ! test/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java Changeset: e2d265c9b592 Author: weijun Date: 2012-07-17 11:28 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/e2d265c9b592 7183203: ShortRSAKeynnn.sh tests intermittent failure Reviewed-by: xuelei ! test/sun/security/mscapi/ShortRSAKey1024.sh - test/sun/security/mscapi/ShortRSAKey512.sh - test/sun/security/mscapi/ShortRSAKey768.sh Changeset: 2a39c98c1241 Author: weijun Date: 2012-07-17 11:57 +0800 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/2a39c98c1241 7102106: TEST_BUG: sun/security/util/Oid/S11N.sh should be modified Reviewed-by: mullan ! test/sun/security/util/Oid/S11N.sh Changeset: 7b5e4a64368a Author: lana Date: 2012-07-16 17:04 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/7b5e4a64368a Merge - makefiles/LegacyMakefiles.gmk - makefiles/OldImages.gmk - makefiles/com/sun/crypto/provider/Makefile - makefiles/common/Classes.gmk - makefiles/common/Cscope.gmk - makefiles/common/Defs-embedded.gmk - makefiles/common/Defs-linux.gmk - makefiles/common/Defs-macosx.gmk - makefiles/common/Defs-solaris.gmk - makefiles/common/Defs-windows.gmk - makefiles/common/Defs.gmk - makefiles/common/Demo.gmk - makefiles/common/Library.gmk - makefiles/common/Mapfile-vers.gmk - makefiles/common/Modules.gmk - makefiles/common/Program.gmk - makefiles/common/Release-embedded.gmk - makefiles/common/Release-macosx.gmk - makefiles/common/Release.gmk - makefiles/common/Rules.gmk - makefiles/common/Subdirs.gmk - makefiles/common/internal/Defs-corba.gmk - makefiles/common/internal/Defs-jaxp.gmk - makefiles/common/internal/Defs-jaxws.gmk - makefiles/common/internal/Defs-langtools.gmk - makefiles/common/internal/ImportComponents.gmk - makefiles/common/internal/NativeCompileRules.gmk - makefiles/common/internal/Resources.gmk - makefiles/common/shared/Compiler-gcc.gmk - makefiles/common/shared/Compiler-llvm.gmk - makefiles/common/shared/Compiler-msvc.gmk - makefiles/common/shared/Compiler-sun.gmk - makefiles/common/shared/Defs-control.gmk - makefiles/common/shared/Defs-java.gmk - makefiles/common/shared/Defs-javadoc.gmk - makefiles/common/shared/Defs-linux.gmk - makefiles/common/shared/Defs-macosx.gmk - makefiles/common/shared/Defs-solaris.gmk - makefiles/common/shared/Defs-versions.gmk - makefiles/common/shared/Defs-windows.gmk - makefiles/common/shared/Defs.gmk - makefiles/common/shared/Platform.gmk - makefiles/common/shared/PrivateDefs.gmk-example - makefiles/common/shared/Sanity-Settings.gmk - makefiles/java/Makefile - makefiles/java/invoke/Makefile - makefiles/java/redist/Makefile - makefiles/java/redist/sajdi/Makefile - makefiles/javax/crypto/Defs-jce.gmk - makefiles/javax/crypto/Makefile - makefiles/javax/crypto/policy/limited/LIMITED - makefiles/javax/crypto/policy/limited/default_local.policy - makefiles/javax/crypto/policy/limited/exempt_local.policy - makefiles/javax/crypto/policy/unlimited/UNLIMITED - makefiles/javax/crypto/policy/unlimited/default_US_export.policy - makefiles/javax/crypto/policy/unlimited/default_local.policy - makefiles/mkdemo/Makefile - makefiles/mkdemo/jni/Makefile - makefiles/mkdemo/jni/Poller/Makefile - makefiles/mkdemo/jvmti/Makefile - makefiles/mkdemo/jvmti/README.txt - makefiles/mkdemo/jvmti/hprof/Makefile - makefiles/mkdemo/jvmti/mapfile-vers - makefiles/mkdemo/management/README.txt - makefiles/sun/jkernel/Makefile - makefiles/sun/security/ec/Makefile - makefiles/sun/security/pkcs11/FILES_c.gmk - makefiles/sun/security/pkcs11/Makefile - makefiles/sun/security/pkcs11/mapfile-vers Changeset: c7e3106e455a Author: lana Date: 2012-07-16 22:05 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/c7e3106e455a Merge - test/sun/security/mscapi/ShortRSAKey512.sh - test/sun/security/mscapi/ShortRSAKey768.sh Changeset: b6f78869c66d Author: dmocek Date: 2012-07-17 11:01 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/b6f78869c66d 7142596: RMI JPRT tests are failing Summary: Changed RMI tests to use random port numbers for the RMI Registry and RMID so the tests can be run concurrently without test failures due to tests using the same port numbers. Reviewed-by: smarks, alanb Contributed-by: olivier.lagneau at oracle.com ! test/ProblemList.txt ! test/TEST.ROOT ! test/com/sun/jndi/rmi/registry/RegistryContext/ContextWithNullProperties.java ! test/com/sun/jndi/rmi/registry/RegistryContext/UnbindIdempotent.java ! test/java/rmi/Naming/LookupNameWithColon.java ! test/java/rmi/Naming/RmiIsNoScheme.java ! test/java/rmi/Naming/UnderscoreHost.java ! test/java/rmi/Naming/legalRegistryNames/LegalRegistryNames.java ! test/java/rmi/activation/Activatable/checkActivateRef/security.policy ! test/java/rmi/activation/Activatable/checkAnnotations/security.policy ! test/java/rmi/activation/Activatable/checkImplClassLoader/security.policy ! test/java/rmi/activation/Activatable/checkRegisterInLog/security.policy ! test/java/rmi/activation/Activatable/createPrivateActivable/security.policy ! test/java/rmi/activation/Activatable/downloadParameterClass/security.policy ! test/java/rmi/activation/Activatable/elucidateNoSuchMethod/security.policy ! test/java/rmi/activation/Activatable/extLoadedImpl/security.policy ! test/java/rmi/activation/Activatable/forceLogSnapshot/security.policy ! test/java/rmi/activation/Activatable/inactiveGroup/security.policy ! test/java/rmi/activation/Activatable/lookupActivationSystem/LookupActivationSystem.java ! test/java/rmi/activation/Activatable/nestedActivate/security.policy ! test/java/rmi/activation/Activatable/nonExistentActivatable/security.policy ! test/java/rmi/activation/Activatable/restartCrashedService/security.policy ! test/java/rmi/activation/Activatable/restartLatecomer/security.policy ! test/java/rmi/activation/Activatable/restartService/security.policy ! test/java/rmi/activation/Activatable/shutdownGracefully/security.policy ! test/java/rmi/activation/Activatable/unregisterInactive/security.policy ! test/java/rmi/activation/ActivateFailedException/activateFails/security.policy ! test/java/rmi/activation/ActivationSystem/activeGroup/security.policy ! test/java/rmi/activation/ActivationSystem/modifyDescriptor/security.policy ! test/java/rmi/activation/ActivationSystem/stubClassesPermitted/StubClassesPermitted.java ! test/java/rmi/activation/ActivationSystem/stubClassesPermitted/security.policy ! test/java/rmi/activation/ActivationSystem/unregisterGroup/UnregisterGroup.java ! test/java/rmi/activation/ActivationSystem/unregisterGroup/security.policy ! test/java/rmi/activation/CommandEnvironment/SetChildEnv.java ! test/java/rmi/activation/CommandEnvironment/security.policy ! test/java/rmi/activation/rmidViaInheritedChannel/InheritedChannelNotServerSocket.java ! test/java/rmi/activation/rmidViaInheritedChannel/RmidViaInheritedChannel.java ! test/java/rmi/activation/rmidViaInheritedChannel/rmid.security.policy ! test/java/rmi/registry/altSecurityManager/AltSecurityManager.java ! test/java/rmi/registry/classPathCodebase/ClassPathCodebase.java ! test/java/rmi/registry/emptyName/EmptyName.java ! test/java/rmi/registry/interfaceHash/InterfaceHash.java ! test/java/rmi/registry/multipleRegistries/MultipleRegistries.java ! test/java/rmi/registry/readTest/readTest.java ! test/java/rmi/registry/readTest/readTest.sh ! test/java/rmi/registry/reexport/Reexport.java ! test/java/rmi/reliability/juicer/AppleUserImpl.java ! test/java/rmi/reliability/juicer/ApplicationServer.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/EchoImpl.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/UseCustomSocketFactory.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/security.policy ! test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/HelloImpl.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/UseCustomSocketFactory.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/security.policy ! test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/EchoImpl.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/UseCustomSocketFactory.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/security.policy ! test/java/rmi/server/RemoteServer/AddrInUse.java ! test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/KeepAliveDuringCall.java ! test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/ShutdownImpl.java ! test/java/rmi/server/UnicastRemoteObject/unexportObject/UnexportLeak.java ! test/java/rmi/server/Unreferenced/finiteGCLatency/FiniteGCLatency.java ! test/java/rmi/server/Unreferenced/leaseCheckInterval/LeaseCheckInterval.java ! test/java/rmi/server/Unreferenced/leaseCheckInterval/SelfTerminator.java ! test/java/rmi/server/Unreferenced/unreferencedContext/UnreferencedContext.java ! test/java/rmi/server/useCustomRef/UseCustomRef.java ! test/java/rmi/server/useCustomRef/security.policy ! test/java/rmi/testlibrary/ActivationLibrary.java ! test/java/rmi/testlibrary/RMID.java ! test/java/rmi/testlibrary/RegistryRunner.java ! test/java/rmi/testlibrary/StreamPipe.java ! test/java/rmi/testlibrary/TestLibrary.java ! test/java/rmi/transport/checkFQDN/CheckFQDN.java ! test/java/rmi/transport/checkFQDN/CheckFQDNClient.java ! test/java/rmi/transport/checkLeaseInfoLeak/CheckLeaseLeak.java ! test/java/rmi/transport/checkLeaseInfoLeak/LeaseLeakClient.java ! test/java/rmi/transport/checkLeaseInfoLeak/security.policy ! test/java/rmi/transport/closeServerSocket/CloseServerSocket.java ! test/java/rmi/transport/dgcDeadLock/DGCDeadLock.java ! test/java/rmi/transport/dgcDeadLock/TestImpl.java ! test/java/rmi/transport/handshakeFailure/HandshakeFailure.java ! test/java/rmi/transport/handshakeTimeout/HandshakeTimeout.java ! test/java/rmi/transport/httpSocket/HttpSocketTest.java ! test/java/rmi/transport/httpSocket/security.policy ! test/java/rmi/transport/pinClientSocketFactory/PinClientSocketFactory.java ! test/java/rmi/transport/rapidExportUnexport/RapidExportUnexport.java ! test/java/rmi/transport/reuseDefaultPort/ReuseDefaultPort.java ! test/sun/rmi/rmic/newrmic/equivalence/AppleUserImpl.java ! test/sun/rmi/rmic/newrmic/equivalence/run.sh ! test/sun/rmi/runtime/Log/6409194/NoConsoleOutput.java ! test/sun/rmi/runtime/Log/checkLogging/CheckLogging.java ! test/sun/rmi/transport/proxy/EagerHttpFallback.java ! test/sun/rmi/transport/tcp/DeadCachedConnection.java Changeset: c76ad79a5a2f Author: sherman Date: 2012-07-17 19:57 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/c76ad79a5a2f 7183053: Optimize DoubleByte charset for String.getBytes()/new String(byte[]) Summary: DoubleByte implements sun/nio.cs/ArrayDe/Encoder interface Reviewed-by: alanb ! src/share/classes/sun/nio/cs/ext/DoubleByte.java ! src/share/classes/sun/nio/cs/ext/HKSCS.java ! test/sun/nio/cs/StrCodingBenchmark.java + test/sun/nio/cs/StrCodingBenchmarkDB.java ! test/sun/nio/cs/TestStringCoding.java Changeset: 89129c0737f1 Author: dmocek Date: 2012-07-18 10:04 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/89129c0737f1 7184943: fix failing test com/sun/jndi/rmi/registry/RegistryContext/UnbindIdempotent.java 7184946: fix failing test com/sun/jndi/rmi/registry/RegistryContext/ContextWithNullProperties.java Reviewed-by: smarks ! test/com/sun/jndi/rmi/registry/RegistryContext/ContextWithNullProperties.java ! test/com/sun/jndi/rmi/registry/RegistryContext/UnbindIdempotent.java Changeset: 7bd32bfc0539 Author: michaelm Date: 2012-07-18 18:46 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/7bd32bfc0539 7183292: HttpURLConnection.getHeaderFields() throws IllegalArgumentException: Illegal cookie name Reviewed-by: khazra, chegar ! src/share/classes/java/net/HttpCookie.java ! test/java/net/CookieHandler/TestHttpCookie.java + test/java/net/HttpCookie/IllegalCookieNameTest.java Changeset: 255c2c63697e Author: lana Date: 2012-07-18 16:09 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/255c2c63697e Merge - src/share/classes/sun/security/krb5/ServiceName.java - test/sun/security/krb5/ServiceNameClone.java - test/sun/security/mscapi/ShortRSAKey512.sh - test/sun/security/mscapi/ShortRSAKey768.sh Changeset: 51707c3b75c0 Author: lana Date: 2012-07-24 11:06 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/51707c3b75c0 Merge Changeset: e4bae5c53fca Author: cl Date: 2012-07-26 16:48 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/jdk/rev/e4bae5c53fca Added tag jdk8-b49 for changeset 51707c3b75c0 ! .hgtags From john.coomes at oracle.com Thu Jul 26 20:42:19 2012 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 27 Jul 2012 03:42:19 +0000 Subject: hg: hsx/hotspot-main/langtools: 5 new changesets Message-ID: <20120727034234.9913F47241@hg.openjdk.java.net> Changeset: 9ee07e5dc0e2 Author: cl Date: 2012-07-23 12:38 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/langtools/rev/9ee07e5dc0e2 Added tag jdk8-b48 for changeset afb0a5231557 ! .hgtags Changeset: 934a89402f85 Author: mcimadamore Date: 2012-07-13 12:58 +0100 URL: http://hg.openjdk.java.net/hsx/hotspot-main/langtools/rev/934a89402f85 7181578: javac reports uninitialized variable with nested try...finally blocks Summary: regression introduced in refactoring of Flow.java Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Flow.java + test/tools/javac/DefiniteAssignment/T7181578.java Changeset: 1f8fc9e50a1f Author: lana Date: 2012-07-16 17:05 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/langtools/rev/1f8fc9e50a1f Merge Changeset: c72c164ced67 Author: lana Date: 2012-07-24 11:05 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/langtools/rev/c72c164ced67 Merge Changeset: b2d8a270f5f2 Author: cl Date: 2012-07-26 16:48 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/langtools/rev/b2d8a270f5f2 Added tag jdk8-b49 for changeset c72c164ced67 ! .hgtags From coleen.phillimore at oracle.com Fri Jul 27 10:45:07 2012 From: coleen.phillimore at oracle.com (Coleen Phillimore) Date: Fri, 27 Jul 2012 13:45:07 -0400 Subject: Code review request: 7186778 MachO decoder implementation for MacOSX In-Reply-To: <50103114.2060301@oracle.com> References: <50103114.2060301@oracle.com> Message-ID: <5012D3A3.5030109@oracle.com> I think this looks good to me. Coleen On 7/25/2012 1:47 PM, Zhengyu Gu wrote: > This is the implementation of MachO decoder for MacOSX. The > implementation is based on the patch provided by Kevin Walls, I > modified it to fit it into current decoder framework. > > > CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7186778 > Webrev: http://cr.openjdk.java.net/~zgu/7186778/webrev.00/ > > Tests: > The repo has ran through JPRT. I also used NMT queries to display > the decoded callsites. > > > Thanks, > > -Zhengyu From keith.mcguigan at oracle.com Fri Jul 27 11:20:25 2012 From: keith.mcguigan at oracle.com (Keith McGuigan) Date: Fri, 27 Jul 2012 14:20:25 -0400 Subject: Code review request: 7186778 MachO decoder implementation for MacOSX In-Reply-To: <5012D3A3.5030109@oracle.com> References: <50103114.2060301@oracle.com> <5012D3A3.5030109@oracle.com> Message-ID: <5012DBE9.4050201@oracle.com> Same here. -- - Keith On 7/27/2012 1:45 PM, Coleen Phillimore wrote: > > I think this looks good to me. > Coleen > > On 7/25/2012 1:47 PM, Zhengyu Gu wrote: >> This is the implementation of MachO decoder for MacOSX. The >> implementation is based on the patch provided by Kevin Walls, I >> modified it to fit it into current decoder framework. >> >> >> CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7186778 >> Webrev: http://cr.openjdk.java.net/~zgu/7186778/webrev.00/ >> >> Tests: >> The repo has ran through JPRT. I also used NMT queries to display >> the decoded callsites. >> >> >> Thanks, >> >> -Zhengyu From alejandro.murillo at oracle.com Fri Jul 27 13:58:44 2012 From: alejandro.murillo at oracle.com (alejandro.murillo at oracle.com) Date: Fri, 27 Jul 2012 20:58:44 +0000 Subject: hg: hsx/hsx24/hotspot: 9 new changesets Message-ID: <20120727205905.BEBBE47262@hg.openjdk.java.net> Changeset: ea926f2921d6 Author: cl Date: 2012-07-26 16:48 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/ea926f2921d6 Added tag jdk8-b49 for changeset e3619706a725 ! .hgtags Changeset: aba91a731143 Author: amurillo Date: 2012-07-23 13:04 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/aba91a731143 7185775: new hotspot build - hs24-b18 Reviewed-by: jcoomes ! make/hotspot_version Changeset: fe94b4e7212b Author: asaha Date: 2012-07-23 14:28 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/fe94b4e7212b 7185550: TEST: runtime/7020373/Test7020373.sh fails because there is no test/runtime/7020373/testcase.jar Reviewed-by: coleenp ! test/runtime/7020373/Test7020373.sh + test/runtime/7020373/testcase.jar Changeset: 43541217e9f7 Author: jiangli Date: 2012-07-26 17:24 -0400 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/43541217e9f7 7187046: Crash in ClassFileParser on solaris-ia32 during RetransformClasses. Summary: Lower compiler optimization level when compiling jvmtiClassFileReconstituter.cpp as a workaround for the solaris x86 5.10 cc bug. Reviewed-by: kvn, coleenp ! make/solaris/makefiles/fastdebug.make ! make/solaris/makefiles/optimized.make ! make/solaris/makefiles/product.make Changeset: 611e8a669a2c Author: dlong Date: 2012-07-16 15:31 -0400 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/611e8a669a2c 7147464: Java crashed while executing method with over 8k of dneg operations Summary: replace recursive method with iterative Reviewed-by: kvn, twisti Contributed-by: dean.long at oracle.com ! src/share/vm/opto/phaseX.cpp ! src/share/vm/opto/phaseX.hpp Changeset: a93a6d2c9e6c Author: jiangli Date: 2012-07-24 13:16 -0400 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/a93a6d2c9e6c Merge Changeset: bcd1b9d98558 Author: jiangli Date: 2012-07-26 16:55 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/bcd1b9d98558 Merge Changeset: 72e0362c3f0c Author: amurillo Date: 2012-07-27 12:08 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/72e0362c3f0c Merge ! .hgtags - test/runtime/6294277/Test6294277.sh Changeset: 58f237a9e83a Author: amurillo Date: 2012-07-27 12:08 -0700 URL: http://hg.openjdk.java.net/hsx/hsx24/hotspot/rev/58f237a9e83a Added tag hs24-b18 for changeset 72e0362c3f0c ! .hgtags From alejandro.murillo at oracle.com Fri Jul 27 20:13:05 2012 From: alejandro.murillo at oracle.com (alejandro.murillo at oracle.com) Date: Sat, 28 Jul 2012 03:13:05 +0000 Subject: hg: hsx/hotspot-main/hotspot: 4 new changesets Message-ID: <20120728031313.4B70E4726D@hg.openjdk.java.net> Changeset: ea926f2921d6 Author: cl Date: 2012-07-26 16:48 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/ea926f2921d6 Added tag jdk8-b49 for changeset e3619706a725 ! .hgtags Changeset: 72e0362c3f0c Author: amurillo Date: 2012-07-27 12:08 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/72e0362c3f0c Merge ! .hgtags - test/runtime/6294277/Test6294277.sh Changeset: 58f237a9e83a Author: amurillo Date: 2012-07-27 12:08 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/58f237a9e83a Added tag hs24-b18 for changeset 72e0362c3f0c ! .hgtags Changeset: 86a687be3f02 Author: amurillo Date: 2012-07-27 16:51 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/86a687be3f02 7187463: new hotspot build - hs24-b19 Reviewed-by: jcoomes ! make/hotspot_version From jon.masamitsu at oracle.com Fri Jul 27 23:22:46 2012 From: jon.masamitsu at oracle.com (jon.masamitsu at oracle.com) Date: Sat, 28 Jul 2012 06:22:46 +0000 Subject: hg: hsx/hotspot-main/hotspot: 7 new changesets Message-ID: <20120728062303.6DFD047273@hg.openjdk.java.net> Changeset: 594dff5e3c2e Author: johnc Date: 2012-07-17 11:52 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/594dff5e3c2e 7173712: G1: Duplicated code in G1UpdateRSOrPushRefOopClosure::do_oop_nv() Summary: Duplicated code from G1RemSet::par_write_ref() inlined into G1UpdateRSOrPushRefOopClosure::do_oop_nv() was showing up in profiles with a fairly high amount of CPU time. Manually inline the main part of G1RemSet::par_write_ref() to eliminate the code duplication. Reviewed-by: azeemj, brutisso ! src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp Changeset: d42fe3c3001d Author: johnc Date: 2012-07-17 14:57 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/d42fe3c3001d 7184772: G1: Incorrect assert in HeapRegionLinkedList::add_as_head() Summary: Assertion incorrectly checks that _head is NULL and should be checking that _tail is NULL instead. Reviewed-by: johnc Contributed-by: Brandon Mitchell ! src/share/vm/gc_implementation/g1/heapRegionSet.cpp Changeset: db823a892a55 Author: johnc Date: 2012-07-17 12:24 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/db823a892a55 7182260: G1: Fine grain RSet freeing bottleneck Summary: Chain the fine grain PerRegionTables in an individual RSet together and free them in bulk using a single operation. Reviewed-by: johnc, brutisso Contributed-by: Thomas Schatzl ! src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp ! src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp Changeset: a2f7274eb6ef Author: tonyp Date: 2012-07-19 15:15 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/a2f7274eb6ef 7114678: G1: various small fixes, code cleanup, and refactoring Summary: Various cleanups as a prelude to introducing iterators for HeapRegions. Reviewed-by: johnc, brutisso ! src/share/vm/gc_implementation/g1/collectionSetChooser.hpp ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/gc_implementation/g1/g1MarkSweep.cpp ! src/share/vm/gc_implementation/g1/g1OopClosures.hpp ! src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp ! src/share/vm/gc_implementation/g1/g1RemSet.cpp ! src/share/vm/gc_implementation/g1/heapRegion.cpp ! src/share/vm/gc_implementation/g1/heapRegion.hpp ! src/share/vm/gc_implementation/g1/heapRegionSet.cpp ! src/share/vm/gc_implementation/g1/heapRegionSet.hpp ! src/share/vm/gc_implementation/g1/heapRegionSet.inline.hpp Changeset: 113f4c73df61 Author: jmasa Date: 2012-07-24 14:48 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/113f4c73df61 Merge Changeset: 3080f4743cf2 Author: jmasa Date: 2012-07-26 23:43 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/3080f4743cf2 Merge Changeset: ff58dfd5b977 Author: jmasa Date: 2012-07-27 21:41 -0700 URL: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/ff58dfd5b977 Merge From kevin.walls at oracle.com Sat Jul 28 02:10:22 2012 From: kevin.walls at oracle.com (Kevin Walls) Date: Sat, 28 Jul 2012 10:10:22 +0100 Subject: Code review request: 7186778 MachO decoder implementation for MacOSX In-Reply-To: <50103114.2060301@oracle.com> References: <50103114.2060301@oracle.com> Message-ID: <5013AC7E.6070403@oracle.com> Hi Zhengyu Thanks for taking this on. 8-) os_bsd.cpp at line 1976 is my comment which needs to go: 1976 // Is this where we end up for a non-dynamic symbol? 1977 // If so, here's the brute force approach: 1978 // Hoping that dladdr() sets dlinfo.dli_fbase above, or do we need to look it up? 1979 // Perhaps verify it's not null. 1980 if (Decoder::decode(addr, localbuf, MACH_MAXSYMLEN, offset, dlinfo.dli_fbase)) { ...or at least change to: // Handle non-dymanic manually: Also there's a comment at 1957 which should go. It seems that the dladdr() call at 1961 sets our dlinfo.dli_fbase, even when it can't return a symbol name. (If any doubt, we should check that the dli_fbase address is at least non-null before calling Decoder::decode at 1980?... Actually, yes we should check as we are relying on dladdr() populating that field, but what if it failed for some reason other than it being a dynamic symbol?) Thanks! Kevin On 25/07/12 18:47, Zhengyu Gu wrote: > This is the implementation of MachO decoder for MacOSX. The > implementation is based on the patch provided by Kevin Walls, I > modified it to fit it into current decoder framework. > > > CR: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7186778 > Webrev: http://cr.openjdk.java.net/~zgu/7186778/webrev.00/ > > Tests: > The repo has ran through JPRT. I also used NMT queries to display > the decoded callsites. > > > Thanks, > > -Zhengyu From tromey at redhat.com Sat Jul 28 14:38:09 2012 From: tromey at redhat.com (Tom Tromey) Date: Sat, 28 Jul 2012 15:38:09 -0600 Subject: [PATCH] Linux implementation for set_native_thread_name() In-Reply-To: <50113151.7020207@oracle.com> (David Holmes's message of "Thu, 26 Jul 2012 22:00:17 +1000") References: <1343158929.5573.19.camel@mercury> <500F02EA.8090203@oracle.com> <1343164258.5573.43.camel@mercury> <50113151.7020207@oracle.com> Message-ID: <87sjcb8t32.fsf@fleche.redhat.com> >>>>> "David" == David Holmes writes: >> I verified it using htop and by inspecting /proc/$PID/task/$TID/stat. >> Unfortuntately, I couldn't get top or ps to show the thread name, but >> maybe I'm just stupid (and I did not try very hard). David> gdb? It shows up in gdb if you run a recent-enough kernel. "Recent-enough", meaning that /proc/PID/task/TID/comm exists. IIRC the gdb support was added in 7.3 You can see the thread name in "info threads". Tom From ks at sysenter.org Sat Jul 28 21:10:10 2012 From: ks at sysenter.org (Kaushik Srenevasan) Date: Sat, 28 Jul 2012 21:10:10 -0700 Subject: [PATCH] Fix for hotspot build failures on Linux In-Reply-To: References: Message-ID: I'm running into build failures while trying to build hotspot (only - not the JDK). It looks like the first of these is due to a change introduced in 2558:81d815b05abb while the second has been around forever. hotspot/src/share/vm/oops/constantPoolOop.cpp:272:40: error: converting 'false' to pointer type 'methodOop' [-Werror=conversion-null] hotspot/src/share/vm/opto/loopnode.cpp:896:50: error: converting 'false' to pointer type 'Node*' [-Werror=conversion-null] The cause for both of these is a conversion from bool to a pointer type conversion warning being treated as an error; that gcc (Debian 4.7.1-2) 4.7.1 doesn't seem to like. Attached patch fixes this. Thanks, -Kaushik PS: FWIW, here's the command I'm using to build: make LANG=C ARCH_DATA_MODEL=64 DISABLE_HOTSPOT_OS_VERSION_CHECK=ok ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk-amd64 jvmg From david.holmes at oracle.com Sun Jul 29 00:01:28 2012 From: david.holmes at oracle.com (David Holmes) Date: Sun, 29 Jul 2012 17:01:28 +1000 Subject: [PATCH] Fix for hotspot build failures on Linux In-Reply-To: References: Message-ID: <5014DFC8.2060206@oracle.com> On 29/07/2012 2:10 PM, Kaushik Srenevasan wrote: > I'm running into build failures while trying to build hotspot (only - > not the JDK). It looks like the first of these is due to a change > introduced in 2558:81d815b05abb while the second has been around > forever. > > hotspot/src/share/vm/oops/constantPoolOop.cpp:272:40: error: > converting 'false' to pointer type 'methodOop' > [-Werror=conversion-null] > hotspot/src/share/vm/opto/loopnode.cpp:896:50: error: converting > 'false' to pointer type 'Node*' [-Werror=conversion-null] > These were both fixed 6 months ago as bug 7140882: http://hg.openjdk.java.net/hsx/hotspot-rt/hotspot/rev/f457154eee8b The fix went into jdk8 and jdk7u4. What version of hotspot sources do you have? > The cause for both of these is a conversion from bool to a pointer > type conversion warning being treated as an error; that gcc (Debian > 4.7.1-2) 4.7.1 doesn't seem to like. > > Attached patch fixes this. FYI the mailing lists tend to strip attachments. David ----- > Thanks, > -Kaushik > > PS: FWIW, here's the command I'm using to build: > make LANG=C ARCH_DATA_MODEL=64 DISABLE_HOTSPOT_OS_VERSION_CHECK=ok > ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk-amd64 jvmg From ks at sysenter.org Sun Jul 29 13:00:07 2012 From: ks at sysenter.org (Kaushik Srenevasan) Date: Sun, 29 Jul 2012 13:00:07 -0700 Subject: [PATCH] Fix for hotspot build failures on Linux In-Reply-To: <5014DFC8.2060206@oracle.com> References: <5014DFC8.2060206@oracle.com> Message-ID: On Sun, Jul 29, 2012 at 12:01 AM, David Holmes wrote: > What version of hotspot sources do you have? > That is it. I'd cloned jdk7 by mistake. > FYI the mailing lists tend to strip attachments. > Noted. -Kaushik From mjw at redhat.com Mon Jul 30 01:10:11 2012 From: mjw at redhat.com (Mark Wielaard) Date: Mon, 30 Jul 2012 10:10:11 +0200 Subject: [PATCH 0 of 4] Add support for dtrace compatible sdt probes on GNU/Linux In-Reply-To: <501135AC.50902@oracle.com> References: <500711BF.4050301@oracle.com> <1343298517.16205.14.camel@springer.wildebeest.org> <501135AC.50902@oracle.com> Message-ID: <1343635811.23072.2.camel@springer.wildebeest.org> On Thu, 2012-07-26 at 22:18 +1000, David Holmes wrote: > On 26/07/2012 8:28 PM, Mark Wielaard wrote: > > On Fri, 2012-07-20 at 16:34 +0200, Mark Wielaard wrote: > >> This is a rebased version of the original patch set from last May against > >> current hsx/hotspot-main. This version contains an extra patch with a > >> simple testcase that makes sure that on GNU/Linux systems build with > >> ENABLE_DTRACE the SDT probes are actually there. > >> > >> They don't have to be applied all at once. Just apply those in the serie > >> you feel are good to go. The later patches do depend on the earlier ones. > >> But I rather see only the first applied and get feedback on why the later > >> ones aren't good enough yet, than not get anything applied. > >> > >> Please let me know if there is anything else I can do to get these applied. > > > > Ping. Just making sure this isn't stalled again and we are making > > progress. Can these patches be applied now? > > Someone needs to sponsor this for you Is there a list of "someones" who I can try to bribe into "sponsoring" to get this patch applied? Is everything that needs to be done now (JPRT, CCC, commit/push, etc.) Oracle internal? Or is there anything I can do to help get this done faster? Thanks, Mark From david.holmes at oracle.com Mon Jul 30 05:02:26 2012 From: david.holmes at oracle.com (David Holmes) Date: Mon, 30 Jul 2012 22:02:26 +1000 Subject: [PATCH 0 of 4] Add support for dtrace compatible sdt probes on GNU/Linux In-Reply-To: <1343635811.23072.2.camel@springer.wildebeest.org> References: <500711BF.4050301@oracle.com> <1343298517.16205.14.camel@springer.wildebeest.org> <501135AC.50902@oracle.com> <1343635811.23072.2.camel@springer.wildebeest.org> Message-ID: <501677D2.6020904@oracle.com> Hi Mark, Yes everything is Oracle internal now. So there may be a delay - sorry. The main thing that stops this being trivial is the need to validate the changes against DTrace on Solaris. I'm not even sure which tests need to be used. I'll try to connect with Keith to see if we can move this forward. Thanks for your patience. David On 30/07/2012 6:10 PM, Mark Wielaard wrote: > On Thu, 2012-07-26 at 22:18 +1000, David Holmes wrote: >> On 26/07/2012 8:28 PM, Mark Wielaard wrote: >>> On Fri, 2012-07-20 at 16:34 +0200, Mark Wielaard wrote: >>>> This is a rebased version of the original patch set from last May against >>>> current hsx/hotspot-main. This version contains an extra patch with a >>>> simple testcase that makes sure that on GNU/Linux systems build with >>>> ENABLE_DTRACE the SDT probes are actually there. >>>> >>>> They don't have to be applied all at once. Just apply those in the serie >>>> you feel are good to go. The later patches do depend on the earlier ones. >>>> But I rather see only the first applied and get feedback on why the later >>>> ones aren't good enough yet, than not get anything applied. >>>> >>>> Please let me know if there is anything else I can do to get these applied. >>> >>> Ping. Just making sure this isn't stalled again and we are making >>> progress. Can these patches be applied now? >> >> Someone needs to sponsor this for you > > Is there a list of "someones" who I can try to bribe into "sponsoring" > to get this patch applied? > > Is everything that needs to be done now (JPRT, CCC, commit/push, etc.) > Oracle internal? Or is there anything I can do to help get this done > faster? > > Thanks, > > Mark From ahughes at redhat.com Mon Jul 30 16:42:37 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Mon, 30 Jul 2012 19:42:37 -0400 (EDT) Subject: Use of STABS debug format In-Reply-To: <540704155.5562883.1343690761506.JavaMail.root@redhat.com> Message-ID: <377555616.5566159.1343691757626.JavaMail.root@redhat.com> Hi all, It seems that following: 7071904: 4/4 HotSpot: Full Debug Symbols http://hg.openjdk.java.net/jdk8/jdk8/hotspot/rev/da0999c4b733 a number of architectures on Linux (including x86) have started building with the STABS debug format rather than DWARF. This is presumably due to the addition of this block: +ifneq ($(OBJCOPY),) + FASTDEBUG_CFLAGS/ia64 = -g + FASTDEBUG_CFLAGS/amd64 = -g + FASTDEBUG_CFLAGS/arm = -g + FASTDEBUG_CFLAGS/ppc = -g + FASTDEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH)) + ifeq ($(FASTDEBUG_CFLAGS/$(BUILDARCH)),) + FASTDEBUG_CFLAGS += -gstabs + endif + + OPT_CFLAGS/ia64 = -g + OPT_CFLAGS/amd64 = -g + OPT_CFLAGS/arm = -g + OPT_CFLAGS/ppc = -g + OPT_CFLAGS += $(OPT_CFLAGS/$(BUILDARCH)) + ifeq ($(OPT_CFLAGS/$(BUILDARCH)),) + OPT_CFLAGS += -gstabs + endif +endif + Prior to this, I don't believe product builds had debug information by default. You'd have to set DEBUG_BINARIES (something we do). Is there a reason to use STABS any more? For our part, it's causing bugs such as: https://bugzilla.redhat.com/show_bug.cgi?id=841057 This statement: # Use the stabs format for debugging information (this is the default # on gcc-2.91). It's good enough, has all the information about line # numbers and local variables, and libjvm_g.so is only about 16M. # Change this back to "-g" if you want the most expressive format. seems dated (Fedora, for example, is on gcc 4.7) and the size argument seems redundant, given debug information is now stripped and stored in separate compressed files by default. Is there any reason to retain the use of STABS on x86 and SPARC, the only supported architectures not opted out above as far as I can tell? Note that our concern is the Linux makefile and we're more than happy to leave STABS in place on Solaris and *BSD, if necessary, as we don't build there :-) -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From mjw at redhat.com Tue Jul 31 02:52:25 2012 From: mjw at redhat.com (Mark Wielaard) Date: Tue, 31 Jul 2012 11:52:25 +0200 Subject: [PATCH 0 of 4] Add support for dtrace compatible sdt probes on GNU/Linux In-Reply-To: <501677D2.6020904@oracle.com> References: <500711BF.4050301@oracle.com> <1343298517.16205.14.camel@springer.wildebeest.org> <501135AC.50902@oracle.com> <1343635811.23072.2.camel@springer.wildebeest.org> <501677D2.6020904@oracle.com> Message-ID: <20120731095225.GA3105@toonder.wildebeest.org> On Mon, Jul 30, 2012 at 10:02:26PM +1000, David Holmes wrote: > Yes everything is Oracle internal now. So there may be a delay - > sorry. The main thing that stops this being trivial is the need to > validate the changes against DTrace on Solaris. I'm not even sure > which tests need to be used. May I suggest that it would be really beneficial to have tests like these public. I do actually have an openindiana install, so in theory I could try building hotspot on that. I haven't done that because there are no tests that I could run. It is slightly irritating that a simple patch is stalled for months because nobody can find the proprietary/clossed tests to run. As far as I know everybody who looked at the code agreed this shouldn't impact solaris/dtrace. It could of course in theory, so it is good if someone runs the tests on that platform, but IMHO this is taking way too long and you are not empowering others to help you getting things done. Thanks, Mark From david.holmes at oracle.com Tue Jul 31 05:15:04 2012 From: david.holmes at oracle.com (David Holmes) Date: Tue, 31 Jul 2012 22:15:04 +1000 Subject: [PATCH 0 of 4] Add support for dtrace compatible sdt probes on GNU/Linux In-Reply-To: <20120731095225.GA3105@toonder.wildebeest.org> References: <500711BF.4050301@oracle.com> <1343298517.16205.14.camel@springer.wildebeest.org> <501135AC.50902@oracle.com> <1343635811.23072.2.camel@springer.wildebeest.org> <501677D2.6020904@oracle.com> <20120731095225.GA3105@toonder.wildebeest.org> Message-ID: <5017CC48.5060605@oracle.com> On 31/07/2012 7:52 PM, Mark Wielaard wrote: > On Mon, Jul 30, 2012 at 10:02:26PM +1000, David Holmes wrote: >> Yes everything is Oracle internal now. So there may be a delay - >> sorry. The main thing that stops this being trivial is the need to >> validate the changes against DTrace on Solaris. I'm not even sure >> which tests need to be used. > > May I suggest that it would be really beneficial to have tests like > these public. I do actually have an openindiana install, so in theory > I could try building hotspot on that. I haven't done that because > there are no tests that I could run. It is slightly irritating that > a simple patch is stalled for months because nobody can find the > proprietary/clossed tests to run. As far as I know everybody who > looked at the code agreed this shouldn't impact solaris/dtrace. It > could of course in theory, so it is good if someone runs the tests > on that platform, but IMHO this is taking way too long and you are > not empowering others to help you getting things done. I understand and share your frustrations. Unfortunately the availability or otherwise of tests is not something over which I have any influence. David > Thanks, > > Mark From coleen.phillimore at oracle.com Tue Jul 31 05:37:01 2012 From: coleen.phillimore at oracle.com (Coleen Phillimore) Date: Tue, 31 Jul 2012 08:37:01 -0400 Subject: Use of STABS debug format In-Reply-To: <377555616.5566159.1343691757626.JavaMail.root@redhat.com> References: <377555616.5566159.1343691757626.JavaMail.root@redhat.com> Message-ID: <5017D16D.7030209@oracle.com> I would love for stabs to go away for linux 32 bit. I think there was a size issue once with that platform and was filling up our disk. I think I changed this recently and noticed that the issue is gone. I'll file a bug (if there isn't one already) and remove stabs for linux. Stabs still work better for solaris. This still doesn't fix my problem that even the latest version of gdb still can't show or stop in inlined functions on 32 bit (works on 64 bit). Is there a bug for this? It would be nice if this was fixed. Thanks, Coleen On 7/30/2012 7:42 PM, Andrew Hughes wrote: > Hi all, > > It seems that following: > > 7071904: 4/4 HotSpot: Full Debug Symbols > http://hg.openjdk.java.net/jdk8/jdk8/hotspot/rev/da0999c4b733 > > a number of architectures on Linux (including x86) have started building with the > STABS debug format rather than DWARF. > > This is presumably due to the addition of this block: > > +ifneq ($(OBJCOPY),) > + FASTDEBUG_CFLAGS/ia64 = -g > + FASTDEBUG_CFLAGS/amd64 = -g > + FASTDEBUG_CFLAGS/arm = -g > + FASTDEBUG_CFLAGS/ppc = -g > + FASTDEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH)) > + ifeq ($(FASTDEBUG_CFLAGS/$(BUILDARCH)),) > + FASTDEBUG_CFLAGS += -gstabs > + endif > + > + OPT_CFLAGS/ia64 = -g > + OPT_CFLAGS/amd64 = -g > + OPT_CFLAGS/arm = -g > + OPT_CFLAGS/ppc = -g > + OPT_CFLAGS += $(OPT_CFLAGS/$(BUILDARCH)) > + ifeq ($(OPT_CFLAGS/$(BUILDARCH)),) > + OPT_CFLAGS += -gstabs > + endif > +endif > + > > Prior to this, I don't believe product builds had debug information by default. You'd > have to set DEBUG_BINARIES (something we do). > > Is there a reason to use STABS any more? For our part, it's causing bugs such as: > > https://bugzilla.redhat.com/show_bug.cgi?id=841057 > > This statement: > > # Use the stabs format for debugging information (this is the default > # on gcc-2.91). It's good enough, has all the information about line > # numbers and local variables, and libjvm_g.so is only about 16M. > # Change this back to "-g" if you want the most expressive format. > > seems dated (Fedora, for example, is on gcc 4.7) and the size argument > seems redundant, given debug information is now stripped and stored in > separate compressed files by default. > > Is there any reason to retain the use of STABS on x86 and SPARC, the only supported > architectures not opted out above as far as I can tell? > > Note that our concern is the Linux makefile and we're more than happy to leave STABS > in place on Solaris and *BSD, if necessary, as we don't build there :-) From tromey at redhat.com Tue Jul 31 06:28:13 2012 From: tromey at redhat.com (Tom Tromey) Date: Tue, 31 Jul 2012 07:28:13 -0600 Subject: Use of STABS debug format In-Reply-To: <5017D16D.7030209@oracle.com> (Coleen Phillimore's message of "Tue, 31 Jul 2012 08:37:01 -0400") References: <377555616.5566159.1343691757626.JavaMail.root@redhat.com> <5017D16D.7030209@oracle.com> Message-ID: <87boiw12mq.fsf@fleche.redhat.com> >>>>> "Coleen" == Coleen Phillimore writes: Coleen> This still doesn't fix my problem that even the latest version of gdb Coleen> still can't show or stop in inlined functions on 32 bit (works on 64 Coleen> bit). Is there a bug for this? It would be nice if this was fixed. I'm surprised to hear that this doesn't work. Please file a gdb bug report. http://sourceware.org/bugzilla/ The very best thing for us would be a self-contained example. Tom From ahughes at redhat.com Tue Jul 31 06:26:53 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Tue, 31 Jul 2012 09:26:53 -0400 (EDT) Subject: Use of STABS debug format In-Reply-To: <5017D16D.7030209@oracle.com> Message-ID: <526668492.6086799.1343741213034.JavaMail.root@redhat.com> ----- Original Message ----- > > I would love for stabs to go away for linux 32 bit. I think there > was > a size issue once with that platform and was filling up our disk. I > think I changed this recently and noticed that the issue is gone. That's what's noted in the comments. However, there's also a regression here: 1. Prior to 7071904, '-gstabs' was only added for debug builds and fastdebug/opt builds did not have debugging information. 2. After 7071904, '-gstabs' is added to all builds except on arm, ppc, x86_64 and ia64. This conflicts with the DEBUG_BINARIES option we use for building that adds '-g' to all builds. It means that, with the change in 7071904, our builds now get '-g -gstabs' on x86, whereas before they just got '-g'. Maybe the following would work without affecting your builds: --- a/make/linux/makefiles/gcc.make +++ b/make/linux/makefiles/gcc.make @@ -274,6 +274,8 @@ # DEBUG_BINARIES overrides everything, use full -g debug information ifeq ($(DEBUG_BINARIES), true) DEBUG_CFLAGS = -g + OPT_CFLAGS = -g + FASTDEBUG_CFLAGS = -g CFLAGS += $(DEBUG_CFLAGS) endif The CFLAGS line may be able to be dropped as well. > I'll > file a bug (if there isn't one already) and remove stabs for linux. Thanks :-) > Stabs still work better for solaris. We have no plans to change the Solaris build :-) > > This still doesn't fix my problem that even the latest version of gdb > still can't show or stop in inlined functions on 32 bit (works on 64 > bit). Is there a bug for this? It would be nice if this was > fixed. I'll leave Andrew Haley (cced) to answer this, as he's much better qualified on this, but I think this may be similar to the problem that made us first notice that the debug format had changed from DWARF to STABS. > > Thanks, > Coleen > > On 7/30/2012 7:42 PM, Andrew Hughes wrote: > > Hi all, > > > > It seems that following: > > > > 7071904: 4/4 HotSpot: Full Debug Symbols > > http://hg.openjdk.java.net/jdk8/jdk8/hotspot/rev/da0999c4b733 > > > > a number of architectures on Linux (including x86) have started > > building with the > > STABS debug format rather than DWARF. > > > > This is presumably due to the addition of this block: > > > > +ifneq ($(OBJCOPY),) > > + FASTDEBUG_CFLAGS/ia64 = -g > > + FASTDEBUG_CFLAGS/amd64 = -g > > + FASTDEBUG_CFLAGS/arm = -g > > + FASTDEBUG_CFLAGS/ppc = -g > > + FASTDEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH)) > > + ifeq ($(FASTDEBUG_CFLAGS/$(BUILDARCH)),) > > + FASTDEBUG_CFLAGS += -gstabs > > + endif > > + > > + OPT_CFLAGS/ia64 = -g > > + OPT_CFLAGS/amd64 = -g > > + OPT_CFLAGS/arm = -g > > + OPT_CFLAGS/ppc = -g > > + OPT_CFLAGS += $(OPT_CFLAGS/$(BUILDARCH)) > > + ifeq ($(OPT_CFLAGS/$(BUILDARCH)),) > > + OPT_CFLAGS += -gstabs > > + endif > > +endif > > + > > > > Prior to this, I don't believe product builds had debug information > > by default. You'd > > have to set DEBUG_BINARIES (something we do). > > > > Is there a reason to use STABS any more? For our part, it's > > causing bugs such as: > > > > https://bugzilla.redhat.com/show_bug.cgi?id=841057 > > > > This statement: > > > > # Use the stabs format for debugging information (this is the > > default > > # on gcc-2.91). It's good enough, has all the information about > > line > > # numbers and local variables, and libjvm_g.so is only about 16M. > > # Change this back to "-g" if you want the most expressive format. > > > > seems dated (Fedora, for example, is on gcc 4.7) and the size > > argument > > seems redundant, given debug information is now stripped and stored > > in > > separate compressed files by default. > > > > Is there any reason to retain the use of STABS on x86 and SPARC, > > the only supported > > architectures not opted out above as far as I can tell? > > > > Note that our concern is the Linux makefile and we're more than > > happy to leave STABS > > in place on Solaris and *BSD, if necessary, as we don't build there > > :-) > > Thanks, -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From daniel.daugherty at oracle.com Tue Jul 31 08:05:02 2012 From: daniel.daugherty at oracle.com (Daniel D. Daugherty) Date: Tue, 31 Jul 2012 09:05:02 -0600 Subject: Use of STABS debug format In-Reply-To: <377555616.5566159.1343691757626.JavaMail.root@redhat.com> References: <377555616.5566159.1343691757626.JavaMail.root@redhat.com> Message-ID: <5017F41E.4060102@oracle.com> Greetings, There are a number of issues/questions in this e-mail and I'll see what I can do to address/reply to all of them. On 7/30/12 5:42 PM, Andrew Hughes wrote: > Hi all, > > It seems that following: > > 7071904: 4/4 HotSpot: Full Debug Symbols > http://hg.openjdk.java.net/jdk8/jdk8/hotspot/rev/da0999c4b733 > > a number of architectures on Linux (including x86) have started building with the > STABS debug format rather than DWARF. Yes, the fix for 7071904 enabled building with STABS debug format for many configs. However, the "rather than DWARF" part of the above confuses me slightly. Do you mean: These configs used to build with DWARF before and now build with STABS. Or do you mean: These configs now build with debug info, but DWARF should have been used instead of STABS. I suspect you mean the second interpretation. > This is presumably due to the addition of this block: > > +ifneq ($(OBJCOPY),) > + FASTDEBUG_CFLAGS/ia64 = -g > + FASTDEBUG_CFLAGS/amd64 = -g > + FASTDEBUG_CFLAGS/arm = -g > + FASTDEBUG_CFLAGS/ppc = -g > + FASTDEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH)) > + ifeq ($(FASTDEBUG_CFLAGS/$(BUILDARCH)),) > + FASTDEBUG_CFLAGS += -gstabs > + endif > + > + OPT_CFLAGS/ia64 = -g > + OPT_CFLAGS/amd64 = -g > + OPT_CFLAGS/arm = -g > + OPT_CFLAGS/ppc = -g > + OPT_CFLAGS += $(OPT_CFLAGS/$(BUILDARCH)) > + ifeq ($(OPT_CFLAGS/$(BUILDARCH)),) > + OPT_CFLAGS += -gstabs > + endif > +endif > + > > Prior to this, I don't believe product builds had debug information by default. Correct. On Linux, neither product builds nor fastdebug builds had debug info enabled. > You'd have to set DEBUG_BINARIES (something we do). I believe that DEBUG_BINARIES still works as an override. At least that's what my testing so very long ago indicated. > Is there a reason to use STABS any more? Yes, presuming that STABS still occupies less space than DWARF. I have not seen any proof to the contrary yet. > For our part, it's causing bugs such as: > > https://bugzilla.redhat.com/show_bug.cgi?id=841057 Based on a quick read of that bug, the problem there seems to be missing debug info. If your debug info is only there for 3 out of 500+ CUs, then something is wrong with the build process. > This statement: > > # Use the stabs format for debugging information (this is the default > # on gcc-2.91). It's good enough, has all the information about line > # numbers and local variables, and libjvm_g.so is only about 16M. > # Change this back to "-g" if you want the most expressive format. > > seems dated (Fedora, for example, is on gcc 4.7) and the size argument > seems redundant, given debug information is now stripped and stored in > separate compressed files by default. The comment might be dated if DWARF is no longer much bigger than STABS. However, I have not seen any proof to the contrary yet. I'm confused by "size argument seems redundant". Why does the stripping of debug info and storing it in a separate compressed file make the size argument "redundant"? Debug info size is still an issue because we save all those artifacts for every integration job (JPRT) and for every promoted build (RE). > Is there any reason to retain the use of STABS on x86 and SPARC, the only supported > architectures not opted out above as far as I can tell? The only reason to use STABS is that it is smaller than DWARF. > Note that our concern is the Linux makefile and we're more than happy to leave STABS > in place on Solaris and *BSD, if necessary, as we don't build there :-) I don't have a problem with using STABS on Solaris and using something else on Linux. Here's the relevant part of the changeset in question with a bit more context: 210 #------------------------------------------------------------------------ 211 # Debug flags 212 213 # Use the stabs format for debugging information (this is the default 214 # on gcc-2.91). It's good enough, has all the information about line 215 # numbers and local variables, and libjvm_g.so is only about 16M. 216 # Change this back to "-g" if you want the most expressive format. 217 # (warning: that could easily inflate libjvm_g.so to 150M!) 218 # Note: The Itanium gcc compiler crashes when using -gstabs. 219 DEBUG_CFLAGS/ia64 = -g 220 DEBUG_CFLAGS/amd64 = -g 221 DEBUG_CFLAGS/arm = -g 222 DEBUG_CFLAGS/ppc = -g 223 DEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH)) 224 ifeq ($(DEBUG_CFLAGS/$(BUILDARCH)),) 225 DEBUG_CFLAGS += -gstabs 226 endif 227 228 ifneq ($(OBJCOPY),) 229 FASTDEBUG_CFLAGS/ia64 = -g 230 FASTDEBUG_CFLAGS/amd64 = -g 231 FASTDEBUG_CFLAGS/arm = -g 232 FASTDEBUG_CFLAGS/ppc = -g 233 FASTDEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH)) 234 ifeq ($(FASTDEBUG_CFLAGS/$(BUILDARCH)),) 235 FASTDEBUG_CFLAGS += -gstabs 236 endif 237 238 OPT_CFLAGS/ia64 = -g 239 OPT_CFLAGS/amd64 = -g 240 OPT_CFLAGS/arm = -g 241 OPT_CFLAGS/ppc = -g 242 OPT_CFLAGS += $(OPT_CFLAGS/$(BUILDARCH)) 243 ifeq ($(OPT_CFLAGS/$(BUILDARCH)),) 244 OPT_CFLAGS += -gstabs 245 endif 246 endif 247 248 # DEBUG_BINARIES overrides everything, use full -g debug information 249 ifeq ($(DEBUG_BINARIES), true) 250 DEBUG_CFLAGS = -g 251 CFLAGS += $(DEBUG_CFLAGS) 252 endif I added the block from lines 228 -> 246. Note that I modeled the FASTDEBUG_* and OPT_* settings on the existing DEBUG_* settings. In other words, if a particular arch-config used DWARF in the DEBUG_* flags, then I preserved that choice in the new FASTDEBUG_* and OPT_* flags. If a particular arch-config defaulted to STABS, then I preserved that also. Things to note: - FASTDEBUG_* didn't have ANY debug flags set and now it does. I tracked that back during the FDS project to a particular bug fix, but I don't remember the details. I'm pretty sure it was a reaction to a size related issue. - The DEBUG_BINARIES override only resets the DEBUG_CFLAGS value to "-g" and doesn't touch FASTDEBUG_CFLAGS or OPT_CFLAGS. However, it does add '-g' to CFLAGS so the flag does get into the other build configs, but I'm not sure of option ordering. It would be easy to switch the X86 arch-config from defaulting to STABS to specifically using DWARF, but I would need to see some size delta information and a good reason to make the change. Dan From daniel.daugherty at oracle.com Tue Jul 31 08:13:30 2012 From: daniel.daugherty at oracle.com (Daniel D. Daugherty) Date: Tue, 31 Jul 2012 09:13:30 -0600 Subject: Use of STABS debug format In-Reply-To: <526668492.6086799.1343741213034.JavaMail.root@redhat.com> References: <526668492.6086799.1343741213034.JavaMail.root@redhat.com> Message-ID: <5017F61A.9080301@oracle.com> On 7/31/12 7:26 AM, Andrew Hughes wrote: > ----- Original Message ----- >> I would love for stabs to go away for linux 32 bit. I think there >> was >> a size issue once with that platform and was filling up our disk. I >> think I changed this recently and noticed that the issue is gone. > That's what's noted in the comments. However, there's also a regression here: > > 1. Prior to 7071904, '-gstabs' was only added for debug builds and fastdebug/opt > builds did not have debugging information. > 2. After 7071904, '-gstabs' is added to all builds except on arm, ppc, x86_64 and > ia64. > > This conflicts with the DEBUG_BINARIES option we use for building that adds '-g' to > all builds. It means that, with the change in 7071904, our builds now get '-g -gstabs' > on x86, whereas before they just got '-g'. This answers my question about DEBUG_BINARIES. Looks like my changes for 7071904 broke that option. > Maybe the following would work without affecting your builds: > > --- a/make/linux/makefiles/gcc.make > +++ b/make/linux/makefiles/gcc.make > @@ -274,6 +274,8 @@ > # DEBUG_BINARIES overrides everything, use full -g debug information > ifeq ($(DEBUG_BINARIES), true) > DEBUG_CFLAGS = -g > + OPT_CFLAGS = -g > + FASTDEBUG_CFLAGS = -g > CFLAGS += $(DEBUG_CFLAGS) > endif > > The CFLAGS line may be able to be dropped as well. Actually the CFLAGS line is the only way to be sure that the '-g' gets into all build configs. At one point, there was more than "debug", "fastdebug" and "opt"... I think the right fix for DEBUG_BINARIES is: # DEBUG_BINARIES overrides everything, use full -g debug information ifeq ($(DEBUG_BINARIES), true) ! DEBUG_CFLAGS = + OPT_CFLAGS = + FASTDEBUG_CFLAGS = CFLAGS += -g endif >> I'll >> file a bug (if there isn't one already) and remove stabs for linux. > Thanks :-) I think we need two bugs here. One for the DEBUG_BINARIES breakage and one for possibly changing to DWARF from STABS on Linux X86. Dan >> Stabs still work better for solaris. > We have no plans to change the Solaris build :-) > >> This still doesn't fix my problem that even the latest version of gdb >> still can't show or stop in inlined functions on 32 bit (works on 64 >> bit). Is there a bug for this? It would be nice if this was >> fixed. > I'll leave Andrew Haley (cced) to answer this, as he's much better qualified > on this, but I think this may be similar to the problem that made us first > notice that the debug format had changed from DWARF to STABS. > >> Thanks, >> Coleen >> >> On 7/30/2012 7:42 PM, Andrew Hughes wrote: >>> Hi all, >>> >>> It seems that following: >>> >>> 7071904: 4/4 HotSpot: Full Debug Symbols >>> http://hg.openjdk.java.net/jdk8/jdk8/hotspot/rev/da0999c4b733 >>> >>> a number of architectures on Linux (including x86) have started >>> building with the >>> STABS debug format rather than DWARF. >>> >>> This is presumably due to the addition of this block: >>> >>> +ifneq ($(OBJCOPY),) >>> + FASTDEBUG_CFLAGS/ia64 = -g >>> + FASTDEBUG_CFLAGS/amd64 = -g >>> + FASTDEBUG_CFLAGS/arm = -g >>> + FASTDEBUG_CFLAGS/ppc = -g >>> + FASTDEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH)) >>> + ifeq ($(FASTDEBUG_CFLAGS/$(BUILDARCH)),) >>> + FASTDEBUG_CFLAGS += -gstabs >>> + endif >>> + >>> + OPT_CFLAGS/ia64 = -g >>> + OPT_CFLAGS/amd64 = -g >>> + OPT_CFLAGS/arm = -g >>> + OPT_CFLAGS/ppc = -g >>> + OPT_CFLAGS += $(OPT_CFLAGS/$(BUILDARCH)) >>> + ifeq ($(OPT_CFLAGS/$(BUILDARCH)),) >>> + OPT_CFLAGS += -gstabs >>> + endif >>> +endif >>> + >>> >>> Prior to this, I don't believe product builds had debug information >>> by default. You'd >>> have to set DEBUG_BINARIES (something we do). >>> >>> Is there a reason to use STABS any more? For our part, it's >>> causing bugs such as: >>> >>> https://bugzilla.redhat.com/show_bug.cgi?id=841057 >>> >>> This statement: >>> >>> # Use the stabs format for debugging information (this is the >>> default >>> # on gcc-2.91). It's good enough, has all the information about >>> line >>> # numbers and local variables, and libjvm_g.so is only about 16M. >>> # Change this back to "-g" if you want the most expressive format. >>> >>> seems dated (Fedora, for example, is on gcc 4.7) and the size >>> argument >>> seems redundant, given debug information is now stripped and stored >>> in >>> separate compressed files by default. >>> >>> Is there any reason to retain the use of STABS on x86 and SPARC, >>> the only supported >>> architectures not opted out above as far as I can tell? >>> >>> Note that our concern is the Linux makefile and we're more than >>> happy to leave STABS >>> in place on Solaris and *BSD, if necessary, as we don't build there >>> :-) >> > Thanks, From coleen.phillimore at oracle.com Tue Jul 31 08:40:06 2012 From: coleen.phillimore at oracle.com (Coleen Phillimore) Date: Tue, 31 Jul 2012 11:40:06 -0400 Subject: Use of STABS debug format In-Reply-To: <5017F61A.9080301@oracle.com> References: <526668492.6086799.1343741213034.JavaMail.root@redhat.com> <5017F61A.9080301@oracle.com> Message-ID: <5017FC56.6080906@oracle.com> I think we can kill two birds with one stone by just removing DEBUG_BINARIES and using dwarf for linux 32. Can someone do the size study and post the results? thanks, Coleen On 7/31/2012 11:13 AM, Daniel D. Daugherty wrote: > >>> I'll >>> file a bug (if there isn't one already) and remove stabs for linux. >> Thanks :-) > > I think we need two bugs here. One for the DEBUG_BINARIES breakage > and one for possibly changing to DWARF from STABS on Linux X86. From daniel.daugherty at oracle.com Tue Jul 31 08:51:33 2012 From: daniel.daugherty at oracle.com (Daniel D. Daugherty) Date: Tue, 31 Jul 2012 09:51:33 -0600 Subject: Use of STABS debug format In-Reply-To: <5017FC56.6080906@oracle.com> References: <526668492.6086799.1343741213034.JavaMail.root@redhat.com> <5017F61A.9080301@oracle.com> <5017FC56.6080906@oracle.com> Message-ID: <5017FF05.6060802@oracle.com> I'll disagree. Getting buy-off on yet another size increase is not a short process. Fixing (and documenting) the DEBUG_BINARIES option can be done independently of the switch from STABS to DWARF. Dan On 7/31/12 9:40 AM, Coleen Phillimore wrote: > > I think we can kill two birds with one stone by just removing > DEBUG_BINARIES and using dwarf for linux 32. > Can someone do the size study and post the results? > thanks, > Coleen > > On 7/31/2012 11:13 AM, Daniel D. Daugherty wrote: >> >>>> I'll >>>> file a bug (if there isn't one already) and remove stabs for linux. >>> Thanks :-) >> >> I think we need two bugs here. One for the DEBUG_BINARIES breakage >> and one for possibly changing to DWARF from STABS on Linux X86. From daniel.daugherty at oracle.com Tue Jul 31 09:58:22 2012 From: daniel.daugherty at oracle.com (Daniel D. Daugherty) Date: Tue, 31 Jul 2012 10:58:22 -0600 Subject: Use of STABS debug format In-Reply-To: <5017FF05.6060802@oracle.com> References: <526668492.6086799.1343741213034.JavaMail.root@redhat.com> <5017F61A.9080301@oracle.com> <5017FC56.6080906@oracle.com> <5017FF05.6060802@oracle.com> Message-ID: <50180EAE.2000608@oracle.com> I filed the following two bugs: 7188168 4/4 7071904 broke the DEBUG_BINARIES option on Linux 7188173 4/4 RFE: consider switching from STABS to DWARF on linux-x86 (32-bit) They should appear publicly in the next day or so... Dan On 7/31/12 9:51 AM, Daniel D. Daugherty wrote: > I'll disagree. Getting buy-off on yet another size increase is not > a short process. Fixing (and documenting) the DEBUG_BINARIES option > can be done independently of the switch from STABS to DWARF. > > Dan > > > On 7/31/12 9:40 AM, Coleen Phillimore wrote: >> >> I think we can kill two birds with one stone by just removing >> DEBUG_BINARIES and using dwarf for linux 32. >> Can someone do the size study and post the results? >> thanks, >> Coleen >> >> On 7/31/2012 11:13 AM, Daniel D. Daugherty wrote: >>> >>>>> I'll >>>>> file a bug (if there isn't one already) and remove stabs for linux. >>>> Thanks :-) >>> >>> I think we need two bugs here. One for the DEBUG_BINARIES breakage >>> and one for possibly changing to DWARF from STABS on Linux X86. > From ahughes at redhat.com Tue Jul 31 10:53:43 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Tue, 31 Jul 2012 13:53:43 -0400 (EDT) Subject: Use of STABS debug format In-Reply-To: <5017F61A.9080301@oracle.com> Message-ID: <146232577.6288945.1343757223175.JavaMail.root@redhat.com> ----- Original Message ----- > On 7/31/12 7:26 AM, Andrew Hughes wrote: > > ----- Original Message ----- > >> I would love for stabs to go away for linux 32 bit. I think > >> there > >> was > >> a size issue once with that platform and was filling up our disk. > >> I > >> think I changed this recently and noticed that the issue is gone. > > That's what's noted in the comments. However, there's also a > > regression here: > > > > 1. Prior to 7071904, '-gstabs' was only added for debug builds and > > fastdebug/opt > > builds did not have debugging information. > > 2. After 7071904, '-gstabs' is added to all builds except on arm, > > ppc, x86_64 and > > ia64. > > > > This conflicts with the DEBUG_BINARIES option we use for building > > that adds '-g' to > > all builds. It means that, with the change in 7071904, our builds > > now get '-g -gstabs' > > on x86, whereas before they just got '-g'. > > This answers my question about DEBUG_BINARIES. Looks like > my changes for 7071904 broke that option. Yes. I know we're now getting STABS on x86 where we weren't before, so I presume -gstabs is overriding -g. > > > > Maybe the following would work without affecting your builds: > > > > --- a/make/linux/makefiles/gcc.make > > +++ b/make/linux/makefiles/gcc.make > > @@ -274,6 +274,8 @@ > > # DEBUG_BINARIES overrides everything, use full -g debug > > information > > ifeq ($(DEBUG_BINARIES), true) > > DEBUG_CFLAGS = -g > > + OPT_CFLAGS = -g > > + FASTDEBUG_CFLAGS = -g > > CFLAGS += $(DEBUG_CFLAGS) > > endif > > > > The CFLAGS line may be able to be dropped as well. > > Actually the CFLAGS line is the only way to be sure that the '-g' > gets into all build configs. At one point, there was more than > "debug", "fastdebug" and "opt"... Yes, I thought there might be an issue like that, which is why I didn't include it in the actual patch. > > I think the right fix for DEBUG_BINARIES is: > > # DEBUG_BINARIES overrides everything, use full -g debug > information > ifeq ($(DEBUG_BINARIES), true) > ! DEBUG_CFLAGS = > + OPT_CFLAGS = > + FASTDEBUG_CFLAGS = > CFLAGS += -g > endif > That looks fine. Whatever gets us back to where we were before (DWARF format debug information on all architectures for all builds with DEBUG_BINARIES) works for us. Whether or not you want to shift to DWARF too is another matter which I'll leave up to you. The DEBUG_BINARIES solution didn't occur to me in the first mail or I probably wouldn't have even discussed the merits of STABS vs. DWARF :-) > > > >> I'll > >> file a bug (if there isn't one already) and remove stabs for > >> linux. > > Thanks :-) > > I think we need two bugs here. One for the DEBUG_BINARIES breakage > and one for possibly changing to DWARF from STABS on Linux X86. > That sounds right. Our primary concern is the first of those two, and the required change looks trivial. > Dan > > > > >> Stabs still work better for solaris. > > We have no plans to change the Solaris build :-) > > > >> This still doesn't fix my problem that even the latest version of > >> gdb > >> still can't show or stop in inlined functions on 32 bit (works on > >> 64 > >> bit). Is there a bug for this? It would be nice if this was > >> fixed. > > I'll leave Andrew Haley (cced) to answer this, as he's much better > > qualified > > on this, but I think this may be similar to the problem that made > > us first > > notice that the debug format had changed from DWARF to STABS. > > > >> Thanks, > >> Coleen > >> > >> On 7/30/2012 7:42 PM, Andrew Hughes wrote: > >>> Hi all, > >>> > >>> It seems that following: > >>> > >>> 7071904: 4/4 HotSpot: Full Debug Symbols > >>> http://hg.openjdk.java.net/jdk8/jdk8/hotspot/rev/da0999c4b733 > >>> > >>> a number of architectures on Linux (including x86) have started > >>> building with the > >>> STABS debug format rather than DWARF. > >>> > >>> This is presumably due to the addition of this block: > >>> > >>> +ifneq ($(OBJCOPY),) > >>> + FASTDEBUG_CFLAGS/ia64 = -g > >>> + FASTDEBUG_CFLAGS/amd64 = -g > >>> + FASTDEBUG_CFLAGS/arm = -g > >>> + FASTDEBUG_CFLAGS/ppc = -g > >>> + FASTDEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH)) > >>> + ifeq ($(FASTDEBUG_CFLAGS/$(BUILDARCH)),) > >>> + FASTDEBUG_CFLAGS += -gstabs > >>> + endif > >>> + > >>> + OPT_CFLAGS/ia64 = -g > >>> + OPT_CFLAGS/amd64 = -g > >>> + OPT_CFLAGS/arm = -g > >>> + OPT_CFLAGS/ppc = -g > >>> + OPT_CFLAGS += $(OPT_CFLAGS/$(BUILDARCH)) > >>> + ifeq ($(OPT_CFLAGS/$(BUILDARCH)),) > >>> + OPT_CFLAGS += -gstabs > >>> + endif > >>> +endif > >>> + > >>> > >>> Prior to this, I don't believe product builds had debug > >>> information > >>> by default. You'd > >>> have to set DEBUG_BINARIES (something we do). > >>> > >>> Is there a reason to use STABS any more? For our part, it's > >>> causing bugs such as: > >>> > >>> https://bugzilla.redhat.com/show_bug.cgi?id=841057 > >>> > >>> This statement: > >>> > >>> # Use the stabs format for debugging information (this is the > >>> default > >>> # on gcc-2.91). It's good enough, has all the information about > >>> line > >>> # numbers and local variables, and libjvm_g.so is only about 16M. > >>> # Change this back to "-g" if you want the most expressive > >>> format. > >>> > >>> seems dated (Fedora, for example, is on gcc 4.7) and the size > >>> argument > >>> seems redundant, given debug information is now stripped and > >>> stored > >>> in > >>> separate compressed files by default. > >>> > >>> Is there any reason to retain the use of STABS on x86 and SPARC, > >>> the only supported > >>> architectures not opted out above as far as I can tell? > >>> > >>> Note that our concern is the Linux makefile and we're more than > >>> happy to leave STABS > >>> in place on Solaris and *BSD, if necessary, as we don't build > >>> there > >>> :-) > >> > > Thanks, > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From ahughes at redhat.com Tue Jul 31 10:56:11 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Tue, 31 Jul 2012 13:56:11 -0400 (EDT) Subject: Build Breakage with latest HotSpot on gcc 4.7 In-Reply-To: <992510784.6289328.1343757332844.JavaMail.root@redhat.com> Message-ID: <1772611832.6289588.1343757371767.JavaMail.root@redhat.com> Hi all, The following changes: http://cr.openjdk.java.net/~andrew/hotspot/webrev.04/ were required to get HotSpot to build again with GCC 4.7 (solutions suggested by the gcc errors). Builds of both the build and hotspot-comp forest showed the same issue. Can we get this fix in ASAP please? Thanks, -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From mjw at redhat.com Tue Jul 31 10:41:34 2012 From: mjw at redhat.com (Mark Wielaard) Date: Tue, 31 Jul 2012 19:41:34 +0200 Subject: Use of STABS debug format In-Reply-To: <5017F41E.4060102@oracle.com> References: <377555616.5566159.1343691757626.JavaMail.root@redhat.com> <5017F41E.4060102@oracle.com> Message-ID: <20120731174133.GA16166@toonder.wildebeest.org> On Tue, Jul 31, 2012 at 09:05:02AM -0600, Daniel D. Daugherty wrote: > >Is there a reason to use STABS any more? > > Yes, presuming that STABS still occupies less space than DWARF. > I have not seen any proof to the contrary yet. In theory DWARF (at least since version 2 - current version is 4, which is the new default in recent GCCs), is more space efficient than STABS. But DWARF is also more expressive, so might take up more space in the end. But DWARF information is stored in separate ELF sections and so is normally separated from the binary and put in a separate .debug file in GNU/Linux distros. I don't know if that is possible for STABS, which is stored in the symbol table, in theory it probably could if you keep symtab separate, but I don't know whether tools support that setup. In practice all GNU/Linux distros use DWARF and newer tools (systemtap, perf, etc) don't handle STABS. GCC has defaulted to DWARF for ELF platforms since GCC 3.1 (released in 2002). You can still make GCC output STABS, but at the recent GNU Tools Cauldron it was actually suggested to just always output DWARF (and have separate tools for transforming that into other debugging formats if people still used those). GDB still supports STABS, but I don't know how well it works or is supported. > Debug info size is still an issue because we save all those artifacts > for every integration job (JPRT) and for every promoted build (RE). Of course debug info size is always an issue, but JPRT and the RE builds are not part of OpenJDK. GNU/Linux distros always build with debug info and store all their releases (with the DWARF in separate -debuginfo packages). There are various efforts to shrink DWARF. There are several proposal for DWARF5 to make it even more efficient: http://dwarfstd.org/Issues.php And in Fedora rawhide (to become f18) we are experimenting with a DWARF compressor dwz: https://fedoraproject.org/wiki/Features/DwarfCompressor Cheers, Mark From coleen.phillimore at oracle.com Tue Jul 31 12:40:14 2012 From: coleen.phillimore at oracle.com (Coleen Phillimore) Date: Tue, 31 Jul 2012 15:40:14 -0400 Subject: Build Breakage with latest HotSpot on gcc 4.7 In-Reply-To: <1772611832.6289588.1343757371767.JavaMail.root@redhat.com> References: <1772611832.6289588.1343757371767.JavaMail.root@redhat.com> Message-ID: <5018349E.4030606@oracle.com> Yes, I will check it in. I will look to see if someone filed a bug. If I do a apt-get install g++ I don't get a new version of gcc. How new is this version of gcc? uadmin at carrs:/home/cphillim/carrs/hg$ g++ --version g++ (Ubuntu 4.4.3-4ubuntu5) 4.4.3 Copyright (C) 2009 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Thanks, Coleen On 7/31/2012 1:56 PM, Andrew Hughes wrote: > Hi all, > > The following changes: > > http://cr.openjdk.java.net/~andrew/hotspot/webrev.04/ > > were required to get HotSpot to build again with GCC 4.7 (solutions > suggested by the gcc errors). Builds of both the build and hotspot-comp > forest showed the same issue. > > Can we get this fix in ASAP please? > > Thanks, From keith.mcguigan at oracle.com Tue Jul 31 13:16:51 2012 From: keith.mcguigan at oracle.com (Keith McGuigan) Date: Tue, 31 Jul 2012 16:16:51 -0400 Subject: Build Breakage with latest HotSpot on gcc 4.7 In-Reply-To: <1772611832.6289588.1343757371767.JavaMail.root@redhat.com> References: <1772611832.6289588.1343757371767.JavaMail.root@redhat.com> Message-ID: <50183D33.5040801@oracle.com> Code looks fine to me, if you need a reviewer. -- - Keith On 7/31/2012 1:56 PM, Andrew Hughes wrote: > Hi all, > > The following changes: > > http://cr.openjdk.java.net/~andrew/hotspot/webrev.04/ > > were required to get HotSpot to build again with GCC 4.7 (solutions > suggested by the gcc errors). Builds of both the build and hotspot-comp > forest showed the same issue. > > Can we get this fix in ASAP please? > > Thanks, > From david.holmes at oracle.com Tue Jul 31 13:26:34 2012 From: david.holmes at oracle.com (David Holmes) Date: Wed, 01 Aug 2012 06:26:34 +1000 Subject: Build Breakage with latest HotSpot on gcc 4.7 In-Reply-To: <1772611832.6289588.1343757371767.JavaMail.root@redhat.com> References: <1772611832.6289588.1343757371767.JavaMail.root@redhat.com> Message-ID: <50183F7A.1050807@oracle.com> This seems fine to me. Weird thing is I'm certain I've seen this patch before! But now I can't find the email, or any trace of it. Frustrating. David On 1/08/2012 3:56 AM, Andrew Hughes wrote: > Hi all, > > The following changes: > > http://cr.openjdk.java.net/~andrew/hotspot/webrev.04/ > > were required to get HotSpot to build again with GCC 4.7 (solutions > suggested by the gcc errors). Builds of both the build and hotspot-comp > forest showed the same issue. > > Can we get this fix in ASAP please? > > Thanks,