#18 Driver UI gets 'stuck' in "Verifying Paddle" screen

Zamknięty
otworzone 5 lat temu przez clementinecomputing · 2 komentarzy

Under certain conditions, the driver UI (DIU UI) get's into a screen called 'Verifying Paddle' and never gets out.

Steps to reproduce:

  • Start the login process through the UI, entering a driver ID and pass code
  • Before entering a paddle, go into the system and kill client_supervisor
  • Wait till client_supervisor respawns
  • Through the UI, enter a paddle
Under certain conditions, the driver UI (DIU UI) get's into a screen called 'Verifying Paddle' and never gets out. Steps to reproduce: * Start the login process through the UI, entering a driver ID and pass code * Before entering a paddle, go into the system and kill `client_supervisor` * Wait till `client_supervisor` respawns * Through the UI, enter a paddle
clementinecomputing skomentował 5 lat temu
Właściciel
priority high
estimate 2 work units

Further information:

  • When client_supervisor restarts, diu_minder also restarts and re-establishes the websocket connection to the UI
  • The websocket connection is reporting a successful sent message but never getting an 'ok'

Looking at it now, the problem is probably that the _ws_process function is never re-registered to the new websocket when the connection is re-established. I'll have to confirm but this looks like the most likely culprit.

Some other points:

  • The "verifying" screens should have both a 'cancel' (perhaps after some amount of time) and a timeout so that they don't get into an unrecoverable state
| | | |---|---| | priority | high | | estimate | 2 work units | Further information: * When `client_supervisor` restarts, `diu_minder` also restarts and re-establishes the websocket connection to the UI * The websocket connection is reporting a successful sent message but never getting an 'ok' Looking at it now, the problem is probably that the `_ws_process` function is never re-registered to the new websocket when the connection is re-established. I'll have to confirm but this looks like the most likely culprit. Some other points: * The "verifying" screens should have both a 'cancel' (perhaps after some amount of time) and a timeout so that they don't get into an unrecoverable state
clementinecomputing wspomina ten problem w commicie 5 lat temu
clementinecomputing skomentował 5 lat temu
Właściciel

I opted to punt on the 'cancel' and 'verifying timeout'. This can be left for another ticket later.

The major issue was websocket connection, which should resolve the majority of the issue.

As a fall back, the diagnostic screen can be used if it get's stuck. Further, if the UI is stuck, presumably this is for a legitimate reason, so going to other screens won't do much good. In practice this may not be true so it'll be good to give some other fail safes in terms of 'cancel' and timeouts.

I opted to punt on the 'cancel' and 'verifying timeout'. This can be left for another ticket later. The major issue was websocket connection, which should resolve the majority of the issue. As a fall back, the diagnostic screen can be used if it get's stuck. Further, if the UI is stuck, presumably this is for a legitimate reason, so going to other screens won't do much good. In practice this may not be true so it'll be good to give some other fail safes in terms of 'cancel' and timeouts.
Zaloguj się, aby dołączyć do tej rozmowy.
Brak kamienia milowego
Brak przypisania
1 uczestników
Ładowanie...
Anuluj
Zapisz
Nie ma jeszcze treści.