Hi, Guus and All!
My configuration:
LDAP (AD) users and groups (around 120 users), rosters are distributed via shared groups, around six various plugins (I’ve been trying disabling all of them while digging this problem, so the list is not important).
My environment:
Server (current): Openfire 3.7.0 release (started using with Openfire 3.6.4 release and further through some nightly builds and beta).
Clients (current): Miranda IM 0.9.19.0 (started using with Miranda IM 0.9.10.0 and further through stable releases).
I’ve started suffering from daily memory runouts since putting 3.6.4 in production, Java memory configuration was default, min=max=64 MB. Then, I’ve tried increasing memory to min=64 MB max=256 MB, but it extended total memory runout period only (to about 2 days). My temporary solution was scheduling a nightly server restart - and even if it was pretty acceptable in my (corporative) environment, it is not good for any server at all.
I’ve read about Empathy/PEP/Java-memory some time ago, but: firstly, we don’t use Empathy at all; and secondly, it was not clear to me what actually PEP is. So, I’ve been waiting for Openfire 3.7.0 release, hoping that it would solve my memory problem - and when 3.7.0 was finally released - and the problem was not solved - I’ve started analyzing and digging actively. I must say, that Java Monitor is really a great tool for troubleshooting Java apps & servers (thank Guus for telling about it), it helped to see what’s going on inside my server (and keeps telling me that).
When influence of all of my plugins has been excluded, I’ve recalled this PEP thing, and have carefully read about it. I’ve found out that it actually intercrosses with my other issue, but no one (not even guru’s ) have pointed that out to me. Now, I confirm that disabling PEP solved my long-suffered memory runouts (leak) problem, and here are a couple of related findings:
-
I think that this problem is not related to Empathy only, I suppose it is related to any client, that supports PEP (i.e. sending/receiving Mood/Activity/Tunes information or other “personal events”) - and this aspect should be pointed out here or in some other place - so that people would be clearly aware of it. If “personal events” are not actually being sent by clients (i.e. clients are not capable of doing so) - it doesn’t matter if PEP is enabled or not, the problem comes out only when PEP is actually used. And, until PEP realisation in Openfire is a known memory hog (until bugs are found and fixed) - wouldn’t making it disabled by default (out-of-box) be a good idea? I guess there are very few folks that use it consciously (and very few clients that support it).
-
As far as I understand setting property xmpp.pep.enabled to false doesn’t actually disable PEP capability advertising by server, it simply disables processing of events of this given type - becase after setting this property and restarting server I still get (while connecting):
<iq type="result" id="****" from="****" to="****@****/****">
<query xmlns="[http://jabber.org/protocol/disco#info](http://jabber.org/protocol/disco#info)">
<identity category="server" name="Openfire Server" type="im" />
<identity category="pubsub" type="pep" />
<feature var="[http://jabber.org/protocol/pubsub#manage-subscriptions](http://jabber.org/protocol/pubsub#manage-subscriptions)" />
...
<feature var="[http://jabber.org/protocol/rsm](http://jabber.org/protocol/rsm)" />
</query>
</iq>
So, is there a way to disable PEP-advertising (i.e. completely disable PEP)? If there is no such way - it would be desirable.
The point is that Miranda IM clients (I don’t know about other clients, including Empathy) show “personal events” selecting/setting menus only when this capability is advertised by server, and if it’s not - there are simply no such menus (I’ve found this out long ago, by trying to connecting to some public non-PEP non-Openfire servers). Thus, it’s not obvious to people why they have these menus and they can’t set “personal events”.