james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Norman Maurer ...@byteaction.de>
Subject Re: [jira] Commented: (JAMES-512) OutOfMemoryError -- object not released.
Date Tue, 30 May 2006 09:33:18 GMT
Can you please use the fixed attached version of the Class and run it
again against postage ?

Thx
Norman
  
Am Dienstag, den 30.05.2006, 09:08 +0000 schrieb Bernd Fondermann
(JIRA):
>     [ http://issues.apache.org/jira/browse/JAMES-512?page=comments#action_12413788 ]

> 
> Bernd Fondermann commented on JAMES-512:
> ----------------------------------------
> 
> I can reproduce the bug under James 2.2.0 with the following Postage szenario:
> 
>     <scenario id="release_james512" runtimeMinutes="480"><!-- 8h=480, 1d=1440,
3d=4320 -->
>         <users>
>           <internal count="1" username-prefix="test_int" domain="mail.james.local"
password="test" reuseExisting="yes" />
>           <external count="0" username-prefix="test_ext" domain="mail.sample.com"
/>
>         </users>
>         <profiles>
>             <profile name="ext-int" source="extern" target="intern">
>             </profile>
>             <profile name="int-ext" source="intern" target="extern">
>             </profile>
>             <profile name="int-int" source="intern" target="intern">
>                <send count-per-min="25" subject="int2int" text-size-min="10" text-size-max="20"
binary-size-min="0" binary-size-max="0"  />
>                <send count-per-min="25" subject="int2int" text-size-min="10" text-size-max="20"
binary-size-min="0" binary-size-max="0"  />
>                <send count-per-min="25" subject="int2int" text-size-min="10" text-size-max="20"
binary-size-min="0" binary-size-max="0"  />
>                <send count-per-min="25" subject="int2int" text-size-min="10" text-size-max="20"
binary-size-min="0" binary-size-max="0"  />
>                <send count-per-min="25" subject="int2int" text-size-min="10" text-size-max="20"
binary-size-min="0" binary-size-max="0"  />
>                <send count-per-min="25" subject="int2int" text-size-min="10" text-size-max="20"
binary-size-min="0" binary-size-max="0"  />
>                <send count-per-min="25" subject="int2int" text-size-min="10" text-size-max="20"
binary-size-min="0" binary-size-max="0"  />
>                <send count-per-min="25" subject="int2int" text-size-min="10" text-size-max="20"
binary-size-min="0" binary-size-max="0"  />
>                <send count-per-min="25" subject="int2int" text-size-min="10" text-size-max="20"
binary-size-min="0" binary-size-max="0"  />
>                <send count-per-min="25" subject="int2int" text-size-min="10" text-size-max="20"
binary-size-min="0" binary-size-max="0"  />
> 
>                <send count-per-min="25" subject="int2int" text-size-min="10" text-size-max="20"
binary-size-min="0" binary-size-max="0"  />
>                <send count-per-min="25" subject="int2int" text-size-min="10" text-size-max="20"
binary-size-min="0" binary-size-max="0"  />
>                <send count-per-min="25" subject="int2int" text-size-min="10" text-size-max="20"
binary-size-min="0" binary-size-max="0"  />
>                <send count-per-min="25" subject="int2int" text-size-min="10" text-size-max="20"
binary-size-min="0" binary-size-max="0"  />
>                <send count-per-min="25" subject="int2int" text-size-min="10" text-size-max="20"
binary-size-min="0" binary-size-max="0"  />
>                <send count-per-min="25" subject="int2int" text-size-min="10" text-size-max="20"
binary-size-min="0" binary-size-max="0"  />
>                <send count-per-min="25" subject="int2int" text-size-min="10" text-size-max="20"
binary-size-min="0" binary-size-max="0"  />
>                <send count-per-min="25" subject="int2int" text-size-min="10" text-size-max="20"
binary-size-min="0" binary-size-max="0"  />
>                <send count-per-min="25" subject="int2int" text-size-min="10" text-size-max="20"
binary-size-min="0" binary-size-max="0"  />
>                <send count-per-min="25" subject="int2int" text-size-min="10" text-size-max="20"
binary-size-min="0" binary-size-max="0"  />
> 
>             </profile>
>         </profiles>
>         <testserver host="localhost">
>           <smtp-forwarding port="2525" latecomer-wait-seconds="120"/>
>           <smtp-inbound port="25" />
>           <pop3 port="110" count-per-min="10" />
>           <remotemanager port="4555" name="root" password="root" />
>           <spam-account name="spam-sink" password="spam-sink" />
>           <jvm-resources jmx-remoting-port="10201" />
>         </testserver>
>     </scenario>
> 
> 
> > OutOfMemoryError -- object not released.
> > ----------------------------------------
> >
> >          Key: JAMES-512
> >          URL: http://issues.apache.org/jira/browse/JAMES-512
> >      Project: James
> >         Type: Bug
> 
> >   Components: MailStore & MailRepository
> >     Versions: 2.2.0
> >  Environment: windows XP,
> > Java 1.5.0_06
> >     Reporter: Quande Ren
> >     Priority: Critical
> >      Fix For: 2.3.0a4
> >  Attachments: picture.GIF
> >
> > I use the file system to store the emails.
> > When I run the James for a long time, the james server used more and more heap memory,
eventually it runs out of memory and refuse to receive email. only restart the james will
work.
> > I used JProfile Memory Debugger(you can get the trial version from www.quest.com)
 and found a clue. the object allocated from following code at line 92 does not always get
released, cause the memory been used up eventually. I will attach a picture file showing the
call stack.
> > 91,            final OutputStream outputStream = getOutputStream( key );
> > 92,            final BufferedOutputStream stream = new BufferedOutputStream( outputStream
);
> > 93
> > 94,            final Object o = m_outputs.get( key );
> > 95,            if( null == o )
> > 96,            {
> > 97,                m_outputs.put( key; stream );
> > 98,            }
> > 99,            else if( o instanceof ArrayList )
> > 100,            {
> > 101,                ( (ArrayList)o ).add( stream );
> > 102,            }
> > 103,            else
> > 104,            {
> > 105,                final ArrayList list = new ArrayList();
> > 106,                list.add( o );
> > 107,                list.add( stream );
> > 108,                m_outputs.put( key; list );
> > 109,            }
> > 110
> > 111,            return stream;
> 

Mime
View raw message