Project

General

Profile

Actions

Bug #20449

closed

Background refresh tasks of "all processes" issues

Added by Peter Amstutz 12 months ago. Updated 11 months ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
Workbench2
Target version:
Story points:
-
Release relationship:
Auto

Description

Workbench 2 makes queries in the background to automatically refresh the display.

However, there are two issues:

a) It seems to be continuously refreshing the "All Processes" list even when the user is not at that panel, which is wasteful and slows down the app (and possibly is a memory leak)

b) More generally, the current behavior is that the top red bar cycles any time there is an outstanding AJAX request -- when the cluster is moderately busy, this causes the red spinner to just spin constantly, which makes it useless for the intended behavior of informing the user if the navigation action they performed has completed loading.

The spinner should only activate in response to deliberate user interactions such as navigation, paging, hitting "refresh" etc.

edit:

On further observation, this doesn't happen all the time. When it does happen it gets stuck in a tight loop of reloading containers and container requests. This definitely seems like a bug.

edit 2:

Looking at src/websocket/websocket.ts it looks like it fires off REQUEST_ITEMS to refresh for both the subprocesses panel and all processes panel any time it sees a create or update message related to a container request or container. It doesn't care what is actually on screen. So this should

  1. Only refresh all processes when that panel is in front
  2. Only refresh subprocesses when the visible process panel is the parent of the container that was updated
  3. Debounce refreshes so they are limited to once every 5 or 10 seconds

The odd thing is that I would expect this to be more of a problem but right now I'm looking at a cluster that is running a bunch of containers and nothing is being reloaded, which makes me question if websockets is actually working.

edit 3:

Tom suggested that maybe websockets isn't consistently setting its subscription to events when the application starts based on what route you are at, so that might explain why sometimes this happens and sometimes it doesn't.


Subtasks 1 (0 open1 closed)

Task #20502: Review 20449-processes-refreshResolvedStephen Smith06/01/2023Actions

Related issues

Related to Arvados - Bug #20507: Fix websocket serviceResolvedTom CleggActions
Actions

Also available in: Atom PDF