Refresh loop possible in setOffset() -> refresh() ->setOffset() in onmsList code

Description

In the new Angular onmsList module pages (Minion and monitoring location lists), if you click too quickly on the "Next" button on the list and you have a large list of items then the page can get caught in an infinite refresh loop where it is trying to change the offset of the list to two separate values.

The symptom of this problem is that the list on the page and offset= in the address bar will oscillate between two sets of items and the browser will consume 100% of your CPU.

This is caused because the Next button calls setOffset() which triggers a refresh(). However, refresh() can call setOffset() in boundry conditions and if two overlapping calls happen:

A: setOffset() [Next button] A: refresh() B: setOffset() [Next button] A: setOffset() B: refresh() B: setOffset() A: refresh() ...

then you get an infinite loop.

Acceptance / Success Criteria

None

Lucidchart Diagrams

Activity

Show:

Seth Leger April 11, 2017 at 10:29 AM

PR merged, marking as fixed.

commit c659569a27d6ab1013d3279a8c4fc21f315f587b

Seth Leger January 28, 2016 at 2:55 PM

Just ran into this again when using the new scan report list.

Fixed

Details

Assignee

Reporter

Sprint

Fix versions

Affects versions

Priority

PagerDuty

Created August 7, 2015 at 10:50 AM
Updated April 11, 2017 at 2:28 PM
Resolved April 11, 2017 at 10:29 AM

Flag notifications