Out of memory
Hi all,
This is the second time that We get a OutOfMemory
My VM setting is
-Xms128M -Xmx512M -XX:PermSize=32m -XX:MaxPermSize=256m -XX:MaxDirectMemorySize=128m
Any idea about this issue ?
2012-03-27 19:27:39 ThreadExceptionHandler.uncaughtException() SEVERE: Uncaught thread: "msgoffline Queue Worker 7" exception
java.lang.OutOfMemoryError: Java heap space
2012-03-27 19:27:39 ThreadExceptionHandler.uncaughtException() SEVERE: Uncaught thread: "IPMonitor Timer" exception
java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.LinkedHashMap.newKeyIterator(LinkedHashMap.java:396)
at java.util.HashMap$KeySet.iterator(HashMap.java:874)
at java.util.HashSet.iterator(HashSet.java:153)
at tigase.server.xmppclient.IPMonitor$1.run(IPMonitor.java:70)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
2012-03-27 19:27:39 ThreadExceptionHandler.uncaughtException() SEVERE: Uncaught thread: "socketReadThread-24"ThreadExceptionHandler.uncaughtException() SEVERE: Uncaught thread: "socketReadThread-22" exception
exception
java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.HashMap.newKeyIterator(HashMap.java:840)
at java.util.HashMap$KeySet.iterator(HashMap.java:874)
at java.util.HashSet.iterator(HashSet.java:153)
at sun.nio.ch.SelectorImpl.processDeregisterQueue(SelectorImpl.java:127)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:69)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:84)
at tigase.net.SocketThread.run(SocketThread.java:251)
at java.lang.Thread.run(Thread.java:619)
2012-03-27 19:27:39 ThreadExceptionHandler.uncaughtException() SEVERE: Uncaught thread: "socketReadThread-22" exception
Is it possible that for some user there was quite huge (relatively to memory limitation you've set up) amount of offline data stored in the DB?
If this is the problem,
There is some way to avoid it ?
What about the memory setting, is enough for a production server ?
Regards
Manuel
We have Tigase installations running with just 10MB of RAM. So this is not a question about how much you need but what the installation is for. What do you plan to do with it, how many users, average roster size, etc...
In your case, it looks like the most likely problem is with offline messages for some user. Probably there is a very high number of messages waiting for one user and when he comes online, the server tries to read all of them to send to the user. Probably there is more messages than the server can keep in memory so it runs out of memory during the process.
Unfortunately, this is a bug in the Tigase and we have just fixed it a few weeks ago. The only solution for you right now is to remove those messages from the DB to make it possible for the user to login without breaking the server.





Recent comments
1 min 48 sec ago
5 min 18 sec ago
1 hour 1 min ago
1 hour 5 min ago
11 hours 4 min ago
1 day 3 hours ago
1 day 3 hours ago
1 day 17 hours ago
3 days 2 hours ago
3 days 2 hours ago