Getting "An error occurred" when creating conferences

We are running Openfire 4.1.6 on Ubuntu 16.04.4 LTS, clients are Spark 2.8.3. ~140 active users.

We have an intermittent issue where users receive “An error occurred” when attempting to either manually create a new conference room or when they attempt to convert a conversation into a conference. The issue typically impacts no more than 4 users at a time. Previously restarting the service would clear it for a few days, then it became rebooting the server. Now a server reboot will clear it for some, but not all.

Room creation permissions are set to allow all users to create a chat room. We are logging room conversations.

I don’t see any errors in the logs when the user attempts to create the room, but almost immediately, there is an entry in Info log showing the room has been removed.

The following is logged in the local PC’s Spark log:

Apr 19, 2018 8:07:02 AM org.jitsi.util.Logger info
INFO: Failed to initialize LibJitsi backend org.jitsi.impl.libjitsi.LibJitsiOSGiImpl. (Exception stack trace follows.) Will try an alternative.
java.lang.IllegalStateException: FrameworkUtil.getBundle
at org.jitsi.impl.libjitsi.LibJitsiOSGiImpl.(LibJitsiOSGiImpl.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.jitsi.service.libjitsi.LibJitsi.start(LibJitsi.java:247)
at org.jitsi.service.libjitsi.LibJitsi.start(LibJitsi.java:180)
at org.jivesoftware.sparkimpl.preference.media.MediaPreferencePanel.scanDevices(MediaPreferencePanel.java:133)
at org.jivesoftware.sparkimpl.preference.media.MediaPreferencePanel.(MediaPreferencePanel.java:98)
at org.jivesoftware.sparkimpl.preference.media.MediaPreference.(MediaPreference.java:29)
at org.jivesoftware.spark.preference.PreferenceManager.(PreferenceManager.java:51)
at org.jivesoftware.spark.SparkManager.getPreferenceManager(SparkManager.java:162)
at org.jivesoftware.spark.filetransfer.SparkTransferManager.(SparkTransferManager.java:204)
at org.jivesoftware.spark.filetransfer.SparkTransferManager.getInstance(SparkTransferManager.java:128)
at org.jivesoftware.spark.Workspace.buildLayout(Workspace.java:212)
at org.jivesoftware.LoginDialog.lambda$startSpark$1(LoginDialog.java:1326)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

This is after uninstalling and reinstalling Spark. The openfire service has been restarted and the server itself has been restarted.

I have cleared first the spark.properties file, then the entire directory of roaming\spark on the impacted machine to no avail. Then a reinstall. A java upgrade was also fruitless.

Any assistance would be greatly appreciated.

Based on how it gets worse with time, I would suspect server issue, even if no relevant errors are logged. It is known that having lots of rooms with history can be problematic and memory heavy with Openfire. You can try updating Openfire. You can also try another client on affected machine/user once it starts failing in Spark. To see if it’s a client issue.

An interesting thing I’ve noticed with the issue is that I can log off the impacted user in spark and login with a working user, and I can create conferences on the same machine in the same windows login. If I login with a broken user on a different machine, it still won’t create the conference.

So, a user is somehow locked from creating rooms on the server. You can still try a different client with the same non-working user, when it happens.

I’ve attempted that with the same results. It’s super odd. I can login on a test machine with a non-working user and I still can’t create a conference. If I logon with my account on the test machine, it works fine. I even spun up a fresh VM and tried it with the same results.

Any thoughts?

What i meant by different client is not Spark (Psi, Pidgin, etc.). Though i feel it will produce the same result and this seems like Openfire issue to me. Btw, if you eventually would want to move it to Openfire Support, just edit the tags below the title.

Roger that. Moved it to openfire support. I’ll see if I can test with pidgin, but all of my test accounts are working. As luck would have it, it’s only end-users that are currently impacted.

Finally upgraded to 4.2.3 and issue is persisting. The two errors in the logs are:

Apr 24, 2018 9:30:51 PM org.jitsi.util.Logger info
INFO: Failed to initialize LibJitsi backend org.jitsi.impl.libjitsi.LibJitsiOSGiImpl. (Exception stack trace follows.) Will try an alternative.
java.lang.IllegalStateException: FrameworkUtil.getBundle
at org.jitsi.impl.libjitsi.LibJitsiOSGiImpl.(LibJitsiOSGiImpl.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.jitsi.service.libjitsi.LibJitsi.start(LibJitsi.java:247)
at org.jitsi.service.libjitsi.LibJitsi.start(LibJitsi.java:180)
at org.jivesoftware.sparkimpl.preference.media.MediaPreferencePanel.scanDevices(MediaPreferencePanel.java:133)
at org.jivesoftware.sparkimpl.preference.media.MediaPreferencePanel.(MediaPreferencePanel.java:98)
at org.jivesoftware.sparkimpl.preference.media.MediaPreference.(MediaPreference.java:29)
at org.jivesoftware.spark.preference.PreferenceManager.(PreferenceManager.java:51)
at org.jivesoftware.spark.SparkManager.getPreferenceManager(SparkManager.java:162)
at org.jivesoftware.spark.filetransfer.SparkTransferManager.(SparkTransferManager.java:204)
at org.jivesoftware.spark.filetransfer.SparkTransferManager.getInstance(SparkTransferManager.java:128)
at org.jivesoftware.spark.Workspace.buildLayout(Workspace.java:212)
at org.jivesoftware.LoginDialog.lambda$startSpark$1(LoginDialog.java:1326)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

and

Apr 24, 2018 9:30:54 PM org.jitsi.util.Logger info
INFO: GatherEntropy got: 88200 bytes
Exception in thread “Timer-0” java.lang.NumberFormatException: For input string: "5 "
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at org.jivesoftware.sparkimpl.settings.local.LocalPreferences.getIdleTime(LocalPreferences.java:251)
at org.jivesoftware.sparkimpl.plugin.idle.UserIdlePlugin.run(UserIdlePlugin.java:150)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)

Any help would be most greatly appreciated.

What about trying with another client other than Spark? Also, check Openfire logs. Spark logs provided seems not to be related and are of type INFO, which shouldn’t cause real problems.

Interesting.

Using Pidgin I am able to create conferences with a non-functional test account.

I login to spark and try and no dice. Still not seeing anything in the server logs aside from seeing a message like this immediately after Spark throws “An error occurred”:

2018.04.25 08:43:03 org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl - removing chat room:etestman_7vn|org.jivesoftware.openfire.muc.spi.LocalMUCRoom

Pretty sure that’s just the normal cleanup routine for empty rooms. It’s all over the info.log for different ad hoc conferences.

Well, if it works with Pidgin, then it might be a Spark issue or maybe still Openfire’s, but somehow affecting only Spark. Have no further ideas. Other than maybe trying with more clients or test more with Pidgin. Maybe it was a coincidence it worked with Pidgin.

Ok. So I have noticed the following when running debugging in Spark.

<iq type="error" id="73TfN-2733" from="etestman_urg@conference.domain.com" to="etestman@domain.com/Spark"><query xmlns="http://jabber.org/protocol/disco#info"></query><error code="404" type="cancel"><item-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></iq>
<presence to="etestman@domain.com/Spark" id="73TfN-2735" 

from="etestman_urg@conference.domain.com/Eduardo Testman"><c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="http://www.igniterealtime.org/projects/smack" ver="TJuVIXqTCVfJSthaPu4MtTbaf9A="></c><x xmlns="http://jabber.org/protocol/muc#user"><item jid="etestman@domain.com/Spark" affiliation="owner" role="moderator"/></x></presence>

This is in the Raw Received Packets log. A quick google search shows that it may be an issue with Spark not properly broadcasting presence? Does it seem like I’m on the right track with that?

Maybe, or maybe this is just an error about not being able to find a room you are trying to connect to, because it wasn’t created actually. Anyway, this needs a good developer to understand what is happening and i’m not a dev and sadly Spark doesn’t have dedicated developer for a long time (only occasional contributors).

Shucks. Alright. I appreciate all your help.