Messages Not Being Delivered To Users

Yes. At the time, only a few people reported the problem. It appears to be everyone though. Most just weren’t noticing that they weren’t receiving their messages. Once I brought it up to everyone, everyone seems to be having the same issue.
Again, some of this news came in while I was sick, so I haven’t confirmed it yet. I have enabled the monitoring plugin again so I can capture some messages and check with individual users to see if they received every message that the server received. Unless the messages are logged in another location that I can get the messages, the Monitoring plugin is the only way I know of to check this.

Today I looked in the Program Files (x86)\Spark\logs\error.log file and saw this:

Feb 24, 2021 5:17:30 PM org.jivesoftware.spark.util.log.Log error
SEVERE: 
javax.crypto.IllegalBlockSizeException: Input length must be multiple of 8 when decrypting with padded cipher
	at com.sun.crypto.provider.CipherCore.prepareInputBuffer(CipherCore.java:1005)
	at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:848)
	at com.sun.crypto.provider.DESedeCipher.engineDoFinal(DESedeCipher.java:294)
	at javax.crypto.Cipher.doFinal(Cipher.java:2164)
	at org.jivesoftware.spark.util.Encryptor.decryptOrThrow(Encryptor.java:74)
	at org.jivesoftware.spark.util.Encryptor.decrypt(Encryptor.java:62)
	at org.jivesoftware.sparkimpl.settings.local.LocalPreferences.lambda$findPropertyNamesForStoredPasswords$2(LocalPreferences.java:222)
	at java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
	at java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
	at java.util.Iterator.forEachRemaining(Unknown Source)
	at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Unknown Source)
	at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
	at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
	at java.util.stream.ReferencePipeline.collect(Unknown Source)
	at org.jivesoftware.sparkimpl.settings.local.LocalPreferences.findPropertyNamesForStoredPasswords(LocalPreferences.java:238)
	at org.jivesoftware.sparkimpl.settings.local.LocalPreferences.hasStoredPasswords(LocalPreferences.java:192)
	at org.jivesoftware.spark.ui.login.SecurityLoginSettingsPanel.<init>(SecurityLoginSettingsPanel.java:83)
	at org.jivesoftware.spark.ui.login.LoginSettingDialog.<init>(LoginSettingDialog.java:59)
	at org.jivesoftware.LoginDialog$LoginPanel.actionPerformed(LoginDialog.java:748)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at com.jtattoo.plaf.BaseButtonListener.mouseReleased(BaseButtonListener.java:65)
	at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(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.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.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)


Any clue what this means? Could this have anything to do with the messages not being delivered?

Also, back to the possibility of a Spark bug. When the Chat window is closed, the next message a person sends will be received and shown in the new chat window. If that window is left open, it seems that all messages are received but only some are shown. In the debug window, all messages are showing as received, just some are not showing in the chat window.

Just an update to my original post. After watching the logs in Openfire and Spark for several days now, I have concluded that this is a problem with Spark itself and not Openfire. All messages are logged in Openfire and showing in the Monitoring Plugin. Also, on the end machines, all messages are being listed in the debugger as received, just not showing in the IM/Chat interface. Some messages seem to get through, but not all.
Our server is 4.6.2 and the current Spark version on all but my machine is 2.9.4. On my machine, I have reverted to 2.9.3 and the issue seems to have disappeared. Tonight I am going to push out 2.9.3 to the rest of the machine and see if this resolves the issue for the rest of the users. I’ll update later once I see the results.

Is there anyone that can change the tag for this post from Openfire to Spark?

Thanks

I have moved it to Spark Support section.

In 2.9.4 i can only see

  • [SPARK-1160] - Replace deprecated methods
  • [SPARK-1469] - Code Cleanup
    As might have something to do with this. But this will require a good Java developer with Spark code knowledge to figure out. Which we don’t have now.
1 Like

I have been using Spark 2.9.4 for over 4 months on 250 users. I have not observed such a problem.

Update. Reverted everyone to to the previous version of Spark and the problem is gone. Like I said messages were being delivered to the target, but not showing in the chat screen. Still seems random, but moving everyone back to the last version seems to have fixed the issue. Wish I knew about programming to help. I still have 5 VM’s running the current for testing… I wanna figure it out as well, sadly have 0 programming experience. Someone tell me what logs to enable or watch. This bug needs to be found and squashed.

You’re lucky… I have 90 users at my current site that were having this issue until I reverted them all to 2.9.3. Messages stopped being missed and everything has been working as intended.

Before updating, I delete from the% appdata% \ Spark \ folder except for “user”
Can you do the same on some computers for testing? Perhaps this bug is related to this.

I would expect this can be required when going from 2.8 version to 2.9, but not from 2.9.3 to 2.9.4. Also, as we had similar issue already (not showing incoming offline messages), i suspect this is a bug in Spark. But we can’t reproduce it easily.

By the way, I once saw this: the user wrote to me, I got a window with it, but there was no message, I saw the text of the message on the Openfire server, but after reconnecting I was able to see this message.
This was probably the only time this bug happened.

and then I had Spark 2.9.5 installed.

I found this message! at this time, this appeared in the Spark logs:

WARNING: A chat entry appears to have been delivered out of order. The transcript window must be reordered!
мар 12, 2021 11:03:38 AM org.jivesoftware.spark.util.log.Log warning
WARNING: A chat entry appears to have been delivered out of order. The transcript window must be reordered!
мар 12, 2021 11:03:38 AM org.jivesoftware.spark.util.log.Log warning
WARNING: A chat entry appears to have been delivered out of order. The transcript window must be reordered!
мар 12, 2021 11:03:38 AM org.jivesoftware.spark.util.log.Log warning

@R87A Arthur, please look at this bug when you have time

This warning is very old and is showing in the log for many years now.

I have noticed this happen before, though mostly, there would be no window or anything indicating a new message. However if the debugger was running, the message has however been received just not actually shown to the user.
I had gone through and removed every trace of Spark on my, and several other machines that I have quick access to, including the entire Users"USERNAME"\AppData\Roaming\Spark folder, allowing it to be rebuilt on installation. This did nothing. The same issue was there.
Now that we have reverted to 2.9.3, the problem has completely disappeared. Hopefully a Java Dev can pick this up and figure out what is going on. 2.9.3 will work fine for us though.

I’m observing this same behavior myself. It’s only been happening recently, since I pushed out the 2.9.4 upgrade a few weeks ago.

It only seems to happen on the first message of a conversation. After the receiver sends a message back, and keeps the window open, everything is fine. Once the window is closed, and another message is sent, it does it again.

Perhaps tomorrow I’ll revert to 2.9.3, and see if that fixes the problem.

1 Like

Absolutely. We went back down to 2.9.3 and have had 0 problems. I have yet to test 3.0.0 release, but 2.9.3 works perfectly for us.

Unfortunately, it looks like that won’t be possible for us. When I revert back to 2.9.3, I start running into this problem: https://discourse.igniterealtime.org/t/certificate-have-no-basic-constraints-error-using-spark-2-9-3/89025

Our cert is issued from LetsEncrypt, the intermediate is there, date and name are good. This is what prompted the upgrade in the first place. Whole separate issue though.

This is frustrating.

If you use Spark on an internal network, you can disable ssl on the openfire server

Figured that there was no ticket created for this yet. [SPARK-2230] Delivered messages are not being shown in the chat window - Ignite Realtime Jira

Actually, i remember now having similar issue in not yet released 2.7.0 version 5 years ago, which was finally fixed by someone. Spark seems to be cursed with this :slight_smile:

1 Like