[jbosstools-issues] [JBoss JIRA] (JBIDE-25611) Server adapter: timeouts when starting into "Debug" on OpenShift Online

Andre Dietisheim (JIRA) issues at jboss.org
Thu Jan 25 18:32:00 EST 2018


    [ https://issues.jboss.org/browse/JBIDE-25611?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13524131#comment-13524131 ] 

Andre Dietisheim edited comment on JBIDE-25611 at 1/25/18 6:31 PM:
-------------------------------------------------------------------

When deploying a nodejs:latest builder image to OpenShift Online, the pod is not found because pods are created with an erroneous annotation *"openshift.io/deployment-config.name"*. In all other OpenShift this wont happen. 
In Online I see pods being created where the annotation *"openshift.io/deployment-config.name"* carries "nodejs-mongo-persistent" whereas the deployment config is named "nodejs". Our tooling thus doesn't find the pod that it should operate (deploy, port-forward) on.

Deployment Config that the tooling creates:
{code}
{
  "kind": "DeploymentConfig",
  "apiVersion": "v1",
  "metadata": {
    "name": "nodejs",
    "namespace": "adietish-stage",
    "selfLink": "/oapi/v1/namespaces/adietish-stage/deploymentconfigs/nodejs",
    "uid": "0a16727d-0211-11e8-aa99-0233cba325d9",
    "resourceVersion": "838086675",
    "generation": 3,
    "creationTimestamp": "2018-01-25T20:48:04Z",
    "labels": {
      "deploymentconfig": "nodejs"
    },
    "annotations": {
      "openshift.io/generated-by": "jbosstools-openshift"
    }
  },
  "spec": {
    "strategy": {
      "type": "Rolling",
      "rollingParams": {
        "updatePeriodSeconds": 1,
        "intervalSeconds": 1,
        "timeoutSeconds": 600,
        "maxUnavailable": "25%",
        "maxSurge": "25%"
      },
      "resources": {},
      "activeDeadlineSeconds": 21600
    },
    "triggers": [
      {
        "type": "ConfigChange"
      },
      {
        "type": "ImageChange",
        "imageChangeParams": {
          "automatic": true,
          "containerNames": [
            "nodejs"
          ],
          "from": {
            "kind": "ImageStreamTag",
            "namespace": "adietish-stage",
            "name": "nodejs:latest"
          },
          "lastTriggeredImage": "172.30.98.11:5000/adietish-stage/nodejs at sha256:3d45703157c352fb585a708efda1bfaa38c533ea5371b16cf82ab8a09f22ebcc"
        }
      }
    ],
    "replicas": 1,
    "test": false,
    "selector": {
      "deploymentconfig": "nodejs"
    },
    "template": {
      "metadata": {
        "labels": {
          "deploymentconfig": "nodejs"
        }
      },
      "spec": {
        "containers": [
          {
            "name": "nodejs",
            "image": "172.30.98.11:5000/adietish-stage/nodejs at sha256:3d45703157c352fb585a708efda1bfaa38c533ea5371b16cf82ab8a09f22ebcc",
            "ports": [
              {
                "name": "8080-tcp",
                "containerPort": 8080,
                "protocol": "TCP"
              },
              {
                "name": "debug",
                "containerPort": 5858,
                "protocol": "TCP"
              }
            ],
            "env": [
              {
                "name": "DEBUG_PORT",
                "value": "5858"
              },
              {
                "name": "DEV_MODE",
                "value": "true"
              }
            ],
            "resources": {},
            "terminationMessagePath": "/dev/termination-log",
            "terminationMessagePolicy": "File",
            "imagePullPolicy": "Always"
          }
        ],
        "restartPolicy": "Always",
        "terminationGracePeriodSeconds": 30,
        "dnsPolicy": "ClusterFirst",
        "securityContext": {},
        "schedulerName": "default-scheduler"
      }
    }
  },
  "status": {
    "latestVersion": 2,
    "observedGeneration": 3,
    "replicas": 0,
    "updatedReplicas": 0,
    "availableReplicas": 0,
    "unavailableReplicas": 0,
    "details": {
      "message": "config change",
      "causes": [
        {
          "type": "ConfigChange"
        }
      ]
    },
    "conditions": [
      {
        "type": "Available",
        "status": "False",
        "lastUpdateTime": "2018-01-25T20:48:04Z",
        "lastTransitionTime": "2018-01-25T20:48:04Z",
        "message": "Deployment config does not have minimum availability."
      },
      {
        "type": "Progressing",
        "status": "False",
        "lastUpdateTime": "2018-01-25T21:03:51Z",
        "lastTransitionTime": "2018-01-25T21:03:51Z",
        "reason": "ProgressDeadlineExceeded",
        "message": "replication controller \"nodejs-2\" has failed progressing"
      }
    ]
  }
}
{code}
Replication Controller:
{code}
{
    "kind" : "ReplicationController",
    "apiVersion" : "v1",
    "metadata" : {
        "name" : "nodejs-2",
        "namespace" : "adietish-stage",
        "selfLink" : "/api/v1/namespaces/adietish-stage/replicationcontrollers/nodejs-2",
        "uid" : "95b3d727-0225-11e8-b468-02d7377a4b17",
        "resourceVersion" : "838449729",
        "generation" : 2,
        "creationTimestamp" : "2018-01-25T23:15:08Z",
        "labels" : {
            "deploymentconfig" : "nodejs",
            "openshift.io/deployment-config.name" : "nodejs"
        },
        "annotations" : {
            "openshift.io/deployer-pod.completed-at" : "2018-01-25 23:15:12 +0000 UTC",
            "openshift.io/deployer-pod.created-at" : "2018-01-25 23:15:08 +0000 UTC",
            "openshift.io/deployer-pod.name" : "nodejs-2-deploy",
            "openshift.io/deployment-config.latest-version" : "2",
            "openshift.io/deployment-config.name" : "nodejs",
            "openshift.io/deployment.phase" : "Complete",
            "openshift.io/deployment.replicas" : "1",
            "openshift.io/deployment.status-reason" : "image change",
            "openshift.io/encoded-deployment-config" : "{\"kind\":\"DeploymentConfig\",\"apiVersion\":\"v1\",\"metadata\":{\"name\":\"nodejs\",\"namespace\":\"adietish-stage\",\"selfLink\":\"/apis/apps.openshift.io/v1/namespaces/adietish-stage/deploymentconfigs/nodejs\",\"uid\":\"89254d7d-0225-11e8-af4a-02e52a0be43d\",\"resourceVersion\":\"838449428\",\"generation\":2,\"creationTimestamp\":\"2018-01-25T23:14:47Z\",\"labels\":{\"deploymentconfig\":\"nodejs\"},\"annotations\":{\"openshift.io/generated-by\":\"jbosstools-openshift\"}},\"spec\":{\"strategy\":{\"type\":\"Rolling\",\"rollingParams\":{\"updatePeriodSeconds\":1,\"intervalSeconds\":1,\"timeoutSeconds\":600,\"maxUnavailable\":\"25%\",\"maxSurge\":\"25%\"},\"resources\":{},\"activeDeadlineSeconds\":21600},\"triggers\":[{\"type\":\"ConfigChange\"},{\"type\":\"ImageChange\",\"imageChangeParams\":{\"automatic\":true,\"containerNames\":[\"nodejs\"],\"from\":{\"kind\":\"ImageStreamTag\",\"namespace\":\"adietish-stage\",\"name\":\"nodejs:latest\"},\"lastTriggeredImage\":\"172.30.98.11:5000/adietish-stage/nodejs at sha256:210293c339eda9c97624440d8e3382b62eca941d5f703555146cea096a10aacd\"}}],\"replicas\":1,\"test\":false,\"selector\":{\"deploymentconfig\":\"nodejs\"},\"template\":{\"metadata\":{\"creationTimestamp\":null,\"labels\":{\"deploymentconfig\":\"nodejs\"}},\"spec\":{\"containers\":[{\"name\":\"nodejs\",\"image\":\"172.30.98.11:5000/adietish-stage/nodejs at sha256:210293c339eda9c97624440d8e3382b62eca941d5f703555146cea096a10aacd\",\"ports\":[{\"name\":\"8080-tcp\",\"containerPort\":8080,\"protocol\":\"TCP\"}],\"resources\":{},\"terminationMessagePath\":\"/dev/termination-log\",\"terminationMessagePolicy\":\"File\",\"imagePullPolicy\":\"Always\"}],\"restartPolicy\":\"Always\",\"terminationGracePeriodSeconds\":30,\"dnsPolicy\":\"ClusterFirst\",\"securityContext\":{},\"schedulerName\":\"default-scheduler\"}}},\"status\":{\"latestVersion\":2,\"observedGeneration\":2,\"replicas\":1,\"updatedReplicas\":0,\"availableReplicas\":0,\"unavailableReplicas\":1,\"details\":{\"message\":\"image change\",\"causes\":[{\"type\":\"ImageChange\",\"imageTrigger\":{\"from\":{\"kind\":\"DockerImage\",\"name\":\"172.30.98.11:5000/adietish-stage/nodejs at sha256:210293c339eda9c97624440d8e3382b62eca941d5f703555146cea096a10aacd\"}}}]},\"conditions\":[{\"type\":\"Available\",\"status\":\"False\",\"lastUpdateTime\":\"2018-01-25T23:14:47Z\",\"lastTransitionTime\":\"2018-01-25T23:14:47Z\",\"message\":\"Deployment config does not have minimum availability.\"},{\"type\":\"Progressing\",\"status\":\"False\",\"lastUpdateTime\":\"2018-01-25T23:15:08Z\",\"lastTransitionTime\":\"2018-01-25T23:15:08Z\",\"reason\":\"ProgressDeadlineExceeded\",\"message\":\"replication controller \\\"nodejs-1\\\" has failed progressing\"}]}}\n"
        },
        "ownerReferences" : [{
            "apiVersion" : "apps.openshift.io/v1",
            "kind" : "DeploymentConfig",
            "name" : "nodejs",
            "uid" : "89254d7d-0225-11e8-af4a-02e52a0be43d",
            "controller" : true,
            "blockOwnerDeletion" : true
        }]
    },
    "spec" : {
        "replicas" : 1,
        "selector" : {
            "deployment" : "nodejs-2",
            "deploymentconfig" : "nodejs"
        },
        "template" : {
            "metadata" : {
                "labels" : {
                    "deployment" : "nodejs-2",
                    "deploymentconfig" : "nodejs"
                },
                "annotations" : {
                    "openshift.io/deployment-config.latest-version" : "2",
                    "openshift.io/deployment-config.name" : "nodejs",
                    "openshift.io/deployment.name" : "nodejs-2"
                }
            },
            "spec" : {
                "containers" : [{
                    "name" : "nodejs",
                    "image" : "172.30.98.11:5000/adietish-stage/nodejs at sha256:210293c339eda9c97624440d8e3382b62eca941d5f703555146cea096a10aacd",
                    "ports" : [{
                        "name" : "8080-tcp",
                        "containerPort" : 8080,
                        "protocol" : "TCP"
                    }],
                    "resources" : {},
                    "terminationMessagePath" : "/dev/termination-log",
                    "terminationMessagePolicy" : "File",
                    "imagePullPolicy" : "Always"
                }],
                "restartPolicy" : "Always",
                "terminationGracePeriodSeconds" : 30,
                "dnsPolicy" : "ClusterFirst",
                "securityContext" : {},
                "schedulerName" : "default-scheduler"
            }
        }
    },
    "status" : {
        "replicas" : 1,
        "fullyLabeledReplicas" : 1,
        "readyReplicas" : 1,
        "availableReplicas" : 1,
        "observedGeneration" : 2
    }
}
{code}

annotations on the nodejs Pod:
{code}
{ 
	"openshift.io/deployment-config.latest-version"="3",
	"kubernetes.io/limit-ranger"="LimitRanger plugin set: cpu request for container nodejs-mongo-persistent; cpu limit for container nodejs-mongo-persistent",
	"openshift.io/deployment-config.name"="nodejs-mongo-persistent",
	"openshift.io/deployment.name"="nodejs-mongo-persistent-3",
	"kubernetes.io/created-by"="{"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"ReplicationController","namespace":"adietish-stage","name":"nodejs-mongo-persistent-3","uid":"64acf60d-003c-11e8-bed0-0233cba325d9","apiVersion":"v1","resourceVersion":"830225895"}}
