You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wicket.apache.org by Martijn Dashorst <ma...@gmail.com> on 2008/04/01 13:56:02 UTC
DiskStore memory leak?
In our app that just migrated to wicket 1.3.2 we got a lot of the
following exceptions [0]
and at the same time our app was running low on memory. Now I don't
know which one caused what, but a jmap histogram showed something
rather disturbing:
num #instances #bytes class name
--------------------------------------
1: 82067 1181214384 [B
2: 2757758 132372384 java.util.HashMap$Entry
3: 628473 111755944 [C
4: 515329 77012440 [Ljava.util.HashMap$Entry;
5: 28468 44637824 oracle.jdbc.driver.T4CPreparedStatement
6: 345808 40406568 [I
7: 576443 32280808 org.apache.wicket.markup.html.basic.Label
8: 440706 31538440 [Ljava.lang.Object;
9: 491169 31434816 java.util.HashMap
10: 144040 25626360 <constMethodKlass>
The number 1 entry is what spooks me. they are 82k byte arrays, taking
a whopping 1.2Gb of memory. A quick calculation shows that this means
14kb per byte[] on average. The only thing that comes to my mind is
that this are serialized pages. Unfortuately I am unable to prove
this, so we have to conduct a thought experiment.
Is it possible that in this case the page's serialization data is not
cleaned up, taking more and more memory?
Martijn
[0] java.lang.RuntimeException: java.io.FileNotFoundException:
/work/vocus/vocus-filestore/3A167A6585AB5D8695AA85D1BBE4D133/pm-null
(No such file or directory)
at org.apache.wicket.protocol.http.pagestore.FileChannelPool.newFileChannel(FileChannelPool.java:104)
at org.apache.wicket.protocol.http.pagestore.FileChannelPool.getFileChannel(FileChannelPool.java:171)
at org.apache.wicket.protocol.http.pagestore.DiskPageStore$SessionEntry.savePage(DiskPageStore.java:241)
at org.apache.wicket.protocol.http.pagestore.DiskPageStore.flushPagesToSaveList(DiskPageStore.java:889)
at org.apache.wicket.protocol.http.pagestore.DiskPageStore$PageSavingThread.run(DiskPageStore.java:952)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.FileNotFoundException:
/work/vocus/vocus-filestore/3A167A6585AB5D8695AA85D1BBE4D133/pm-null
(No such file or directory)
at java.io.RandomAccessFile.open(Native Method)
at java.io.RandomAccessFile.<init>(RandomAccessFile.java:212)
at org.apache.wicket.protocol.http.pagestore.FileChannelPool.newFileChannel(FileChannelPool.java:99)
... 5 more