[PATCH] typeToVtbl of BasicTypeDataBase should not be static

Staffan Larsen staffan.larsen at oracle.com
Tue Mar 19 06:02:43 PDT 2013


Coleen wrote to me privately that she is ok with the change. I have submitted a JPRT job with the change.

Thanks,
/Staffan

On 19 mar 2013, at 08:45, 云达(Yunda) <yunda.mly at taobao.com> wrote:

> cc'ing hotspot-runtime for an official Review.
>  
> Regards,
> Yunda
>  
> From: Staffan Larsen [mailto:staffan.larsen at oracle.com] 
> Sent: Tuesday, March 05, 2013 9:18 PM
> To: 云达(Yunda)
> Cc: serviceability-dev at openjdk.java.net
> Subject: Re: [PATCH] typeToVtbl of BasicTypeDataBase should not be static
>  
> Yunda,
>  
> Thanks for the patch. I have created issue JDK-8009456 to track this and can sponsor the fix as soon as we get a Review of the fix.
>  
> /Staffan
>  
> On 28 feb 2013, at 04:59, 云达(Yunda) <yunda.mly at taobao.com> wrote:
> 
> 
> Hi all,
>  
> I found that when I detached a java process and attached another java process, the “universe” command of CLHSDB didn’t show the right information. But when I restarted CLHSDB and attached to the same process the problem disappeared:
>  
> hsdb> attach 29211
> Attaching to process 29211, please wait...
> hsdb> universe
> Heap Parameters:
> ParallelScavengeHeap [ PSYoungGen [ eden =  [0x00000000ee200000,0x00000000ee289aa8,0x00000000eef70000] , from =  [0x00000000ef1a0000,0x00000000ef1a0000,0x00000000ef3d0000] , to =  [0x00000000eef70000,0x00000000eef70000,0x00000000ef1a0000]  ] PSOldGen [  [0x00000000ca600000,0x00000000ca600000,0x00000000cc9c0000]  ]  ] hsdb>
> hsdb> detach
> hsdb> attach 29887
> Attaching to process 29887, please wait...
> hsdb> universe
> Heap Parameters:
> unknown subtype of CollectedHeap @ 0x0000000000d56fb0 (0x00000000ca600000,0x0000000100000000)
> hsdb> quit
> [~]$ java -cp .:$JAVA_HOME/lib/sa-jdi.jar sun.jvm.hotspot.CLHSDB
> hsdb> attach 29887
> Attaching to process 29887, please wait...
> hsdb> universe
> Heap Parameters:
> ParallelScavengeHeap [ PSYoungGen [ eden =  [0x00000000ee200000,0x00000000ee289a68,0x00000000eef70000] , from =  [0x00000000ef1a0000,0x00000000ef1a0000,0x00000000ef3d0000] , to =  [0x00000000eef70000,0x00000000eef70000,0x00000000ef1a0000]  ] PSOldGen [  [0x00000000ca600000,0x00000000ca600000,0x00000000cc9c0000]  ]  ] hsdb>
>  
> I think it’s caused by the wrong definition of “typeToVtbl” field of BasicTypeDataBase. Since typeToVtbl should be recreated every time SA attaches to a new process, it should not be static. So I made a small patch fo fix it:
>  
> diff -r ec2eddfed950 agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java
> --- a/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java     Tue Feb 26 14:09:52 2013 +0100
> +++ b/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java  Thu Feb 28 11:57:55 2013 +0800
> @@ -150,7 +150,7 @@
>      return VM.getVM().getOopSize();
>    }
> -  static HashMap typeToVtbl = new HashMap();
> +  private HashMap typeToVtbl = new HashMap();
>    private Address vtblForType(Type type) {
>      Address vtblAddr = (Address)typeToVtbl.get(type);
>  
>  
> After applying this patch, the problem I mentioned above disappeared.
>  
> Regards,
> Yunda
>  
>  
> 
> This email (including any attachments) is confidential and may be legally privileged. If you received this email in error, please delete it immediately and do not copy it or use it for any purpose or disclose its contents to any other person. Thank you.
> 
> 本电邮(包括任何附件)可能含有机密资料并受法律保护。如您不是正确的收件人,请您立即删除本邮件。请不要将本电邮进行复制并用作任何其他用途、或透露本邮件之内容。谢谢。

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20130319/5ccb7a6c/attachment-0001.html 


More information about the serviceability-dev mailing list