Details
-
Type:
Bug
-
Status:
Open
-
Priority:
Blocker
-
Resolution: Unresolved
-
Affects Version/s: 3.6.4
-
Fix Version/s: 3.7.1
-
Component/s: Connection Manager, Database
-
Acceptance Test - Add?:No
-
- Environment:
-
Local load testing enviro:
WF/CM-1/MySQL on lachesis
CM-2 on load-35
4 Tsung Clients (151,152,155,157)
Client XML to reproduce:
1. This will give you one such error log message. jivePresence database entry already exists cause user haven't been available and his offline presence wasn't deleted by PresenceManager.userAvailable()
<?xml version="1.0"?>
<stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" to="server" >
<iq type="set" id="auth_1" to="rw12" >
<query xmlns="jabber:iq:auth">
<username>user</username>
<password>password</password>
<resource>res</resource>
</query>
</iq>
<presence type="unavailable"/>
</stream:stream>
2. This will give you two error messages. Cause first unavailable presence will be written to database. And then for two others "entry already exists"
<?xml version="1.0"?>
<stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" to="server" >
<iq type="set" id="auth_1" to="rw12" >
<query xmlns="jabber:iq:auth">
<username>user</username>
<password>password</password>
<resource>res</resource>
</query>
</iq>
<presence type="available"/>
<presence type="unavailable">
<status> I'm gone </status>
</presence>
<presence type="unavailable">
<priority>5</priority>
</presence>
<presence type="unavailable"/>
</stream:stream>
The way to fix this issue is to change PresenceManager.INSERT_OFFLINE_PRESENCE to "REPLACE INTO jivePresence(username, offlinePresence, offlineDate) VALUES(?,?,?)". Hope that this comment was useful.