Bug 1853705 - Deployment Config overview shows 'e is undefined' exception when new pod is starting up
Summary: Deployment Config overview shows 'e is undefined' exception when new pod is s...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: Management Console
Version: 4.5
Hardware: Unspecified
OS: Unspecified
medium
high
Target Milestone: ---
: 4.6.0
Assignee: ralpert
QA Contact: Yadan Pei
URL:
Whiteboard:
Depends On:
Blocks: 1857821
TreeView+ depends on / blocked
 
Reported: 2020-07-03 15:15 UTC by Jakub Schwan
Modified: 2020-10-27 16:12 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Cause: The cause was lack of handling for the 0 case. Consequence: This caused an error. Fix: 0 case handling was added. Result: The bug is fixed.
Clone Of:
Environment:
Last Closed: 2020-10-27 16:12:04 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
Record of reproducer (744.07 KB, video/webm)
2020-07-03 15:15 UTC, Jakub Schwan
no flags Details
Verification recording (4.80 MB, video/quicktime)
2020-07-17 06:39 UTC, XiaochuanWang
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Github openshift console pull 5818 0 None closed Add Jobs, CronJobs, and standalone Pods to topology view 2020-11-09 09:48:55 UTC
Red Hat Product Errata RHBA-2020:4196 0 None None None 2020-10-27 16:12:26 UTC

Description Jakub Schwan 2020-07-03 15:15:05 UTC
Created attachment 1699859 [details]
Record of reproducer

Description of problem:
Page for Deployment Config overview showed me 'e is undefined' exception, when I tried to access it, when a new pod was starting up. After some time, when the pod is started and running, Deployment Config is again available.
It's easier to reproducer on Deployment Config with "Recreate" strategy. (To see this issue with Rolling strategy I needed to have an issue in image so pod was failing)

Version-Release number of selected component (if applicable):
OpenShift Version
    4.5.0-rc.6
Kubernetes Version
    v1.18.3+6025c28

How reproducible:
Every time, with Deployment Config with Recreate strategy.

Steps to Reproduce:
1.Go to Deployment Config page and select one deployment.
2.Click on Start Rollout button.
3.After few moments the exception is displayed.

Note: It's easier to reproducer on Deployment Config with "Recreate" strategy. (To see this issue with Rolling strategy I needed to have an issue in image so pod was failing)

Actual results:
'e is undefined' exception is thrown

Expected results:
no exception


Additional info:

Comment 1 Jakub Schwan 2020-07-03 15:17:33 UTC
StackTrace of exception:

E/N<@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/main-chunk-417f9574d1da08c85e1f.min.js:1:840051
E@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/main-chunk-417f9574d1da08c85e1f.min.js:1:840135
t.a@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/main-chunk-417f9574d1da08c85e1f.min.js:1:699535
Fo@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/vendors~main-chunk-ad08a18433ffab6d64a8.min.js:136:55337
Ks@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/vendors~main-chunk-ad08a18433ffab6d64a8.min.js:136:98261
Bs@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/vendors~main-chunk-ad08a18433ffab6d64a8.min.js:136:84010
Ns@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/vendors~main-chunk-ad08a18433ffab6d64a8.min.js:136:81035
Ds@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/vendors~main-chunk-ad08a18433ffab6d64a8.min.js:136:79608
di/<@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/vendors~main-chunk-ad08a18433ffab6d64a8.min.js:136:41759
t.unstable_runWithPriority@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/vendors~main-chunk-ad08a18433ffab6d64a8.min.js:144:3878
li@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/vendors~main-chunk-ad08a18433ffab6d64a8.min.js:136:41488
di@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/vendors~main-chunk-ad08a18433ffab6d64a8.min.js:136:41707
pi@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/vendors~main-chunk-ad08a18433ffab6d64a8.min.js:136:41640
Is@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/vendors~main-chunk-ad08a18433ffab6d64a8.min.js:136:79935
notify@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/vendors~main-chunk-ad08a18433ffab6d64a8.min.js:23:75934
a</t.notifyNestedSubs@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/vendors~main-chunk-ad08a18433ffab6d64a8.min.js:23:75503
f</n.notifySubscribers@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/vendors~main-chunk-ad08a18433ffab6d64a8.min.js:65:2428
a</t.handleChangeWrapper@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/vendors~main-chunk-ad08a18433ffab6d64a8.min.js:23:75571
v@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/vendors~main-chunk-ad08a18433ffab6d64a8.min.js:17:122529
b/</</<@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/main-chunk-417f9574d1da08c85e1f.min.js:1:89823
dispatch@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/vendors~main-chunk-ad08a18433ffab6d64a8.min.js:17:126016
l/</</<@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/main-chunk-417f9574d1da08c85e1f.min.js:1:86218
l/</<@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/main-chunk-417f9574d1da08c85e1f.min.js:1:86204
a.prototype._invokeHandlers/<@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/main-chunk-417f9574d1da08c85e1f.min.js:1:381879
a.prototype._invokeHandlers@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/main-chunk-417f9574d1da08c85e1f.min.js:1:381854
a.prototype.flushMessageBuffer@https://console-openshift-console.apps.ocp45.rhba.openshift-aws.rhocf-dev.com/static/main-chunk-417f9574d1da08c85e1f.min.js:1:382768

