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

Vladimir Kozlov vladimir.kozlov at oracle.com
Thu Oct 4 18:15:48 PDT 2012


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