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

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.

@R87A this is probably also a separate issue with how Spark is handling Always on top setting. After a reconnect it probably fails to load something and decides that this setting is on.

This has been fixed. It was just that the reconnection event was not handled, the chat window and its controls did not return to their original state.

2 Likes

Maybe you have fixed the original problem. But i was testing on a final build and i tried to enable and disable Always on top and then this happened. Roster window was always on top. This was after a reconnect. Unless you are talking about a future fix.

Yes, this fix is commited to R87A:spark-2143, but PR is not created.

1 Like

@R87A Thank you for your contributions. We really appreciate it.

R87A provided another fix https://github.com/igniterealtime/Spark/pull/537
This can be tested in this build https://bamboo.igniterealtime.org/browse/SPARK-NIGHTLY-1507/artifact/shared/Install4j-generated-media/

Now icons in chat window turn gray when reconnection happens and also i don’t get an error with roster window being always on top.

Unfortunately i still get some side effects. I have idle time set to just 1 minute in my test VM, so it goes away fast enough when i test and wait for it to start reconnecting after i disable the network (it is not immediate in VM). So, it turns away before reconnecting. And when network is restored and it connects back it is getting stuck on Away, even if you move mouse.

Also, icon of contact in chat window stays gray after a reconnection. Should turn back to user’s current state. It turns green if you click on the chat window. But while it is not in focus, it still show offline icon.

It seems that reconnection logic in Spark is a complete mess and probably needs a complete rewrite at some point :smiley:

1 Like