Well, sure. But first things first :-)
I am currently running it against the unpatched 2.3 branch.
Then I'll try the patch against 2.3 and test again.
(I will not try a patched 2.2.0, maybe someone else wants to...)
I think we have to be careful calling it a fix. The OOM exception might
be fixed, but we still have to confirm this does not introduce new
problems. I really want to understand more deeply what the patch does.
Simply had now time yet to have a closer look...
Bernd
Norman Maurer wrote:
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;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]