Incorrect cyrillic symbols in history

Hello, I have a problem with an OpenFire server (version 3.9.3, runs on CentOS 6.5, RDBMS is MySQL, Java version 1.7.0_55 Oracle Corporation – Java HotSpot™ Server VM, appserver jetty/7.x.y-SNAPSHOT).

Every time server is restarted I get all cyrillic symbols in history converted to ???. And every time I see this in logs:

at java.security.AccessController.doPrivileged(Native Method)  at java.net.URLClassLoader.findClass(URLClassLoader.java:354)          at java.lang.ClassLoader.loadClass(ClassLoader.java:425)          at java.lang.ClassLoader.loadClass(ClassLoader.java:358)      at org.jivesoftware.openfire.container.PluginManager.loadPlugin(PluginManager.java:420)      at org.jivesoftware.openfire.container.PluginManager.access$300(PluginManager.java:80)      at org.jivesoftware.openfire.container.PluginManager$PluginMonitor.run(PluginManager.java:1074)

(also get this

2014.09.06 14:11:47 org.jivesoftware.openfire.container.PluginManager - Error loading plugin: /opt/openfire/plugins/search
java.lang.ClassNotFoundException: org.jivesoftware.openfire.plugin.SearchPlugin

but this is not critical, just as part of an overall problem)

Which makes me think there is a problem with some lang support in Java module or something (sorry, I am not a java guy), which does not start with openfire boot. The strangest thing that I did not perform any Java or server update. This problem began after openfire process was killed by Linux OOM killer (not sure about this, but previous server restarts were good).

Any ideas?

iwakura wrote:

Every time server is restarted I get all cyrillic symbols in history converted to ???.

Where exactly you see symbols converted to ??? ? In a client (Spark?)? Or in message archives (Monitoring plugin)? If it’s a Spark, then maybe you should update to the latest version Log in as a Bamboo user - IgniteRealtime Bamboo ll4j/spark_2_7_0_665.exe

Other than that i don’t know what to suggest. Don’t know what these errors mean. Maybe your database got corrupted because of that reboot.

I and my users see this characters in the clients (gajim, spark (latest version), etc…). I did not install a monitoring plugin so I cannot say what encoding is stored there.

The log errors (like java.lang.ClassLoader.loadClass(ClassLoader.java:425))say that it’s a problem in Java. Any chance to get the answer from the developers?``

So, you say you see “?” instead of characters in the history of your clients, but only after the restart of the server? History is stored by a client locally (at least in Spark), so it can’t change after the server reboot. Unless you are not talking about the history, but about the actual messages coming. Then i still don’t understand. So it works ok for some time and then after you reboot the server it starts to show “?” when messages comes? So, after some time it starts to show characters normally again? Or does it show “?” all the time now after that kill of the server? If so, there still can be some corruption and database is not saving these messages in unicode.

I’m not a Java guy either, but this java.lang error might have no relation to the issue. MySQL is running on the same machine? So you have a backup of DB before the kill? Even if it’s old, you can stil ltry restoring it back to test if it works ok, to find out if it is a DB corruption of some sort.

Any chance to get the answer from the developers?``

Close to zero. There are no active developers here, just a few volunteers doing some stuff in their spare time.

Make a full backup and try to install Openfire again.(or unzip it in a new-user folder and copy openfire.xml and the certificates - then make sure the server is stopped before starting the new one). It should start without errors.

Actually nothing can break if you kill Openfire and restart it. You could run it on a read-only filesystem after setup - only logs and database are written. Maybe Openfire did drop an UTF-8 setting in openfire.xml.