Comment 2 Yadan Pei 2020-07-06 02:36:36 UTC
Reproduced the issue with steps on 4.5.0-rc.6

1. Create a DC with Recreate strategy
cat > dc.yaml << EOF
apiVersion: v1
kind: DeploymentConfig
metadata:
  labels:
    name: hello-openshift
  name: hooks
spec:
  replicas: 1
  revisionHistoryLimit: 2
  selector:
    name: hello-openshift
  strategy:
    recreateParams:
      mid:
        execNewPod:
          command:
          - /bin/bash
          - -c
          - /usr/bin/sleep 5
          containerName: hello-openshift
          env:
          - name: VAR
            value: mid-deployment
          volumes:
          - dataem
        failurePolicy: Abort
      post:
        execNewPod:
          command:
          - /bin/bash
          - -c
          - /usr/bin/sleep 5
          containerName: hello-openshift
          env:
          - name: VAR
            value: post-deployment
          volumes:
          - dataem
        failurePolicy: Ignore
      pre:
        execNewPod:
          command:
          - /bin/bash
          - -c
          - /usr/bin/sleep 5
          containerName: hello-openshift
          env:
          - name: VAR
            value: pre-deployment
          volumes:
          - dataem
        failurePolicy: Ignore
      timeoutSeconds: 600
    resources: {}
    type: Recreate
  template:
    metadata:
      creationTimestamp: null
      labels:
        name: hello-openshift
    spec:
      containers:
      - command:
        - /bin/bash
        - -c
        - /usr/bin/sleep 30d
        env:
        - name: MYSQL_USER
          value: user8Y2
        - name: MYSQL_PASSWORD
          value: Plqe5Wev
        - name: MYSQL_DATABASE
          value: root
        image: openshift/origin
        imagePullPolicy: Always
        name: hello-openshift
        ports:
        - containerPort: 8080
          protocol: TCP
        resources: {}
        securityContext:
          capabilities: {}
          privileged: false
        terminationMessagePath: /dev/termination-log
        volumeMounts:
        - mountPath: /var/lib/origin
          name: dataem
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
      - emptyDir: {}
        name: dataem
  test: false
  triggers:
  - type: ConfigChange
status:
  availableReplicas: 1
  details:
    causes:
    - type: ConfigChange
    message: caused by a config change
  latestVersion: 101
  observedGeneration: 101
  replicas: 1
  updatedReplicas: 1
EOF
$ oc create -f dc.yaml

2. Actions -> Start Rollout, stay on DC details page and wait for some minutes, the error will appear
3. If user goes back to Workloads -> Deployment Configs -> hooks page, all tabs can be visit & displayed successfully. This error appears just after 'Start Rollout' action is performed. It will not prevent console showing DC details, so this is not a release blocker

