Memory Leak 3.6.0a?

server os: centOS 5

java version: 1.6.0_10

using openfire’s internal DB. LDAP (Microsoft Active Directory) for users. Memory has climbed to 28.2% since restarting the service 3 hrs ago. We have about 200 users, about 147 sessions currently.

Anyone have any ideas/troubleshooting tips? Please let me know if I can provide more or more accurate information.

Only errors noted in openfire’s error.log are related to vcard:

2008.11.10 09:55:12 [org.jivesoftware.openfire.handler.IQvCardHandler.handleIQ( 92)]
java.lang.UnsupportedOperationException: VCard provider is read-only.
at org.jivesoftware.openfire.vcard.VCardManager.setVCard(
at org.jivesoftware.openfire.handler.IQvCardHandler.handleIQ( 3)
at org.jivesoftware.openfire.handler.IQHandler.process(
at org.jivesoftware.openfire.IQRouter.handle(
at org.jivesoftware.openfire.IQRouter.route(
at org.jivesoftware.openfire.spi.PacketRouterImpl.route(
at .java:79)
at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandl
at$TailFilter.messageReceived (
at$EntryImpl$1.messageReceive d(
at org.apache.mina.common.IoFilterAdapter.messageReceived(
at$EntryImpl$1.messageReceive d(
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecF
at$EntryImpl$1.messageReceive d(
at org.apache.mina.filter.executor.ExecutorFilter.processEvent( :239)
at org.apache.mina.filter.executor.ExecutorFilter$
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask( 886)
at java.util.concurrent.ThreadPoolExecutor$

Memory has climbed to 28.2%
28,2% of what?

How much memory does your system have? What are your memory settings for Openfire?

system: Mem: 2058820k total, 1974976k used,

openfire: /usr/java/latest/bin/java -server -Xms512m -Xmx512m -DopenfireHome=/opt/openfire -Dopenfire.lib.dir=/opt/openfire/lib -classpath /opt/openfire/lib/startup.jar -jar /opt/openfire/lib/startup.jar

Admin Console: 413.58 MB of 507.88 MB (81.4%) used

usage has jumped another 1.5% in the last 1/2 an hour.

thanks for the response.

Since you have assigned 507.88 MB to Openfire, Openfire will use this. Java uses a garbage collector, which does only run if there is no more memory. Your memory is simply full with garbage.

I think your server will also run fine with 256 MB assigned to Openfire. However, it deppends also on plugins you may have installed.


you may want set Xms to 128 MB to make sure that the java process starts with little memory. If you really have a memory leak you’ll see that the java process will use more memory every day.

But “java.lang.UnsupportedOperationException: VCard provider is read-only.” is not related to a memory problem but to LDAP. A user (which one is not printed along the stack trace - that makes identifying the user hard) tries to change some information within the vCard (adding a photo or something like this) and Spark (or the client which your user is using) tries to update the vCard. This fails as Openfire accesses LDAP as read-only.