Hi,
about not removing the entries, can you please create jira issue? I
will try to look into it ASAP.
-Matej
On Mon, Jun 2, 2008 at 11:38 AM, Stefan Fußenegger
<[EMAIL PROTECTED]> wrote:
>
> Recently, I had 2 memory related crashes of my Wicket app. Thanks to the
> priceless -XX:+HeapDumpOnOutOfMemoryError option, I had a heap dump to look
> at (one crash was due to a GC overhead exception, so no dump there). One
> thing that immediately attracted my attention was that there were 116.917
> instances of
> org.apache.wicket.protocol.http.pagestore.DiskPageStore$SessionEntry. As
> objects of this class "represent a session" (javadoc), it seems that I had
> 116.917 sessions mapped in DiskPageStore.sessionIdToEntryMap.
>
> In my app, i spotted two reasons for this;
> 1. search engine bots (e.g. googlebot) receive a new session for each page
> they access, as we cut of the ;jsessionid= from the URL in our app in order
> not to have those ugly IDs on the search engine result pages. As a result,
> when google tried to index 100.000+ pages 100.000+ sessions had been
> created. I am certainly going to work on this issue, however, it helped me
> to spot reason number 2:
>
> 2. No entries are removed from DiskPageStore.sessionIdToEntryMap. I guess,
> this should be added to the DiskPageStore.unbind(String sessionId) method:
>
> public void unbind(String sessionId)
> {
> // FIX: replace get() with remove()
> SessionEntry entry =
> (SessionEntry)sessionIdToEntryMap.get(sessionId);
> if (entry != null)
> {
> if (isSynchronous())
> {
> entry.unbind();
> }
> else
> {
> List pages = getPagesToSaveList(sessionId);
> synchronized (pages)
> {
> flushPagesToSaveList(sessionId, pages);
> entry.unbind();
> }
> pagesToSaveAll.remove(sessionId);
> }
> }
> }
>
> -----
> -------
> Stefan Fußenegger
> http://talk-on-tech.blogspot.com // looking for a nicer domain ;)
> --
> View this message in context:
> http://www.nabble.com/Memory-leak-in-DiskPageStore-tp17597466p17597466.html
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]