Comment 4 ralpert 2020-07-15 18:50:55 UTC
I tried recreating this in the web application using Yadan Pei's yaml file (needed to add namespace and update API group). I wasn't able to recreate this issue on the latest pull from master. I'll bring this up with the broader console team at scrum tomorrow to see if they have suggestions on recreating this or to confirm that this was indirectly fixed.

Comment 5 Samuel Padgett 2020-07-16 15:37:13 UTC
I was able to reproduce in a development environment to get a better stack trace:

> can't access property "reduce", pods is undefined

in PodRing (created by PodRingSet)
    in div (created by SplitItem)
    in SplitItem (created by PodRingSet)
    in div (created by Split)
    in Split (created by PodRingSet)
    in PodRingSet
    in Unknown (created by PodRingController)
    in Unknown
    in Unknown (created by ConnectFunction)
    in ConnectFunction (created by Firehose)
    in Firehose (created by ConnectFunction)
    in ConnectFunction (created by PodRingController)
    in PodRingController (created by DeploymentConfigsDetails)
    in div (created by DeploymentConfigsDetails)
    in DeploymentConfigsDetails (created by Context.Consumer)
    in Route
    in Switch
    in div (created by Data)
    in Data (created by StatusBox)
    in StatusBox
    in div
    in Unknown
    in Unknown
    in Unknown
    in Unknown (created by ConnectFunction)
    in ConnectFunction (created by Firehose)
    in Firehose (created by ConnectFunction)
    in ConnectFunction
    in Unknown (created by DetailsPage)
    in ErrorBoundary (created by DetailsPage)
    in DetailsPage (created by DeploymentConfigsDetailsPage)
    in DeploymentConfigsDetailsPage (created by AsyncComponent)
    in AsyncComponent
    in Unknown (created by ConnectFunction)
    in ConnectFunction (created by Context.Consumer)
    in Route (created by AppContents_)
    in Switch (created by AppContents_)
    in div (created by AppContents_)
    in div (created by AppContents_)
    in section (created by PageSection)
    in PageSection (created by AppContents_)
    in AppContents_ (created by ConnectFunction)
    in ConnectFunction (created by ConnectFunction)
    in ConnectFunction (created by App)
    in div (created by DrawerContent)
    in div (created by DrawerMain)
    in DrawerMain (created by DrawerContent)
    in DrawerContent (created by NotificationDrawer)
    in div (created by Drawer)
    in Drawer (created by NotificationDrawer)
    in NotificationDrawer (created by ConnectedNotificationDrawer_)
    in ConnectedNotificationDrawer_ (created by ConnectFunction)
    in ConnectFunction (created by App)
    in main (created by Page)
    in div (created by Page)
    in Page (created by App)
    in App (created by Context.Consumer)
    in Route
    in Switch
    in Router
    in Provider

