[jboss-jira] [JBoss JIRA] Resolved: (JGRP-489) Out-of-memory with Tunnel and Isolating Nodes
Vladimir Blagojevic (JIRA)
jira-events at lists.jboss.org
Tue May 8 09:58:52 EDT 2007
[ http://jira.jboss.com/jira/browse/JGRP-489?page=all ]
Vladimir Blagojevic resolved JGRP-489.
--------------------------------------
Resolution: Done
Resolved. I was able to reproduce this issue frequently while working on http://jira.jboss.com/jira/browse/JGRP-158. The core of the problem was that SocketThread at GossipRouter assigned to handled input stream from each RouterStub (client) would read incorrect values from stream. One of the values was byte array size that needs to be allocated to deserialize message from RouterStub. If the value of the size was enormous such a byte array could not be allocated resulting in OOME.
So how did this happen to begin with? I noticed that RouterStub allowed multiple thread to enter block of code that was writing a messsage to GossipRouter. When I refactored this block of code to be atomic I have never encountered manifestation this problem again.
> Out-of-memory with Tunnel and Isolating Nodes
> ---------------------------------------------
>
> Key: JGRP-489
> URL: http://jira.jboss.com/jira/browse/JGRP-489
> Project: JGroups
> Issue Type: Task
> Affects Versions: 2.4
> Environment: Windows & Linux- JGroups2.5.0-beta-1 version, JDK1.5
> Reporter: sampangi apparao
> Assigned To: Vladimir Blagojevic
> Fix For: 2.5
>
>
> I am new bee to the JGroups. I am trying to run demo program Draw by using TUNNEL protocol stack i.e tunnel.xml. I had two different subnets 172.x.x.x and 10.x.x.x and the GossipRouter running on 172.x.x.x. In the begining the two Draw instance are identifying each other and I can able to see drawing reflections on both nodes. After couple of minutes the two instances were isolating and another issue was identified that if we run multiple instances running on the same machine also reflecting same problem.
> The following error was observed during execution time
> And Gossip routger arguments...-bind_addr 172.16.2.49 -port 5556
>
> 336512 [TRACE] GossipRouter.mainLoop(): - REGISTER(DrawGroupDemo, 172.16.2.49:2238)
> 10.0.6.2:55214 closed connection; removing it from routing table
> 364342 [TRACE] GossipRouter.route(): - cannot find 10.0.6.2:33155 in the routing table,
> routing table=
>
> GROUP: 'DrawGroupDemo'
> logical addr=172.16.2.49:2238 (172.16.2.49:2239), 7829 ms old
> logical addr=10.0.6.2:33156 (10.0.6.2:52123), 9985 ms old
> logical addr=172.16.2.49:2329 (172.16.2.49:2330), 4907 ms old
> logical addr=172.16.2.49:2249 (172.16.2.49:2250), 3047 ms old
>
> ...
> ...
> 372373 [TRACE] GossipRouter.mainLoop(): - CONNECT(DrawGroupDemo, 10.0.6.2:33155)
> 372983 [TRACE] GossipRouter.mainLoop(): - REGISTER(DrawGroupDemo, 10.0.6.2:33155)
> 375280 [ERROR] Util$1.uncaughtException(): - uncaught exception in Thread[SocketThread 12,5,JGroups] (thread group=org.jgroups.util.Util$1[name=JGroups,maxpri=10] )
> java.lang.OutOfMemoryError: Java heap space
> 375717 [TRACE] GossipRouter$SocketThread.run(): - ENGG-RAOS.us.packetmotion.com:2239 closed connection; removing it from routing table
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list