Jabber Presence and Roster Issue - Client connections not closing on database?
"DeMena, Ronald" <Ronald.DeMena-Y/[email protected]> Thu, 6 Jan 2005 12:03:27 -0500
| Newsgroups | gmane.network.jabber.exodus.user,gmane.network.jabber.admin |
|---|---|
| Message-ID | <561E05732443A84A9BB3A75519C098F6016376C9@usa0300ms03.na.xerox.net> |
I am sending this to both lists as I feel the problem may exist as a combination of factors unknown yet. Before this morning, I had the following configuration: Solaris 9 OE Jabberd 2.0s6 (with IDN, SSL, MYSQL) libidn 0.5.4 OpenSSL 0.9.7c 30 Sep 2003 mysql Ver 12.22 Distrib 4.0.20, for sun-solaris2.9 (sparc) 101 Users Registered Average Roster Size is 45 JID's 1st Problem Description: Presence problems are being reported across all users, some subscriptions are not showing presence or always pending. 2nd Problem Description: 4 Users are using the Exodus 0.9.0.0 Client and lose their rosters every time they login and have to re-create them. Problem 1 appeared to take care of itself when I updated to JabberD 2.0s6 this morning. The presence information between myself and several other users are working again the way we would expect such to. Problem 2 is not resolved. At this time we have found that the rosters they generated before the JabberD update were not writing to the MySQL database. Now after we flush the user information for the particular use from the database they write out again to the tables. It appears to be independent of the client because if he uses another users client his list does not come up there either. I am curious what this bug is really about and if it causes a problem on the server: http://jabberstudio.org/projects/exodus/bugs/view.php?id=479 And I am curious if the SM or C2S may be part of the problem as I have come across some possibilities at: http://www.marquard.net/jabber Also I read an interesting item which makes me wonder if the server is not connecting to the MySQL DB and addressing the DB properly as in: http://jabberstudio.org/projects/jabberd2/bugs/view.php?id=4666 Thinking about MySQL, the DB had not been restarted so I did. (Brought JabberD down, the MySQL down, MySQL up, JabberD up) Now the roster-items.MYI file is in use can not be accessed by MySQL No one has rosters! Brought everything back down again. Checking the tables showed. ===================MySQL Check========================== root@jabber-node1:26>myisamchk *.MYI Checking MyISAM file: active.MYI Data records: 95 Deleted blocks: 0 myisamchk: warning: 4 clients are using or haven't closed the table properly ... MyISAM-table 'active.MYI' is usable but should be fixed --------- Checking MyISAM file: authreg.MYI Data records: 101 Deleted blocks: 0 myisamchk: warning: 3 clients are using or haven't closed the table properly ... MyISAM-table 'authreg.MYI' is usable but should be fixed --------- Checking MyISAM file: disco-items.MYI Data records: 0 Deleted blocks: 0 --------- Checking MyISAM file: logout.MYI Data records: 96 Deleted blocks: 0 myisamchk: warning: 3 clients are using or haven't closed the table properly ... MyISAM-table 'logout.MYI' is usable but should be fixed --------- Checking MyISAM file: motd-message.MYI Data records: 1 Deleted blocks: 0 --------- Checking MyISAM file: motd-times.MYI Data records: 61 Deleted blocks: 0 --------- Checking MyISAM file: privacy-default.MYI Data records: 2 Deleted blocks: 0 --------- Checking MyISAM file: privacy-items.MYI Data records: 2 Deleted blocks: 0 --------- Checking MyISAM file: private.MYI Data records: 3 Deleted blocks: 0 myisamchk: warning: 1 client is using or hasn't closed the table properly ... MyISAM-table 'private.MYI' is usable but should be fixed --------- Checking MyISAM file: queue.MYI Data records: 7 Deleted blocks: 205 myisamchk: warning: 1 client is using or hasn't closed the table properly ... MyISAM-table 'queue.MYI' is usable but should be fixed --------- Checking MyISAM file: roster-groups.MYI Data records: 2109 Deleted blocks: 20 myisamchk: warning: 2 clients are using or haven't closed the table properly ... MyISAM-table 'roster-groups.MYI' is usable but should be fixed --------- Checking MyISAM file: roster-items.MYI Data records: 1884 Deleted blocks: 180 myisamchk: warning: Table is marked as crashed myisamchk: warning: 2 clients are using or haven't closed the table properly - check file-size myisamchk: warning: Size of datafile is: 266952 Should be: 266860 - check record delete-chain - check key delete-chain - check index reference - check data record references index: 1 myisamchk: error: Can't read key from filepos: 51200 - check record links myisamchk: error: Record-count is not ok; is 1885 Should be: 1884 myisamchk: warning: Found 2817 parts Should be: 2816 parts MyISAM-table 'roster-items.MYI' is corrupted Fix it using switch "-r" or "-o" --------- Checking MyISAM file: vacation-settings.MYI Data records: 0 Deleted blocks: 0 ... --------- Checking MyISAM file: vcard.MYI Data records: 11 Deleted blocks: 0 myisamchk: warning: 2 clients are using or haven't closed the table properly ... MyISAM-table 'vcard.MYI' is usable but should be fixed Preformed the repair on the appropriate tables with the myisamchk -r -q command root@jabber-node1:35>myisamchk *.MYI Checking MyISAM file: active.MYI Data records: 95 Deleted blocks: 0 - check file-size - check record delete-chain - check key delete-chain - check index reference - check data record references index: 1 - check data record references index: 2 - check record links --------- Checking MyISAM file: authreg.MYI Data records: 101 Deleted blocks: 0 - check file-size - check record delete-chain - check key delete-chain - check index reference - check record links --------- Checking MyISAM file: disco-items.MYI Data records: 0 Deleted blocks: 0 - check file-size - check record delete-chain - check key delete-chain - check index reference - check data record references index: 1 - check record links --------- Checking MyISAM file: logout.MYI Data records: 96 Deleted blocks: 0 - check file-size - check record delete-chain - check key delete-chain - check index reference - check data record references index: 1 - check data record references index: 2 - check record links --------- Checking MyISAM file: motd-message.MYI Data records: 1 Deleted blocks: 0 - check file-size - check record delete-chain - check key delete-chain - check index reference - check data record references index: 1 - check data record references index: 2 - check record links --------- Checking MyISAM file: motd-times.MYI Data records: 61 Deleted blocks: 0 - check file-size - check record delete-chain - check key delete-chain - check index reference - check data record references index: 1 - check data record references index: 2 - check record links --------- Checking MyISAM file: privacy-default.MYI Data records: 2 Deleted blocks: 0 - check file-size - check record delete-chain - check key delete-chain - check index reference - check data record references index: 1 - check data record references index: 2 - check record links --------- Checking MyISAM file: privacy-items.MYI Data records: 2 Deleted blocks: 0 - check file-size - check record delete-chain - check key delete-chain - check index reference - check data record references index: 1 - check record links --------- Checking MyISAM file: private.MYI Data records: 3 Deleted blocks: 0 - check file-size - check record delete-chain - check key delete-chain - check index reference - check data record references index: 1 - check record links --------- Checking MyISAM file: queue.MYI Data records: 7 Deleted blocks: 205 - check file-size - check record delete-chain - check key delete-chain - check index reference - check data record references index: 1 - check record links --------- Checking MyISAM file: roster-groups.MYI Data records: 2109 Deleted blocks: 20 - check file-size - check record delete-chain - check key delete-chain - check index reference - check data record references index: 1 - check record links --------- Checking MyISAM file: roster-items.MYI Data records: 1885 Deleted blocks: 180 - check file-size - check record delete-chain - check key delete-chain - check index reference - check data record references index: 1 - check record links --------- Checking MyISAM file: vacation-settings.MYI Data records: 0 Deleted blocks: 0 - check file-size - check record delete-chain - check key delete-chain - check index reference - check data record references index: 1 - check record links --------- Checking MyISAM file: vcard.MYI Data records: 11 Deleted blocks: 0 - check file-size - check record delete-chain - check key delete-chain - check index reference - check data record references index: 1 - check data record references index: 2 - check record links root@jabber-node1:36> ================End of MySQL Check======================= Everyone has rosters again except for those 4 people who I guess were victims of the corruptions. It also appears that now any of our Exodus clients greater than 0.9.0.0 can not use the JUD search tool now. But then again we only support 0.9.0.0 in our environment right now as our client software. Is there any possibility this could be caused by exodus, a combination, or is it completely dependent on the server? If so is there a bug for this already or feature request? Client connections are not closing out properly...is my final theory, but where. I am sorry I don't have debug enabled on my server otherwise I would run it for you all. Any advice from other Jabber Administrators? Developers? Exodus Developers? Branders?