getFailedPods@http://localhost:9000/static/main-dc53fe04ff4c3b712457.js:10668:5
podRingLabel@http://localhost:9000/static/main-dc53fe04ff4c3b712457.js:10713:41
PodRing@http://localhost:9000/static/main-dc53fe04ff4c3b712457.js:7652:108
renderWithHooks@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:252577:27
mountIndeterminateComponent@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:254811:13
beginWork$1@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:255955:16
callCallback@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:237816:14
invokeGuardedCallbackDev@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:237866:16
invokeGuardedCallback@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:237923:31
beginWork$$1@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:260686:28
performUnitOfWork@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:259677:12
workLoopSync@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:259654:22
renderRoot@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:259347:11
runRootCallback@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:259023:20
flushSyncCallbackQueueImpl/<@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:248822:24
unstable_runWithPriority@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:263989:12
runWithPriority$2@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:248774:10
flushSyncCallbackQueueImpl@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:248818:24
flushSyncCallbackQueue@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:248807:3
batchedUpdates$1@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:259117:7
notify@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:272254:12
notifyNestedSubs@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:272296:20
notifySubscribers@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:271065:29
handleChangeWrapper@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:272301:12
dispatch@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:294585:7
createThunkMiddleware/</</<@http://localhost:9000/static/main-dc53fe04ff4c3b712457.js:53325:16
dispatch@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:294982:28
pollAndWatch/</</<@http://localhost:9000/static/main-dc53fe04ff4c3b712457.js:24131:92
pollAndWatch/</<@http://localhost:9000/static/main-dc53fe04ff4c3b712457.js:24131:72
./public/module/ws-factory.js/WSFactory.prototype._invokeHandlers/<@http://localhost:9000/static/main-dc53fe04ff4c3b712457.js:52295:14
./public/module/ws-factory.js/WSFactory.prototype._invokeHandlers@http://localhost:9000/static/main-dc53fe04ff4c3b712457.js:52293:14
./public/module/ws-factory.js/WSFactory.prototype.flushMessageBuffer@http://localhost:9000/static/main-dc53fe04ff4c3b712457.js:52349:14
setInterval handler*WSFactory@http://localhost:9000/static/main-dc53fe04ff4c3b712457.js:52213:30
k8sWatch@http://localhost:9000/static/main-dc53fe04ff4c3b712457.js:51676:12
pollAndWatch/<@http://localhost:9000/static/main-dc53fe04ff4c3b712457.js:24089:91
fulfilled@http://localhost:9000/static/main-dc53fe04ff4c3b712457.js:23933:58
promise callback*step@http://localhost:9000/static/main-dc53fe04ff4c3b712457.js:23935:91
./public/actions/k8s.ts/__awaiter</<@http://localhost:9000/static/main-dc53fe04ff4c3b712457.js:23936:13
./public/actions/k8s.ts/__awaiter<@http://localhost:9000/static/main-dc53fe04ff4c3b712457.js:23932:12
pollAndWatch@http://localhost:9000/static/main-dc53fe04ff4c3b712457.js:24066:41
watchK8sList/<@http://localhost:9000/static/main-dc53fe04ff4c3b712457.js:24133:5
createThunkMiddleware/</</<@http://localhost:9000/static/main-dc53fe04ff4c3b712457.js:53323:20
bindActionCreator/<@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:294833:12
start/<@http://localhost:9000/static/main-dc53fe04ff4c3b712457.js:43609:15
start@http://localhost:9000/static/main-dc53fe04ff4c3b712457.js:43608:19
UNSAFE_componentWillMount@http://localhost:9000/static/main-dc53fe04ff4c3b712457.js:43564:14
callComponentWillMount@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:250840:14
mountClassInstance@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:250930:27
updateClassComponent@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:254455:23
beginWork$1@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:255974:16
beginWork$$1@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:260662:14
performUnitOfWork@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:259677:12
workLoopSync@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:259654:22
renderRoot@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:259347:11
runRootCallback@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:259023:20
flushSyncCallbackQueueImpl/<@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:248822:24
unstable_runWithPriority@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:263989:12
runWithPriority$2@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:248774:10
flushSyncCallbackQueueImpl@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:248818:24
flushSyncCallbackQueue@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:248807:3
batchedUpdates$1@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:259117:7
notify@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:272254:12
notifyNestedSubs@http://localhost:9000/static/vendors~main-2d651e295361f6771c01.js:272296:20

Comment 6 ralpert 2020-07-16 15:47:53 UTC
This was fixed indirectly in 4.6 by https://github.com/openshift/console/pull/5818. We'll manually backport the change to 4.5.z. (Thanks to Sam for verifying/recreating.)

Comment 9 XiaochuanWang 2020-07-17 06:39:57 UTC
Created attachment 1701508 [details]
Verification recording

Comment 10 XiaochuanWang 2020-07-17 06:45:02 UTC
As the screen recording, this is not reproduced.
Verified on 4.6.0-0.nightly-2020-07-16-211200

Comment 13 errata-xmlrpc 2020-10-27 16:12:04 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (OpenShift Container Platform 4.6 GA Images), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2020:4196


Note You need to log in before you can comment on or make changes to this bug.