JDK-5105917 : NEWHPROF: Missing HPROF_GC_ROOT_THREAD_OBJ in second heap dump
Type:Bug
Component:tools
Sub-Component:hprof
Affected Version:5.0
Priority:P3
Status:Resolved
Resolution:Fixed
OS:generic
CPU:generic
Submitted:2004-09-23
Updated:2004-10-11
Resolved:2004-10-09
The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
NEWHPROF: Missing HPROF_GC_ROOT_THREAD_OBJ in second heap dump
###@###.### 10/8/04 00:10 GMT
Comments
CONVERTED DATA
BugTraq+ Release Management Values
COMMIT TO FIX:
mustang
FIXED IN:
mustang
28-09-2004
SUGGESTED FIX
Nvere allow the VM thread 200000 to go away, short circuit the tls_free
logic on this thread.
###@###.### 2004-09-22
------- hprof_tls.c -------
***************
*** 831,841 ****
trace_serial_num = trace_get_serial_number(trace_index);
}
delete_globalref(env, info);
- info->thread_serial_num = -1;
clean_info(info);
table_free_entry(gdata->tls_table, index);
} table_lock_exit(gdata->tls_table);
/* Issue heap record (outside lock on TLS table) */
if (gdata->heap_dump && thread_object_index != 0 ) {
rawMonitorEnter(gdata->data_access_lock); {
--- 831,845 ----
trace_serial_num = trace_get_serial_number(trace_index);
}
delete_globalref(env, info);
clean_info(info);
+ /* Never free the system thread tls entry */
+ if ( info->thread_serial_num != gdata->system_thread_serial_num ) {
+ info->thread_serial_num = -1;
table_free_entry(gdata->tls_table, index);
+ }
} table_lock_exit(gdata->tls_table);
+ #if 0 /* Wrong time and place? */
/* Issue heap record (outside lock on TLS table) */
if (gdata->heap_dump && thread_object_index != 0 ) {
rawMonitorEnter(gdata->data_access_lock); {
***************
*** 843,848 ****
--- 847,854 ----
trace_serial_num);
} rawMonitorExit(gdata->data_access_lock);
}
+ #endif
+
}
/* Sample ALL threads and update the trace costs */
###@###.### 2004-09-23
23-09-2004
EVALUATION
Missing VM thread in second dump. Need to special case this thread serial number to always dump it and never free it.
###@###.### 2004-09-22