RFR: JDK-8174994: SA: clhsdb printmdo throws WrongTypeException when attached to a process with CDS
David Holmes
david.holmes at oracle.com
Wed Apr 18 07:10:22 UTC 2018
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.george at 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.
>>>>
>>>>
>>
More information about the serviceability-dev
mailing list