Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1775755

Summary: Dashboard freezes if a non existing model is requested by some card
Product: OpenShift Container Platform Reporter: Samuel Padgett <spadgett>
Component: Management ConsoleAssignee: Rastislav Wagner <rawagner>
Status: CLOSED WONTFIX QA Contact: Yadan Pei <yapei>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 4.3.0CC: aos-bugs, jokerman, rawagner, spadgett, yapei
Target Milestone: ---   
Target Release: 4.3.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1769317 Environment:
Last Closed: 2019-12-02 20:31:56 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1769317    
Bug Blocks:    

Description Samuel Padgett 2019-11-22 17:32:26 UTC
+++ This bug was initially created as a clone of Bug #1769317 +++

We are using Firehose to watch resources See https://github.com/openshift/console/blob/master/frontend/public/components/dashboard/with-dashboard-resources.tsx#L161 . Every card is wrapped in withDashboardResources HOC which injects functions to watch URL, Prometheus and k8s resource. A card will use useEffect hook to call watchK8sResource(requested_resource) which will update withDashboardResources's state and updates Firehose's resources prop.

 

The problem is that if the component is watching only resource(s) which do not exist in the cluster (like ClusterVersion CRD on non-OpenShift) the Firehose will render null https://github.com/openshift/console/blob/master/frontend/public/components/utils/firehose.jsx#L245 which in turn will call Card's useEffect cleanup function which calls stopWatchK8sResources(requested_resource) - this will update withDashboardResources's state and Firehose's resources prop is set to empty array - Firehose will now render the Card (as every resource is loaded) and now the loop starts - Card is rendered and useEffect is called again - we are at the beginning.

Comment 1 Samuel Padgett 2019-12-02 20:31:56 UTC
I think we can fix in 4.4 and skip the backport since I'm not aware of any user-facing bug. We should not be requesting any resource that doesn't exist in an OpenShift 4.3 cluster. Rastislav, let me know if that's incorrect.

Comment 2 Rastislav Wagner 2019-12-03 08:08:56 UTC
That is correct, we dont have such a case in 4.3