I have a webapp running under Jetty 8 using Derby 10.8.1.2. It runs fine
for a few weeks and then grinds to a halt (which on a Windows box also
grinds Windows to a halt). It sometimes crashes with an OutOfMemoryError
with a message that it can't create any more native threads (and I don't
get a heap dump when this happens, despite requesting one with the
HeapDumpOnOutOfMemoryError).
I've managed to get use JMX to get a heap dump and analyse it with the
Eclipse Memory Analyser. This is before it crashes, after about a week
of operation, and shows about 7MB tied up in a ConcurrentCache object.
I'm not familiar with the internals of Derby implementation, but the
leak suspect report from Eclipse is below.
Is there anyone who can help me understand what is going on here?
Eclipse Memory Analyser - Leak Suspects Report
----------------------------------------------
Problem Suspect 1 Description
One instance of "org.apache.derby.impl.services.cache.ConcurrentCache"
loaded by "org.eclipse.jetty.webapp.WebAppClassLoader @ 0x84ebf710"
occupies 7,436,248 (45.27%) bytes.
The memory is accumulated in one instance of
"org.apache.derby.impl.services.cache.ConcurrentCache"
loaded by "org.eclipse.jetty.webapp.WebAppClassLoader @ 0x84ebf710".
Shortest Paths To the Accumulation Point
Class Name Shallow Heap Retained Heap
org.apache.derby.impl.services.cache.ConcurrentCache @ 0x84fe4140
40 7,436,248
pageCache org.apache.derby.impl.store.raw.data.StoredPage @ 0x854b6978
192 5,424
page org.apache.derby.impl.store.access.btree.BranchControlRow @
0x854bde80 72 272
<Java Local> java.lang.Thread @ 0x85cf7c38 qtp22069910-7932 Thread
104 179,504
pageCache org.apache.derby.impl.store.raw.data.StoredPage @ 0x85999ab8
192 8,616
pageCache org.apache.derby.impl.store.raw.data.BaseDataFileFactoryJ4 @
0x84ff1218 152 888
cacheManager org.apache.derby.impl.services.cache.BackgroundCleaner @
0x84ff15f8 32 592
pageCache org.apache.derby.impl.store.raw.data.StoredPage @ 0x85d23440
192 34,192
pageCache org.apache.derby.impl.store.raw.data.StoredPage @ 0x8551ebe8
192 6,200
pageCache org.apache.derby.impl.store.raw.data.StoredPage @ 0x8551ed88
192 34,848
Total: 7 entries
Accumulated Objects
Class Name Shallow Heap Retained Heap Percentage
org.apache.derby.impl.services.cache.ConcurrentCache @ 0x84fe4140 40
7,436,248 45.27%
org.apache.derby.impl.services.cache.CacheEntry @ 0x851b88d8 32
49,320 0.30%
org.apache.derby.impl.services.cache.CacheEntry @ 0x85254a98 32
49,200 0.30%
org.apache.derby.impl.services.cache.CacheEntry @ 0x851b88b8 32
49,080 0.30%
org.apache.derby.impl.services.cache.CacheEntry @ 0x859c2340 32
48,928 0.30%
org.apache.derby.impl.services.cache.CacheEntry @ 0x85ac13b0 32
46,632 0.28%
org.apache.derby.impl.services.cache.CacheEntry @ 0x85093300 32
45,544 0.28%
org.apache.derby.impl.services.cache.CacheEntry @ 0x850e3068 32
44,400 0.27%
org.apache.derby.impl.services.cache.CacheEntry @ 0x850e30f8 32
40,440 0.25%
org.apache.derby.impl.services.cache.CacheEntry @ 0x850e2ef8 32
39,120 0.24%
org.apache.derby.impl.services.cache.CacheEntry @ 0x851b8e50 32
39,064 0.24%
org.apache.derby.impl.services.cache.CacheEntry @ 0x850e2e50 32
38,464 0.23%
org.apache.derby.impl.services.cache.CacheEntry @ 0x850e2d18 32
38,400 0.23%
org.apache.derby.impl.services.cache.CacheEntry @ 0x851b88f8 32
38,104 0.23%
org.apache.derby.impl.services.cache.CacheEntry @ 0x850e3150 32
37,080 0.23%
org.apache.derby.impl.services.cache.CacheEntry @ 0x851b89c8 32
36,480 0.22%
org.apache.derby.impl.services.cache.CacheEntry @ 0x859d0600 32
36,000 0.22%
org.apache.derby.impl.services.cache.CacheEntry @ 0x85a10f28 32
35,400 0.22%
org.apache.derby.impl.services.cache.CacheEntry @ 0x85d2c0e8 32
35,184 0.21%
org.apache.derby.impl.services.cache.CacheEntry @ 0x850e2dc0 32
35,104 0.21%
org.apache.derby.impl.services.cache.CacheEntry @ 0x8551d248 32
35,072 0.21%
Total: 20 entries 640
817,016 0.05
Accumulated Objects by Class
Label Number Of Objects Used Heap Size Retained
Heap Size
org.apache.derby.impl.services.cache.CacheEntry 717
22,944 7,371,592
java.util.concurrent.ConcurrentHashMap 1
40 23,872
org.apache.derby.impl.services.cache.ClockPolicy$Holder 717
17,208 17,208
org.apache.derby.iapi.store.raw.PageKey 702
16,848 16,872
org.apache.derby.iapi.store.raw.ContainerKey 146
3,504 3,504
org.apache.derby.impl.services.cache.ClockPolicy 1
32 3,104
java.lang.String 1
24 56
Total: 7 entries 2,285
60,600 7,436,208
TIA,
------------------------------------------------------------------------
John English | My old University of Brighton home page is still here:
| http://www.cem.brighton.ac.uk/staff/je/
------------------------------------------------------------------------