Re: AW: AW: possible bug / memory leak in DispatchQueue and EventManager?

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Wed Feb 21 2007 - 09:19:52 EST

  • Next message: Ayhan Kondoz: "AW: AW: AW: possible bug / memory leak in DispatchQueue and EventManager?"

    30 is good. If you had a retained DataContext somewhere you'd get the
    same number as the number of stuck invocations.

    1 million of Invocations is bad.

    I guess this needs to be logged as a possible bug to investigate,
    with as many details as possible on the JVM version, etc.

    Andrus

    On Feb 21, 2007, at 4:07 PM, Ayhan Kondoz wrote:
    > Yes seems live there are DataContext instances.
    >
    > http://img73.imageshack.us/img73/3068/memta6.jpg
    >
    > I started the GC a few times before I took this screenshot.
    > As you can see there are still 30 DataContext instances. No idea
    > why thought...
    >
    >
    >> -----Ursprüngliche Nachricht-----
    >> Von: Andrus Adamchik [mailto:andru..bjectstyle.org]
    >> Gesendet: Mittwoch, 21. Februar 2007 14:49
    >> An: use..ayenne.apache.org
    >> Betreff: Re: AW: possible bug / memory leak in DispatchQueue and
    >> EventManager?
    >>
    >> Do you see DataContext instances in the memory profile? I wonder how
    >> many of those do you have, as those are the only Cayenne objects that
    >> have hard reference to the listeners.
    >>
    >> Andrus
    >>
    >>
    >> On Feb 21, 2007, at 3:37 PM, Ayhan Kondoz wrote:
    >>
    >>> Hi,
    >>>
    >>> the JVM has 1 GB of memory and i already tried to run the GC
    >>> manually but it doesn't make a difference. I can start the GC from
    >>> the profiler tool but the number of instances does not change.
    >>> I guess that there are some other references to this objects so
    >>> that the weak ref. does not expire.
    >>>
    >>> And there are no EventManager exception in the log files.
    >>>
    >>>
    >>> ayhan
    >>>
    >>>> -----Ursprüngliche Nachricht-----
    >>>> Von: Andrus Adamchik [mailto:andru..bjectstyle.org]
    >>>> Gesendet: Mittwoch, 21. Februar 2007 14:17
    >>>> An: use..ayenne.apache.org
    >>>> Betreff: Re: possible bug / memory leak in DispatchQueue and
    >>>> EventManager?
    >>>>
    >>>> Seems like your assessment of the EventManager leaking is correct.
    >>>>
    >>>> Now the cause is not that clear. A shot in the dark - this is
    >>>> due to
    >>>> a combination of lots of spare memory in JVM (so weak references
    >>>> are
    >>>> not collected fast enough) and slow custom 'equals' and 'hashCode'
    >>>> methods in invocation.
    >>>>
    >>>> How much heap size do you have in your server? Also can you try to
    >>>> add a request filter that would do 'System.gc()' on every few
    >>>> thousands requests, and see if it makes any difference.
    >>>>
    >>>> Also - do you see any EventManager exceptions in the logs?
    >>>>
    >>>> Andrus
    >>>>
    >>>>
    >>>> On Feb 21, 2007, at 10:55 AM, Ayhan Kondoz wrote:
    >>>>> Hi,
    >>>>>
    >>>>>
    >>>>>
    >>>>> i think i found a possible bug / memory leak within the
    >>>>> DispatchQueue and EventManager.
    >>>>>
    >>>>>
    >>>>>
    >>>>>
    >>>>>
    >>>>> First a little bit about my setup:
    >>>>>
    >>>>>
    >>>>>
    >>>>> I have 3 servers. Each server runs an axis service. The service
    >>>>> uses cayenne 1.2.1 to connect to a database. It reads customer and
    >>>>> account information from the DB etc..
    >>>>>
    >>>>> The servers are using cayenne's shared caching with javagroups as
    >>>>> the messaging service so that changes made from one server are
    >>>>> dispatched to the other servers.
    >>>>>
    >>>>>
    >>>>>
    >>>>> The avarage connections per second is somewhere around 4-5.
    >>>>>
    >>>>>
    >>>>>
    >>>>> However I have a very strange problem with this setup so I startet
    >>>>> to search for the reason. The problem is that with nearly constant
    >>>>> and unchanging usage the load of each server increases over time.
    >>>>> To further test this I created a test server with a similar setup.
    >>>>> There I created a test program that creates totally constant
    >>>>> usage.
    >>>>> But even with the unchanging usage the load of the server is
    >>>>> increasing until the cpu load is so high that the requests can not
    >>>>> be processed anymore.
    >>>>>
    >>>>>
    >>>>>
    >>>>> I installed a java profiler to trying to pinpoint the location of
    >>>>> this error and this is what I found out.
    >>>>>
    >>>>>
    >>>>>
    >>>>> I let the server run for 24 hours and then stopped the program
    >>>>> which creates the test usage.
    >>>>>
    >>>>> But even while the server was idle there where still a lot of
    >>>>> instances in the java heap after the GC run.
    >>>>>
    >>>>>
    >>>>>
    >>>>> http://img206.imageshack.us/img206/9769/memorysy5.jpg
    >>>>>
    >>>>>
    >>>>>
    >>>>> Please note the HashMap, WeakReference and Invocation counts. I
    >>>>> pressume that the $ObjectProvider_*** is cayenne aswell but I am
    >>>>> not sure.
    >>>>>
    >>>>>
    >>>>>
    >>>>> Now the following image shows the cpu profile with incoming
    >>>>> connections.
    >>>>>
    >>>>>
    >>>>>
    >>>>> http://img339.imageshack.us/img339/2441/cpuci0.jpg
    >>>>>
    >>>>>
    >>>>>
    >>>>> As you can see 58% of the cpu time is used within HashSet.add().
    >>>>>
    >>>>>
    >>>>>
    >>>>> So when I consider the two facts i think that there might be a
    >>>>> possible problem with the EventManager. The first table tells us
    >>>>> that there are over 1 million instances of HashSet's and cayenne
    >>>>> Invocations. So it seems like the set's within the DispatchQueue
    >>>>> are not recycled properly so that the object count rises over time
    >>>>> which result in extremly high processtime when trying to add new
    >>>>> HashSet's.
    >>>>>
    >>>>>
    >>>>>
    >>>>>
    >>>>>
    >>>>> Thanks
    >>>>>
    >>>>> Ayhan
    >>>>>
    >>>>>
    >>>>>
    >>>>>
    >>>>>
    >>>>>
    >>>>>
    >>>>> Ayhan Kondoz
    >>>>>
    >>>>>
    >>>>>
    >>>>> Software-Entwicklung
    >>>>>
    >>>>>
    >>>>>
    >>>>> ------------------------------------------------------------------
    >>>>> --
    >>>>> --
    >>>>> ------------
    >>>>>
    >>>>> Telefon: +49 (0) 40 513 06 616
    >>>>>
    >>>>> Telefax: +49 (0) 40 513 06 998 616
    >>>>>
    >>>>> E-Mail: ayhan.kondo..reenet-ag.de
    >>>>> <mailto:ayhan.kondo..reenet-
    >>>>> ag.de>
    >>>>>
    >>>>> Website: http://www.freenet.de <http://www.freenet.de/> ; http://
    >>>>> www.freenet-ag.de <http://www.freenet-ag.de/>
    >>>>>
    >>>>> ------------------------------------------------------------------
    >>>>> --
    >>>>> --
    >>>>> ------------
    >>>>>
    >>>>> freenet.de AG
    >>>>>
    >>>>> Deelbögenkamp 4c
    >>>>>
    >>>>> 22297 Hamburg
    >>>>>
    >>>>> ------------------------------------------------------------------
    >>>>> --
    >>>>> --
    >>>>> ------------
    >>>>>
    >>>>> Vorsitzender des Aufsichtsrates: Prof. Dr. Helmut Thoma
    >>>>>
    >>>>> Vorstand: Eckhard Spoerr (Vors.),
    >>>>> Axel Krieger, Stephan Esch, Eric Berger
    >>>>>
    >>>>> Amtsgericht Hamburg HRB 74048
    >>>>>
    >>>>>
    >>>>>
    >>>>>
    >>>>>
    >>>>> Diese Information ist ausschließlich für die adressierte Person
    >>>>> oder Organisation bestimmt und könnte vertrauliches und/oder
    >>>>> privilegiertes Material enthalten. Personen oder Organisationen,
    >>>>> für die diese Information nicht bestimmt ist, ist es nicht
    >>>>> gestattet, diese zu lesen, erneut zu übertragen, zu verbreiten,
    >>>>> anderweitig zu verwenden oder sich durch sie veranlasst zu sehen,
    >>>>> Maßnahmen irgendeiner Art zu ergreifen. Sollten Sie diese
    >>>>> Nachricht
    >>>>> irrtümlich erhalten haben, bitten wir Sie, sich mit dem
    >>>>> Absender in
    >>>>> Verbindung zu setzen und das Material von Ihrem Computer zu
    >>>>> löschen.
    >>>>>
    >>>>>
    >>>>>
    >>>>> The information transmitted is intended only for the person or
    >>>>> entity to which it is addressed and may contain confidential
    >>>>> and/or
    >>>>> privileged material. Any review, retransmission, dissemination or
    >>>>> other use of, or taking of any action in reliance upon, this
    >>>>> information by persons or entities other than the intended
    >>>>> recipient is prohibited. If you received this in error, please
    >>>>> contact the sender and delete the material from any computer.
    >>>>>
    >>>>>
    >>>>>
    >>>
    >>>
    >
    >



    This archive was generated by hypermail 2.0.0 : Wed Feb 21 2007 - 09:20:48 EST