",
	"openshift.io/scc"="restricted",
}
{code}


was (Author: adietish):
It very much looks like to me as if the templates would differ:

On OpenShift Online, when restarting the adapter debugging into a finished build where pod annotations dont carry the correct name of the deployment config. I see pods being created where the annotation *"openshift.io/deployment-config.name"* carries "nodejs-mongo-persistent" whereas the deployment config is named "nodejs". Our tooling thus doesn't find the pod that it should operate (deploy, port-forward) on.

{code}
{
  "kind": "DeploymentConfig",
  "apiVersion": "v1",
  "metadata": {
    "name": "nodejs",
    "namespace": "adietish-stage",
    "selfLink": "/oapi/v1/namespaces/adietish-stage/deploymentconfigs/nodejs",
    "uid": "0a16727d-0211-11e8-aa99-0233cba325d9",
    "resourceVersion": "838086675",
    "generation": 3,
    "creationTimestamp": "2018-01-25T20:48:04Z",
    "labels": {
      "deploymentconfig": "nodejs"
    },
    "annotations": {
      "openshift.io/generated-by": "jbosstools-openshift"
    }
  },
  "spec": {
    "strategy": {
      "type": "Rolling",
      "rollingParams": {
        "updatePeriodSeconds": 1,
        "intervalSeconds": 1,
        "timeoutSeconds": 600,
        "maxUnavailable": "25%",
        "maxSurge": "25%"
      },
      "resources": {},
      "activeDeadlineSeconds": 21600
    },
    "triggers": [
      {
        "type": "ConfigChange"
      },
      {
        "type": "ImageChange",
        "imageChangeParams": {
          "automatic": true,
          "containerNames": [
            "nodejs"
          ],
          "from": {
            "kind": "ImageStreamTag",
            "namespace": "adietish-stage",
            "name": "nodejs:latest"
          },
          "lastTriggeredImage": "172.30.98.11:5000/adietish-stage/nodejs at sha256:3d45703157c352fb585a708efda1bfaa38c533ea5371b16cf82ab8a09f22ebcc"
        }
      }
    ],
    "replicas": 1,
    "test": false,
    "selector": {
      "deploymentconfig": "nodejs"
    },
    "template": {
      "metadata": {
        "labels": {
          "deploymentconfig": "nodejs"
        }
      },
      "spec": {
        "containers": [
          {
            "name": "nodejs",
            "image": "172.30.98.11:5000/adietish-stage/nodejs at sha256:3d45703157c352fb585a708efda1bfaa38c533ea5371b16cf82ab8a09f22ebcc",
            "ports": [
              {
                "name": "8080-tcp",
                "containerPort": 8080,
                "protocol": "TCP"
              },
              {
                "name": "debug",
                "containerPort": 5858,
                "protocol": "TCP"
              }
            ],
            "env": [
              {
                "name": "DEBUG_PORT",
                "value": "5858"
              },
              {
                "name": "DEV_MODE",
                "value": "true"
              }
            ],
            "resources": {},
            "terminationMessagePath": "/dev/termination-log",
            "terminationMessagePolicy": "File",
            "imagePullPolicy": "Always"
          }
        ],
        "restartPolicy": "Always",
        "terminationGracePeriodSeconds": 30,
        "dnsPolicy": "ClusterFirst",
        "securityContext": {},
        "schedulerName": "default-scheduler"
      }
    }
  },
  "status": {
    "latestVersion": 2,
    "observedGeneration": 3,
    "replicas": 0,
    "updatedReplicas": 0,
    "availableReplicas": 0,
    "unavailableReplicas": 0,
    "details": {
      "message": "config change",
      "causes": [
        {
          "type": "ConfigChange"
        }
      ]
    },
    "conditions": [
      {
        "type": "Available",
        "status": "False",
        "lastUpdateTime": "2018-01-25T20:48:04Z",
        "lastTransitionTime": "2018-01-25T20:48:04Z",
        "message": "Deployment config does not have minimum availability."
      },
      {
        "type": "Progressing",
        "status": "False",
        "lastUpdateTime": "2018-01-25T21:03:51Z",
        "lastTransitionTime": "2018-01-25T21:03:51Z",
        "reason": "ProgressDeadlineExceeded",
        "message": "replication controller \"nodejs-2\" has failed progressing"
      }
    ]
  }
}
{code}
annotations on the nodejs pod:
{code}
{ 
	"openshift.io/deployment-config.latest-version"="3",
	"kubernetes.io/limit-ranger"="LimitRanger plugin set: cpu request for container nodejs-mongo-persistent; cpu limit for container nodejs-mongo-persistent",
	"openshift.io/deployment-config.name"="nodejs-mongo-persistent",
	"openshift.io/deployment.name"="nodejs-mongo-persistent-3",
	"kubernetes.io/created-by"="{"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"ReplicationController","namespace":"adietish-stage","name":"nodejs-mongo-persistent-3","uid":"64acf60d-003c-11e8-bed0-0233cba325d9","apiVersion":"v1","resourceVersion":"830225895"}}
