Spark 2.9.0 after reconnecting, some users change their status to red

After reconnecting network, some users change their status to red.
And the second problem: After reconnecting the network, copies may appear in the list.

update:
If the user was online, after reconnection, a copy of him in the list is created.


log from Spark:

рту 05, 2020 3:29:49 PM org.jivesoftware.spark.util.log.Log warning
WARNING: PrivacyManager#ensureGloballyInvisibleListExists: Could not create PrivacyList invisible
org.jivesoftware.smack.SmackException$NotConnectedException: The connection XMPPTCPConnection[testuser2@srv-chat.coleman.local/SERVER] (0) is no longer connected. done=true smResumptionPossible=false
	at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketWriter.throwNotConnectedExceptionIfDoneAndResumptionNotPossible(XMPPTCPConnection.java:1439)
	at org.jivesoftware.smack.tcp.XMPPTCPConnection.throwNotConnectedExceptionIfAppropriate(XMPPTCPConnection.java:374)
	at org.jivesoftware.smack.AbstractXMPPConnection.sendStanza(AbstractXMPPConnection.java:720)
	at org.jivesoftware.smack.AbstractXMPPConnection.createStanzaCollectorAndSend(AbstractXMPPConnection.java:844)
	at org.jivesoftware.smack.AbstractXMPPConnection.createStanzaCollectorAndSend(AbstractXMPPConnection.java:830)
	at org.jivesoftware.smackx.privacy.PrivacyListManager.setRequest(PrivacyListManager.java:255)
	at org.jivesoftware.smackx.privacy.PrivacyListManager.updatePrivacyList(PrivacyListManager.java:528)
	at org.jivesoftware.smackx.privacy.PrivacyListManager.createPrivacyList(PrivacyListManager.java:507)
	at org.jivesoftware.sparkimpl.plugin.privacy.PrivacyManager.ensureGloballyInvisibleListExists(PrivacyManager.java:501)
	at org.jivesoftware.sparkimpl.plugin.privacy.PrivacyManager.goToInvisible(PrivacyManager.java:418)
	at org.jivesoftware.spark.ui.status.StatusBar$1.doRun(StatusBar.java:145)
	at org.jivesoftware.spark.util.SwingTimerTask.run(SwingTimerTask.java:32)
	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)

Woooow!I reconnected to the network twice and now
what came of it:

How exactly did you create this scenario? Did you disconnect and reconnect to a wifi network? How long were you disconnected?

Duplicating seems similar to https://issues.igniterealtime.org/browse/SPARK-1628 but in your case they are online.

I tested in different scenarios and the result is the same everywhere. I was pulling out internet cables. I turned off the Internet adapter in the virtual machine. And also, when connecting via VPN, I turned off the VPN and thereby cut the connection.

I forgot to say that I set the following Contacts settings:
-Show empty groups
-Show offline users

and here are screenshots of how it all happens:
Screenshot_539


I installed Spark 2.9.0 build 513 April 22, 2018 (Smack 4.1.9) and it works fine when reconnecting to the network.
If i installed Spark 2.9.0 Oct 16, 2018(Smack 4.3.1) and it don’t and my connection was closed.
image

Unfortunately I no longer have Spark 2.9.0 builds.
But I think that the user list broke after the Smack 4.3.X update

I have created a new ticket for this and linked to the old one. This seems different enough and new https://issues.igniterealtime.org/browse/SPARK-2143
I also saw similar effect when turning off network in a VM with Spark, when it was then reconnecting.

I didn’t expect Spark 2.9.0 to come out so soon. Many thanks to the members of IgniteRealtime.
But the issue https://issues.igniterealtime.org/browse/SPARK-2143 is unfortunately not resolved, so I can’t use stable Spark 2.9.0.
Please pay attention to this problem.

hi, hasn’t anyone faced this problem anymore in spark 2.9.0, 2.9.1 and 2.9.2? :grinning:

R87A provided a fix for this in https://github.com/igniterealtime/Spark/pull/535
Can you test with this build ans see if that fixes the issue? https://bamboo.igniterealtime.org/browse/SPARK-NIGHTLY-1501/artifact/shared/Install4j-generated-media/
In my test when it reconnects online users turn red, but after a reconnect they are not red anymore and i see no duplication. But i have only a few users.

I’m not sure if that red thing really should disappear during a reconnection. It does disappear after a few seconds when user normally goes offline. So maybe it should do the same during the reconnection. But i think this is not a huge issue if they are not staying red after a reconnect.

The only side effect i have noticed, that it doesn’t switch back to online after reconnect and is stuck in Away status and you have to switch it to Online manually.

That’s cool!

But I noticed a few nasty things:

  1. When disconnected, users turn red, but in the dialog I still see the last user status before losing connection (green / yellow / red / gray)
  2. If I write to a person who has lost connection, then the tabs with this person will double. And if I write a lot of messages, then there will be many tabs.
  3. The status “writing” if I wrote to a person after reconnection does not disappear.
  4. After reconnection, the list box is always on top of the dialog box.
    5.When I lose connection there should be 0 users online in groups, but their number does not change.


When I read this feedback, I could not understand how correcting duplicate contacts could lead to such dire consequences (a lot of tabs).
After experimenting with running the Spark builds without the latest changes, I realized that the issue was not the latest update. Things went wrong after fixing [SPARK-2153] (https://issues.igniterealtime.org/browse/SPARK-2153).
There were fixed private messages in group chat, but the usual one-to-one was broken.
Will keep working on it.
Thanks to ilyaHlevnoy for testing and feedback.

2 Likes

Thank you very much for developing Spark! I would be happy to test nightly builds. :slightly_smiling_face:

I see, i didn’t catch that side effect. Didn’t try to send more than one message to someone :slight_smile:

When the electricity goes back and forth, when the server is disconnected and reconnected, there are 2 people in the list. The program must be closed and reopened to fix this problem.

I see this problem as well and was just on my way here to report it when I saw this thread. Will be watching :slight_smile:

2, 3 and 5 should be fixed in this build https://bamboo.igniterealtime.org/browse/SPARK-NIGHTLY-1505/artifact/shared/Install4j-generated-media/
Please explain 4 better. Me and R87A don’t quite understand it (but maybe it was also fixed, please test first).

  1. will be tracked separately as [SPARK-2174] - Ignite Realtime Jira

I checked.
Clauses 2, 3, 5 have been corrected.
Thank you very much! :blush:

In clause 4, this is what I mean:
If I had a dialog box and a contact list open, then after reconnecting the contact list will always be on top of the dialog box or dialog box always behind…
But if I close the dialog after reconnecting and reopen it then it will work fine.

I was not able to reproduce this initially. But after a reconnect i have tried to enable Always on top for the roster window and disabled again and then i saw the same issue you showed.