JDK-4352906 : build 22: Guarantee violation in ThreadLocalStorage::get_thread_via_cache()
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 1.3.0
  • Priority: P4
  • Status: Closed
  • Resolution: Cannot Reproduce
  • OS: generic
  • CPU: generic
  • Submitted: 2000-07-13
  • Updated: 2002-10-02
  • Resolved: 2002-10-02
Related Reports
Relates :  
Description
on machine jtgb4u2d,(run with -client flag) and on machine jtgb4u2d1(run with
-client -Xcomp) there are intermitten failures  with the error message:
# HotSpot Virtual Machine Error, Internal Error
# Please report this error at
# http://java.sun.com/cgi-bin/bugreport.cgi
#
# Error ID: 5448524541442C4F43414C33544F524147450E435050002B 01
#
# Problematic Thread: [error occured during error reporting]

Initial evaluation from developers
A call to ThreadLocalStorage::get_thread_via_cache() appears to have violated
a "guarantee":

    if (thread != NULL) {
      guarantee(thread->_stack_base == NULL || (sp <= thread->_stack_base &&
sp > = thread->_stack_base - thread->_stack_size) || is_error_reported(), "sp
must be inside of selected thread stack");
      thread->_last_sp_hash = sp_page;  // mark for quick retrieval
      _get_thread_cache[ sp_index ] = thread;
    }

Since no core is available no further info is available. [Solaris 8].

The problem occured in a parallel run of the 5 big apps on one machine.
The problem occurred in the Volano client process (not the server process).


The same error was also observed on another Solaris 8 machine:

> 
> 
> on machine jtgb4u2d1,(-client -Xcomp) there are 2 failures in VolanoTest. 
> Error message: # HotSpot Virtual Machine Error, Internal Error
> # Please report this error at
> # http://java.sun.com/cgi-bin/bugreport.cgi
> #
> # Error ID: 5448524541442C4F43414C33544F524147450E435050002B 01
> #
> # Problematic Thread: [error occured during error reporting]
>

This is the same as in Case 1 above (get_thread_via_cache() guarantee
failure) -- again Solaris 8! 

june.zhong@eng 2000-07-13

Comments
EVALUATION Workaround has been checked into VM code (os_solaris.hpp, os_solaris.cpp), which caches the stack base value returned from thr_stksegment for the primordial thread, as the value cannot be trusted after Hotspot runs for a while. Further work, noted in the comments - check bug 4196528 - check guarantee for alternate signal stack correctness The VM workaround was checked in for Kestral around July 26 2000. ###@###.### 2002-06-03 Bug fix was made for Kestral. The guarantee in question cannot be hit with any code that uses alternate signal stacks, but a new bug will be submitted suggesting some code reorganizations to make that clearer. Marking bug not reproducible, because the issue was fixed in Kestral (1.4). ###@###.### 2002-10-02
02-10-2002