RFR(XXS) 8198845: Missing resource mark results disassembling generated code failure in hs error report

Zhengyu Gu zgu at redhat.com
Thu Mar 1 18:40:56 UTC 2018


Hi David,

On 02/28/2018 05:33 PM, David Holmes wrote:
> Hi Zhengyu,
> 
> On 1/03/2018 7:50 AM, Zhengyu Gu wrote:
>> nmethod uses stringStreams to buffer contents. Missing resource mark 
>> during error reporting, results failures while disassembling nmethod 
>> code.
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8198845
>> Webrev: http://cr.openjdk.java.net/~zgu/8198845/webrev.00/
> 
> This seems problematic. There's no guarantee you have a valid thread, 
> nor that you can use its resourceArea to allocate even if you do. What 
> is actually trying to do resourceArea allocation?
> 
This is where Disassembler calls into nmethod for code comments 
(nmethod::print_code_comment_on()), and subsequently call 
nmethod::reloc_string_for() where it uses stringStream to allocation 
memory from resource area for buffering the contents.

I managed to remove most of resource objects from this code path, until 
hit ScopeDesc (from nmethod::scope_desc_in()) and scope seems to become 
too big to continue.

Yes, it is problematic. However, it does not seem to can make it worse - 
without resource mark, it certainly fails.


Any suggestions?

Thanks,

-Zhengyu

> David
> 
>> Test:
>>
>>    hotspot_runtime on Linux x64 (fastdebug + release)
>>
>> Thanks,
>>
>> -Zhengyu


More information about the hotspot-runtime-dev mailing list