java - Why can't I see GC roots? -


i have application crashed outofmemory. loaded phd file crash eclipse memory analyzer. promptly identified rather suspicious arraylist 5,700,000 entries, each being string content of 16 null bytes(????). note: didn't check entries inspected smaller sample.

unsurprisingly i'm interested holding on such stupid thing, right clicked on arraylist , opened 'path gc roots' (with references or exclusion, doesn't seem make difference).

a new tab opens , displays single row, arraylist, suffix 'unknown' appended.

so question in title: why can't see gc roots?

various versions of stuff involved.

application running on websphere 8.x on 1.6 ibm jre

eclipse memory analyzer: version 1.5.0

diagnostic tool framework java (for loading ibm dumps): 1.10.0.201211161052

it looks heap dump incomplete. personal theory is, due lack of memory, writing out heap doesn't work reliable.

i created fresh heapdump application while working fine. sure enough there instance of weird arraylist contained strings consisting of null-bytes. had 10 entries though, , took tiny part of heap.

that arraylist had 2 paths gc-root "system class" 1 via com.ibm.ws.security.core.wsaccessmanager , 1 through com.ibm.ws.security.util.multidomainhelper. first one, found bug, might related: http://www-01.ibm.com/support/docview.wss?uid=swg1pi33412


Comments