Menu

#2249 memory leak after 7 hours

v4.0
closed-duplicate
JBossCMP (436)
5
2004-12-29
2004-12-24
Mormota
No

Hi,

I have experienced strange memory leaks under JBoss
4.0.0 after 7 hours, and under JBoss 4.0.1RC2 after 3.5
hours running my application. (In the first 7 hours my
application consumes 100M of memory under 4.0.0,
however after 7 hours the memory consumption raises
lineraly). I used YourKit to detect the memory leak and
I found that the memory is chiefly occupied by HashMap
and entity bean proxies.

Unfortunately I cannot provide source code, but I can
give a short description of the component architecture
and functioning:
(a) objects are inserted into a messaging topic
(b) an MDB receives the objects and:
(b.i) dispaches them to a resource adapter (the RA
sends the object over the network)
(b.ii) creates a database entry using the String(s)
returned by the RA (a tuple looks like this: [String:
id, Date: date, String: st]; I'm using a CMP entity bean)

(c) a timer periodically removes the overaged database
entries (see date). ejbTimeout is implemented by a
stateless session bean, database entries are removed by
the corresponding CMP entity bean

(d) whenever the RA receives an object over the
network, it dispatches it to a stateless session bean,
which is registered as an endpoint at the RA
(e) the stateless session bean
(e.i) updates the database entry (using the ), or
more precisely, its "st" field
(e.ii) inserts a new database entry
(e.iii) if the "st" field statisfies certain
conditions, removes both the inserted and updated entries

Additional infos:
* OS: RedHat AS (running on various hardware, e.g.
simple PC and a 4 processor Xeon server)
* JDK: jdk1.4.5
* I see lot of log messages regarding rolled back
transactions (because of timeouts); these exceptions
are thrown in the CMP entity bean in that method, which
removes the overaged entries. After a findByDate I
iterate over the resulting collection and when I want
to access "id", an exception is thrown. Not always, but
strangely often.
* the memory leak emerges after 7 (or 3.5) hours
regardless the load, and configuration. The load
influences only the gradient of the lineraly increasing
(and therefore deadly) period.

Merry Christmas,

Mormota

Discussion

  • Alexey Loubyansky

    • assigned_to: nobody --> loubyansky
     
  • Mormota

    Mormota - 2004-12-27

    log file fragments

     
  • Mormota

    Mormota - 2004-12-29

    Logged In: YES
    user_id=1184354

    Some new details:
    I simplified the application to the following (see new step
    b.iii):
    (a) objects are inserted into a messaging topic
    (b) an MDB receives the objects and:
    (b.i) dispaches them to a resource adapter (the RA
    sends the object over the network)
    (b.ii) creates a database entry using the String(s)
    returned by the RA (a tuple looks like this: [String:
    id, Date: date, String: st]; I'm using a CMP entity bean)
    (b.iii) _removes the new entry_

    Despite the database entries are removed instantly after
    their creation (and therefore the database is empty), the
    memory usade increases steadyly.

    In stable JBoss 4.0.1, there is no 3.5 (or 7) hours long
    constant-memory-use period.

    The pace of memory consumption growth can be reduced by
    using C "commit option" (instead of the default B).

    Memory leak still persist when using jdk 1.5.

     
  • Scott M Stark

    Scott M Stark - 2004-12-29

    Logged In: YES
    user_id=175228

    Please continue on the jira site:
    http://jira.jboss.com/jira/browse/JBAS-1255

     
  • Scott M Stark

    Scott M Stark - 2004-12-29
    • status: open --> closed-duplicate
     
  • Mormota

    Mormota - 2005-01-17

    Logged In: YES
    user_id=1184354

    Here is the first example application:
    - uses a topic and an MDB to create entities
    - uses a timer to remove old entities

     
  • Mormota

    Mormota - 2005-01-17

    source code

     
  • Mormota

    Mormota - 2005-01-24

    conf and deploy directories

     
  • Mormota

    Mormota - 2005-01-24

    lib directory (please also add pg74.215.jdbc3.jar)

     

Log in to post a comment.