Hi Jini, I have no further comment.
Yasumasa 2018-04-26 13:21 GMT+09:00 Jini George <jini.geo...@oracle.com>: > Thank you, Yasumasa. I hope to implement the consolidation with > TestSAServer.java (and have the SA core file debug testing template done) as > a part of a separate enhancement: > https://bugs.openjdk.java.net/browse/JDK-8202297 > > Let me know if this is not OK with you. > > Thanks, > Jini. > > > On 4/25/2018 6:14 PM, Yasumasa Suenaga wrote: >> >> Hi Jini, >> >> >>>>>>>> 2018-04-18 15:05 GMT+09:00 Jini George <jini.geo...@oracle.com>: >> >> >> : >> >>>>>>>>> I plan to file an enhancement request to address this issue (wrt >>>>>>>>> systemd-coredump) separately since this would apply to other >>>>>>>>> coredump >>>>>>>>> generating test cases also like: >>>>>>>>> test/hotspot/jtreg/compiler/ciReplay/TestSAServer.java. >> >> >> >> I guessed the tests for coredumps will be handled in another issue (with >> TestSAServer.java). >> Is it okay to implement coredump test in this changeset? >> >> IMHO, it looks to implement as new test basis (e.g. LingeredAppForCoredump >> - ulimit check, set, etc...). >> >> >> Thanks, >> >> Yasumasa >> >> >> >> On 2018/04/25 12:26, Jini George wrote: >>> >>> Thank you very much, David for looking into this. I have incorporated all >>> the comments and the revised webrev is at: >>> >>> http://cr.openjdk.java.net/~jgeorge/8174994/webrev.02/index.html >>> >>> Thanks, >>> Jini. >>> >>> On 4/24/2018 3:29 PM, David Holmes wrote: >>>> >>>> Hi Jini, >>>> >>>> Not a full review as I'm not familiar enough with this code. >>>> >>>> My main comment, again, relates to >>>> test/hotspot/jtreg/serviceability/sa/ClhsdbCDSCore.java and that it should >>>> not fail (throw Error) if there is no core file generated etc. In that case >>>> the test should be skipped with a clear message (as elsewhere). Otherwise >>>> this test will fail locally for me every time I run the serviceability >>>> tests! >>>> >>>> I also have a few style issues. >>>> >>>> Don't compare boolean functions with true or false i.e. >>>> >>>> if (isX() == true) -> if (isX()) >>>> if (isX() == false) -> if (!isX()) >>>> >>>> this occurs in most of the Java files. It is especially noticeable when >>>> you mix styles ie: >>>> >>>> + if (VM.getVM().isSharingEnabled()) { <= implicit check of true >>>> + // Check if the value falls in the _md_region >>>> + FileMapInfo cdsFileMapInfo = VM.getVM().getFileMapInfo(); >>>> + if (cdsFileMapInfo.inCopiedVtableSpace(loc1) == true) { <= >>>> explicit check >>>> + return cdsFileMapInfo.getTypeForVptrAddress(loc1); >>>> + } >>>> + } >>>> >>>> --- >>>> >>>> >>>> src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/memory/FileMapInfo.java >>>> >>>> 139 vTableTypeMap.put >>>> 140 (copiedVtableAddress.addOffsetTo(VM.getVM().getAddressSize()), >>>> metadataTypeArray[i]); >>>> 141 // The '+ 1' below is to skip the entry containing the >>>> size of this metadata's vtable. >>>> 142 copiedVtableAddress = >>>> 143 copiedVtableAddress.addOffsetTo((metadataVTableSize + 1) >>>> * VM.getVM().getAddressSize()); >>>> >>>> If you store VM.getVM().getAddressSize() in a local you only need call >>>> it once, and the other lines of code will be shorter. >>>> >>>> On line 139/140 keep the opening parenthesis with the method name ie: >>>> >>>> vTableTypeMap.put( >>>> >>>> but with shorter lines you should be able to reformat that more cleanly >>>> anyway. >>>> >>>> >>>> 146 } // FileMapHeader >>>> 147 } // FileMapInfo >>>> >>>> We generally don't comment the end of blocks. >>>> >>>> --- >>>> >>>> test/hotspot/jtreg/serviceability/sa/ClhsdbCDSCore.java >>>> >>>> 96 } catch (Throwable t) { >>>> 97 throw new Error("Can't execute the java cds >>>> process."); >>>> 98 } >>>> >>>> Set 't' as the cause of the new Error so we can see why it failed. >>>> >>>> Thanks, >>>> David >>>> >>>> On 24/04/2018 7:03 PM, Jini George wrote: >>>>> >>>>> Hello! >>>>> >>>>> The webrev including the check for the "|" at the beginning of the >>>>> core_pattern file is at: >>>>> >>>>> http://cr.openjdk.java.net/~jgeorge/8174994/webrev.01/ >>>>> >>>>> This webrev also includes a fix for a latent bug on MacOSX, where >>>>> corefile debugging was failing due to SA trying to read in the incorrect >>>>> mangled symbol name for "Arguments::SharedArchivePath". Clang seems to >>>>> have >>>>> prefixed an extra '_' to change the mangled name from >>>>> '_ZN9Arguments17SharedArchivePathE' to >>>>> '__ZN9Arguments17SharedArchivePathE' >>>>> for MachO files. This fix for this is in >>>>> src/jdk.hotspot.agent/macosx/native/libsaproc/ps_core.c. >>>>> >>>>> The difference between the earlier patch and this one can be seen at: >>>>> >>>>> http://cr.openjdk.java.net/~jgeorge/8174994/differential.patch >>>>> >>>>> Thank you, >>>>> Jini. >>>>> >>>>> >>>>> On 4/18/2018 10:37 PM, Jini George wrote: >>>>>> >>>>>> I agree with the need of testing as much as we can. I could do >>>>>> something on the lines of how other debuggers like LLDB test: if we can't >>>>>> find the core file location, check for "|" at the beginning of a line in >>>>>> the >>>>>> /proc/sys/kernel/core_pattern file -- and fail with a message stating >>>>>> that >>>>>> the system is using a crash reporting tool. >>>>>> >>>>>> Thank you, >>>>>> Jini. >>>>>> >>>>>> On 4/18/2018 12:40 PM, David Holmes wrote: >>>>>>> >>>>>>> My 2c ... >>>>>>> >>>>>>> We have to have tests that can test core file attaching capability - >>>>>>> else we don't know it works. So we have to try and generate a core file. >>>>>>> >>>>>>> But, we have to expect that in many cases no core file will be >>>>>>> generated even if the hs-err file claims it was. For example my primary >>>>>>> local testing system never generates core files even though it claims >>>>>>> to: >>>>>>> >>>>>>> # Core dump will be written. Default location: Core dumps may be >>>>>>> processed with "/usr/share/apport/apport %p %s %c" (or dumping to / >>>>>>> >>>>>>> export/users/dh198349/valhalla/repos/valhalla-dev/open/test/jdk/core.29848) >>>>>>> >>>>>>> apport isn't even installed, even though core_pattern lists it. >>>>>>> >>>>>>> Cheers, >>>>>>> David >>>>>>> >>>>>>> On 18/04/2018 4:36 PM, Yasumasa Suenaga wrote: >>>>>>>> >>>>>>>> 2018-04-18 15:05 GMT+09:00 Jini George <jini.geo...@oracle.com>: >>>>>>>>> >>>>>>>>> Thank you very much, Yasumasa, for pointing this out. You are right >>>>>>>>> -- this >>>>>>>>> would fail in the Linux systems if systemd-coredump is enabled. >>>>>>>>> >>>>>>>>> I plan to file an enhancement request to address this issue (wrt >>>>>>>>> systemd-coredump) separately since this would apply to other >>>>>>>>> coredump >>>>>>>>> generating test cases also like: >>>>>>>>> test/hotspot/jtreg/compiler/ciReplay/TestSAServer.java. >>>>>>>> >>>>>>>> >>>>>>>> I agree with you, but... >>>>>>>> >>>>>>>>> From what i can gather, i think we might be able to at least >>>>>>>>> partially >>>>>>>>> address this by using >>>>>>>>> >>>>>>>>> coredumptl -o <desired_core_path> dump <pid of the crashed process> >>>>>>>>> >>>>>>>>> in the test cases, provided the kernel.core_pattern variable is not >>>>>>>>> set to >>>>>>>>> "|/bin/false". >>>>>>>>> >>>>>>>>> Let me know if you are not OK with this. >>>>>>>> >>>>>>>> >>>>>>>> IMHO it is not good. >>>>>>>> Some Linux distros use other coredump collector. For example, RHEL 6 >>>>>>>> uses ABRT, Ubuntu uses Apport, Fedora uses systemd-coredump. >>>>>>>> Hence I think we should disable all tests which requires core images >>>>>>>> for Linux like a Windows platform. >>>>>>>> >>>>>>>> >>>>>>>> Thanks, >>>>>>>> >>>>>>>> Yasumasa >>>>>>>> >>>>>>>> >>>>>>>>> Thank you, >>>>>>>>> Jini. >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On 4/14/2018 7:39 PM, Yasumasa Suenaga wrote: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Hi Jini, >>>>>>>>>> >>>>>>>>>> ClhsdbCDSCore.java: >>>>>>>>>> Can this test work on modern Linux? >>>>>>>>>> AFAIK modern Linux contains systemd-coredump to gather core >>>>>>>>>> images. So >>>>>>>>>> I concern ClhsdbCDSCore.java fails in the future. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Thanks, >>>>>>>>>> >>>>>>>>>> Yasumasa >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 2018/04/12 13:21, Jini George wrote: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Ping: Gentle reminder ! >>>>>>>>>>> >>>>>>>>>>> Thanks, >>>>>>>>>>> Jini. >>>>>>>>>>> >>>>>>>>>>> On 4/6/2018 9:51 PM, Jini George wrote: >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Hello! >>>>>>>>>>>> >>>>>>>>>>>> Requesting reviews for: >>>>>>>>>>>> https://bugs.openjdk.java.net/browse/JDK-8174994 >>>>>>>>>>>> Webrev: http://cr.openjdk.java.net/~jgeorge/8174994/webrev.00/ >>>>>>>>>>>> >>>>>>>>>>>> While trying to identify the type given an address, a >>>>>>>>>>>> WrongTypeException >>>>>>>>>>>> was getting thrown with various clhsdb commands (like printmdo, >>>>>>>>>>>> jstack, >>>>>>>>>>>> etc). This was since SA tries to map an address to a hotspot C++ >>>>>>>>>>>> type by >>>>>>>>>>>> comparing the vtable address to the vtable address values of >>>>>>>>>>>> known >>>>>>>>>>>> types. With CDS, since the vtables are copied over for the >>>>>>>>>>>> Metadata >>>>>>>>>>>> classes, the vtable addresses themselves don't match (though, of >>>>>>>>>>>> course, >>>>>>>>>>>> the contents will), and SA errors out. >>>>>>>>>>>> >>>>>>>>>>>> The fix has been implemented by making changes to read in the md >>>>>>>>>>>> region >>>>>>>>>>>> (consisting of the c++ vtables) of the CDS archive in SA, and >>>>>>>>>>>> mapping >>>>>>>>>>>> the vtable addresses to the corresponding metadata type >>>>>>>>>>>> (ConstantPool, >>>>>>>>>>>> InstanceKlass, InstanceClassLoaderKlass, InstanceMirrorKlass, >>>>>>>>>>>> InstanceRefKlass, Method, ObjArrayKlass, TypeArrayKlass). >>>>>>>>>>>> >>>>>>>>>>>> For corefiles, an additional modification has been done to have >>>>>>>>>>>> the >>>>>>>>>>>> replicated FileMapHeader structure (from >>>>>>>>>>>> src/hotspot/share/memory/filemap.hpp, which is replicated in SA >>>>>>>>>>>> in >>>>>>>>>>>> ps_core.c), to be in sync with the corresponding definition in >>>>>>>>>>>> src/hotspot/share/memory/filemap.hpp. >>>>>>>>>>>> >>>>>>>>>>>> Test cases to test both live and corefile debugging are being >>>>>>>>>>>> added with >>>>>>>>>>>> this. These and other SA tests pass on Mach5. >>>>>>>>>>>> >>>>>>>>>>>> Thanks, >>>>>>>>>>>> Jini. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>> >