RFR: 8200204: SharedArchiveConfigFile cannot accept output of VM.stringtable (original) (raw)

Yasumasa Suenaga yasuenag at gmail.com
Mon Mar 26 13:21:45 UTC 2018


Hi Ioi,

I think a proper fix should clarify which VERSION we are looking for.

I agree with you, but I cannot agree with new format because it is difficult to understand two different "VERSION" meanings.

IMHO, we can change the format as below:

  1. Define same VERSION to all @SECTION. It is same of current behavior.

VERSION: 1.0 @SECTION: Symbol ....contents of "jcmd VM.symboltable -verbose" () @SECTION: String ....contents of "jcmd VM.stringtable -verbose"()

  1. Define same VERSION to all @SECTION except "String".

VERSION: 1.0 @SECTION: Symbol ....contents of "jcmd VM.symboltable -verbose" () @SECTION: String VERSION: 1.1 ....contents of "jcmd VM.stringtable -verbose"()

  1. Define VERSIONs in each @SECTIONs.

@SECTION: Symbol VERSION: 1.0 ....contents of "jcmd VM.symboltable -verbose" () @SECTION: String VERSION: 1.1 ....contents of "jcmd VM.stringtable -verbose"()

How about this?

Thanks, Yasumasa

On 2018/03/26 13:39, Ioi Lam wrote:

Hi Yasumasa,

The word "VERSION" actually means different things in different places. That's the confusing part. "jcmd VM.stringtable -verbose" prints out the version of the "string listing". However, The VERSION in SharedArchiveConfigFile means the "version of the config file". The current version is 1.0. The format of this file is: ??? VERSION: 1.0 ??? @SECTION: Symbol ??? ....contents of "jcmd VM.symboltable -verbose" (**) ??? @SECTION: String ??? ....contents of "jcmd VM.stringtable -verbose"(**) (**) The first two lines of jcmd output (pid and VERSION) should be skipped.

So the creation of the config file is somewhat manual -- you need to cut out the process id anyway (maybe we should add an option to jcmd to not print the process ID). I think a proper fix should clarify which VERSION we are looking for. We need a mechanism to ensure that the @SECTIONs for Symbol and String are in the correct format as expected by the JVM. How about changing the config file format to this: ? ? VERSION: 1.1 ??? @SECTION: Symbol ??? VERSION: 1.0 ??? ....contents of "jcmd VM.symboltable -verbose" (**) ??? @SECTION: String ??? VERSION: 1.1 ??? ....contents of "jcmd VM.stringtable -verbose" (**) So we have 3 kinds of VERSIONS - for the config file, for the symbol section, and for the string section. What do you think? Thanks - Ioi

On 3/25/18 5:46 PM, Yasumasa Suenaga wrote: Hi all, Please review this change. ????? JBS: https://bugs.openjdk.java.net/browse/JDK-8200204 ?? webrev: http://cr.openjdk.java.net/~ysuenaga/JDK-8200204/webrev.00/ submit-hs: mach5-one-ysuenaga-JDK-8200204-20180325-1440-16057

JDK-8134448 says SharedArchiveConfigFile accepts output of jcmd <pid>_ _VM.stringtable -verbose , but it could not because JDK-8059510 has changed version number to 1.1 . I think we should accept version 1.1 stringtable. Thanks, Yasumasa



More information about the serviceability-dev mailing list