metalk8s icon indicating copy to clipboard operation
metalk8s copied to clipboard

UI: auto-refresh of nodes and volumes is stopped after any API or Network error

Open JBWatenbergScality opened this issue 4 years ago • 1 comments

Component:

UI

What happened:

Nodes and volumes not refreshed automatically.

What was expected:

Nodes and volumes to be refreshed.

Steps to reproduce

  1. Log into MetalK8s ui
  2. Switch your computer to sleep mode
  3. The nodes and volumes do not get refreshed anymore

Resolution proposal:

The issue comes from https://github.com/scality/metalk8s/blob/development/2.9/ui/src/ducks/app/nodes.js#L466 and https://github.com/scality/metalk8s/blob/development/2.9/ui/src/ducks/app/volumes.js#L413. The UI currently deliberately stop polling the API as soon as an error occurred, no matter which kind of error.

  • Network error should be retried with an exponential backoff mechanism
  • If retry pattern fails a notification should be displayed to the user inviting him to retry fetching the data
  • When the user focus again the page the polling should be attempted again and the notification dismissed if it succeeds

JBWatenbergScality avatar Mar 26 '21 09:03 JBWatenbergScality

May be related to https://github.com/scality/metalk8s/issues/2035

Except this statement

if there is an error during fetchAlerts, we can just yield put({type: STOP_REFRESH_ALERTS}), to stop the refresh in the fetchAlerts saga

Which should be replaced by a retry pattern on 5xx errors and network errors, in addition with a new attempt to poll the API on user focus.

JBWatenbergScality avatar Mar 26 '21 10:03 JBWatenbergScality