RFR (S): 8000232: NPG: SIGSEGV in Dependencies::DepStream::check_klass_dependency on solaris-x64

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Oct 5 07:45:03 PDT 2012


Good.

Vladimir

On Oct 5, 2012, at 6:52 AM, Vladimir Ivanov wrote:

> Agree. Updated the webrev.
> 
> Best regards,
> Vladimir Ivanov
> 
> On 10/05/12 05:15, Vladimir Kozlov wrote:
>> Could you add != NULL check to the second assert since argument_oop()
>> can return NULL (based on the assert inside)?
>> 
>> 707       assert(k->is_klass(), "type check");
>> 
>> Thanks,
>> Vladimir
>> 
>> On 10/4/12 3:04 PM, Vladimir Ivanov wrote:
>>> http://cr.openjdk.java.net/~vlivanov/8000232/webrev.00
>>> 22 lines changed: 10 ins; 4 del; 8 mod
>>> 
>>> Context type of a dependency is encoded as NULL only when it is
>>> explicit and the context is "default" (see
>>> Dependencies::ctxk_encoded_as_null). Decoding takes place only in
>>> Dependencies::DepStream::context_type(), however the
>>> value is used in other places.
>>> 
>>> The problem is that no decoding is performed when dependencies are
>>> logged using Dependencies::write_dependency_to, but
>>> only non-NULL values are expected in the code. The bug existed before
>>> NPG, it simply didn't cause a crash.
>>> 
>>> Fixed by moving decoding into Dependencies::DepStream::argument, so no
>>> caller could see encoded context value (NULL)
>>> anymore.
>>> 
>>> It also improves TraceDependencies & LogCompilation output: dependency
>>> context is always correctly displayed.
>>> 
>>> Also, did some cleanup.
>>> 
>>> Testing: failing test, JPRT w/ logging turned on & off, CTW on
>>> solaris_x64.
>>> 
>>> Best regards,
>>> Vladimir Ivanov



More information about the hotspot-compiler-dev mailing list