threema-web icon indicating copy to clipboard operation
threema-web copied to clipboard

Reliable Reconnection

Open lgrahl opened this issue 5 years ago • 1 comments

This is an umbrella issue that tracks known issues related to reconnection attempts which need resolving before we can release the reconnect overhaul code introduced by #792. The rationale here is that the multiple pushes trigger race conditions in both the iOS and the Android app (which is good because at least we can now reproduce them better).

This issue is not intended for discussion. If you encounter further issues you suspect are not listed here or you have new insights, please file a new issue.

Threema Web

  • [x] #799: Investigate why it causes these UI issues (PR: #803)
  • [x] #812, #818: Issues with the state machine (also, orange bar phenomenon when there's no internet connection).
  • [ ] Re-apply multi-push solution

SaltyRTC Server

  • [ ] https://github.com/saltyrtc/saltyrtc-server-python/pull/114: Fix path duplication
  • [ ] Deploy

SaltyRTC Client JS

  • [x] https://github.com/saltyrtc/saltyrtc-client-js/issues/114: Handle multiple responders.
  • [x] Release and integrate into Threema Web.

SaltyRTC Client Java

  • [x] https://github.com/saltyrtc/saltyrtc-client-java/issues/102: Potential protocol error during handshake.
  • [x] https://github.com/saltyrtc/saltyrtc-client-java/issues/99: Potential protocol errors when relaying failed.
  • [x] Release and integrate into Android App.

SaltyRTC Client Rust

  • [x] https://github.com/saltyrtc/saltyrtc-client-rs/pull/59: Ignore unknown responder.
  • [ ] https://github.com/saltyrtc/saltyrtc-client-rs/issues/61: Handle multiple responders.
  • [ ] Release and integrate into iOS App.

Android App

  • [x] Must not establish multiple SaltyRTC connections of the same session (internal: ANDR-909).
  • [x] Must not wait until a previous SaltyRTC connection has been stopped / a timer fired when the affiliation id of the push (wca) is different. It should discard the connection and restart the web client session immediately (internal: ANDR-908).
  • [x] Must ignore pushes with the same affiliation id (wca) when it is already connected or currently establishing a connection with that id (internal: ANDR-909).
  • [x] Must not ignore pending wakeups (internal: ANDR-914).
  • [ ] Wakeup must work properly (state handling refactoring).
  • [ ] Release.

iOS App

  • [x] Must not wait until a previous SaltyRTC connection has been stopped / a timer fired when the affiliation id of the push (wca) is different. It should discard the connection and restart the web client session immediately (internal: IOS-751).
  • [x] Must ignore pushes with the same affiliation id (wca) when it is already connected or currently establishing a connection with that id (internal: IOS-751).
  • [ ] Release.

lgrahl avatar May 13 '19 10:05 lgrahl

Just wanted to let everyone know that we've resolved a couple of race conditions in the Android app that resulted in reconnect attempts being ignored. Should be in the next release.

lgrahl avatar Aug 21 '19 15:08 lgrahl