",
	"openshift.io/scc"="restricted",
}
{code}

> Server adapter: timeouts when starting into "Debug" on OpenShift Online
> -----------------------------------------------------------------------
>
>                 Key: JBIDE-25611
>                 URL: https://issues.jboss.org/browse/JBIDE-25611
>             Project: Tools (JBoss Tools)
>          Issue Type: Bug
>          Components: openshift
>    Affects Versions: 4.5.2.Final
>            Reporter: Andre Dietisheim
>            Assignee: Andre Dietisheim
>             Fix For: 4.5.3.AM1
>
>         Attachments: error-waiting-for-new-pod.png, image-2018-01-24-18-58-29-159.png, image-2018-01-25-10-49-09-369.png, pod-ports-cdk.png, pod-ports-online.png, port-missing.png
>
>
> # ASSERT: have an account on OpenShift Online
> # EXEC: create a new application via template nodejs-mongo-persistent
> # EXEC: have the project imported into the workspace and the server adapter for it created
> # ASSERT: you have a new server adapter for your app in state [stopped]
> # EXEC: start the adapter into "Debug"
> Result:
> The adapter takes a lot of time to start but wont succeed eventually. You get the following error dialog:
>  !error-waiting-for-new-pod.png! 
> In the Eclipse log you'll find the following:
> {code}
> org.eclipse.core.runtime.CoreException: Failed to detect new deployed Pod for nodejs-mongo-persistent
> 	at org.jboss.tools.openshift.internal.core.server.debug.OpenShiftDebugMode.waitFor(OpenShiftDebugMode.java:403)
> 	at org.jboss.tools.openshift.internal.core.server.debug.OpenShiftDebugMode.waitForNewPod(OpenShiftDebugMode.java:395)
> 	at org.jboss.tools.openshift.internal.core.server.debug.OpenShiftDebugMode.getPod(OpenShiftDebugMode.java:226)
> 	at org.jboss.tools.openshift.internal.core.server.debug.OpenShiftDebugMode.execute(OpenShiftDebugMode.java:170)
> 	at org.jboss.tools.openshift.core.server.behavior.OpenShiftLaunchController.launch(OpenShiftLaunchController.java:100)
> 	at org.jboss.ide.eclipse.as.wtp.core.server.launch.ControllableServerLaunchConfiguration.launch(ControllableServerLaunchConfiguration.java:52)
> 	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
> 	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
> 	at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:731)
> 	at org.eclipse.wst.server.core.internal.Server.startImpl2(Server.java:3566)
> 	at org.eclipse.wst.server.core.internal.Server.startImpl(Server.java:3502)
> 	at org.eclipse.wst.server.core.internal.Server$StartJob.run(Server.java:377)
> 	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
> {code}



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)



More information about the jbosstools-issues mailing list