Out of memory

warning: Creating default object from empty value in /home/webapp/drupal-6.28/sites/all/modules/advanced_forum/advanced_forum.module on line 492.
3 replies [Last post]
Anonymous

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

wojtek's picture
Offline
Joined: 2010-11-24
Points: 1182

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?

Manuel (not verified)

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

kobit's picture
Offline
Joined: 2006-09-03
Points: 267814

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.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Post new comment

The content of this field is kept private and will not be shown publicly.