directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Lecharny (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DIRSERVER-644) Memory Leak in Persistent search ?
Date Tue, 13 Jun 2006 22:42:30 GMT
    [ http://issues.apache.org/jira/browse/DIRSERVER-644?page=comments#action_12416096 ] 

Emmanuel Lecharny commented on DIRSERVER-644:
---------------------------------------------

That's good news !

However, requests are not supposed to be long here : they are simple search with a DN as key.
The request must be discarded when the result has been sent to the client, not when the session
dies.

Now, is it necesary to store this request ? What is this good for? If we have a very long
request, like a search through all the base, then we will have three cases :
1) there is a time limit : we returns the data we found at this point.
2) there is a size limit : we returns the data we found at this point.
3) there are no limit : we wait for the server to build the full result, and we send it back
to the client.

I any case, we don't need the Request to be stored, am I totally wrong ?

> Memory Leak in Persistent search ?
> ----------------------------------
>
>          Key: DIRSERVER-644
>          URL: http://issues.apache.org/jira/browse/DIRSERVER-644
>      Project: Directory ApacheDS
>         Type: Bug

>   Components: core
>     Versions: 1.0-RC3
>     Reporter: Emmanuel Lecharny
>     Assignee: Alex Karasulu
>     Priority: Blocker
>      Fix For: 1.0-RC4
>  Attachments: SearchTest.java
>
> After having profiled memory, it seems we have a memory leak in SessionRegistry.
> A little test (attached) does a search N times for N threads, and for each search, a
OutstandingRequest is attached to the session. After a few thousands of search we fall in
OOM. I've put some trace in those methods :
> SessionRegistry.addOutstandingRequest
> and
> SessionRegistry.removeOutstandingRequest
> Session Released
> addOutstandingRequest 2
> addOutstandingRequest 3
> addOutstandingRequest 4
> ... ( 100 requests)
> addOutstandingRequest 99
> addOutstandingRequest 100
> addOutstandingRequest 101
> remove session
> The SessionRegistry.removeOutstandingRequest is never called, except if an exception
is raised (NamingException). 
> It may be on purpose ( persistent search), but we can't assume the server will be able
to hold as many OutstandingRequest as we have search requests - or entries -.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message