redhat-developer / odo

odo - Developer-focused CLI for fast & iterative container-based application development on Podman and Kubernetes. Implementation of the open Devfile standard.
https://odo.dev
Apache License 2.0
794 stars 243 forks source link

odo push failed #647

Closed jorgemoralespou closed 5 years ago

jorgemoralespou commented 6 years ago

I updated a component, in an oc cluster up environment, and after that I was not able to push, with following error:

$ odo push -v
DEBU[0000] Trying to connect to server 127.0.0.1:8443 - %!v(MISSING)
DEBU[0000] Server https://127.0.0.1:8443 is up
DEBU[0000] isLoggedIn err:  <nil>
 output: "developer"
DEBU[0000] No component name passed, assuming current component
Pushing changes to component: frontend
DEBU[0000] Getting BuildConfig: frontend-wwgame
DEBU[0000] Source for component frontend is file:///Users/jmorales/repositories/thirdparty/gshipley/ryanj-kwww-frontend (local)
DEBU[0000] Copying directory /Users/jmorales/repositories/thirdparty/gshipley/ryanj-kwww-frontend to pod
DEBU[0000] Waiting for deploymentconfig=frontend-wwgame pod
DEBU[0000] Status of frontend-wwgame-2-5pm4b pod is Running
DEBU[0000] Pod frontend-wwgame-2-5pm4b is running.
DEBU[0000] Copying to pod frontend-wwgame-2-5pm4b
my localpath is /Users/jmorales/repositories/thirdparty/gshipley/ryanj-kwww-frontend
E0817 13:36:12.288957   77973 v2.go:163] io: read/write on closed pipe
DEBU[0001] Error:
unable push files to pod: error while
jorgemoralespou commented 6 years ago
oc rsync . frontend-wwgame-2-5pm4b:/opt/app-root/src/

Worked

dgolovin commented 6 years ago

This is happening randomly for me, usually executing `odo push' again just works.

mik-dass commented 6 years ago

@dgolovin @jorgemoralespou are you guys using a windows environment?

jorgemoralespou commented 6 years ago

Mac.

mik-dass commented 6 years ago

@jorgemoralespou @dgolovin I faced the same problem continuously and found this

ERROR: logging before flag.Parse: I0905 19:00:36.460094   11765 root.go:172] Error:
unable push files to pod: error while streaming command: Internal error occurred: error executing command in container: read unix @->/var/run/docker.sock: read: connection reset by peer

I had set TTY to true though in https://github.com/redhat-developer/odo/blob/2a19c67a9faf393dd51f73978c67c7c947f782d4/pkg/occlient/occlient.go#L1789

I guess the stream was getting closed before some action was getting complete. I managed to bypass the error by moving the ExecCMDInContainer inside, after the makeTar(), but it introduces problems while local component creation. I need to investigate further.

dgolovin commented 6 years ago

@mik-dass I am using Windows 10 Pro and macOS

mik-dass commented 6 years ago

@dgolovin I faced it on windows after every odo update to local from git and today faced it on Linux, though this was probably the first time on Linux

surajnarwade commented 6 years ago

@jorgemoralespou , @dgolovin is it still the issue after golang supervisorD implementation ? or can we close this ?

jorgemoralespou commented 6 years ago

I don't have it anymore

kadel commented 6 years ago

I go this error even with the new implementation.

surajnarwade commented 6 years ago

@kadel , can you post the examples you used and logs ?

kadel commented 6 years ago

will do once it happens again, but the log was basically the same as what is already shown in this issue

kadel commented 6 years ago
odo create redhat-openjdk18-openshift:1.3 spring3
▶ odo push  -v 4
I1105 15:09:09.707313   67590 occlient.go:278] Trying to connect to server 192.168.99.100:8443
I1105 15:09:09.707824   67590 occlient.go:284] Server https://192.168.99.100:8443 is up
I1105 15:09:09.725107   67590 occlient.go:250] isLoggedIn err:  <nil>
 output: "developer"
Pushing changes to component: spring3
I1105 15:09:09.725442   67590 occlient.go:1979] Getting DeploymentConfig: spring3-myapp
I1105 15:09:09.735267   67590 component.go:479] Source for component spring3 is file:///Users/tomas/tmp/odo-examples/springboot (local)
I1105 15:09:09.735319   67590 push.go:79] Copying directory /Users/tomas/tmp/odo-examples/springboot to pod
I1105 15:09:09.745858   67590 occlient.go:1123] Waiting for deploymentconfig=spring3-myapp pod
I1105 15:09:09.752089   67590 occlient.go:1145] Status of spring3-myapp-1-zx645 pod is Running
I1105 15:09:09.752119   67590 occlient.go:1148] Pod spring3-myapp-1-zx645 is running.
I1105 15:09:09.752187   67590 component.go:346] Copying to pod spring3-myapp-1-zx645
E1105 15:09:10.450979   67590 v2.go:163] io: read/write on closed pipe
I1105 15:09:10.454695   67590 client.go:38] Error:
unable push files to pod: error while streaming command: command terminated with exit code 2
failed to push component: spring3
cdrage commented 6 years ago

I keep getting the above issue in my PR here: https://github.com/redhat-developer/odo/pull/848

I keep running into this false-positive..

kadel commented 6 years ago

I keep getting the above issue in my PR here: #848

I keep running into this false-positive..

@cdrage can you try to debug it? I'm getting in only once in a while :-(

cmoulliard commented 6 years ago

I also observe this problem randomly ;-) Scenario tested : https://github.com/snowdrop/snowdrop-cloud-devex/blob/master/examples/persistence-service-catalog.md

odo push
Pushing changes to component: my-spring-boot
Please wait, building component....

set -eo pipefail
'[' -f /opt/app-root/src/.s2i/bin/assemble ']'
'[' -f /usr/local/s2i/assemble ']'
rm -rf /opt/app-root/src/.git
cp -a /opt/app-root/src/. /tmp/src
/usr/local/s2i/assemble
==================================================================
Starting S2I Java Build .....
S2I source build with plain binaries detected
Copying binaries from /tmp/src to /deployments ...
... done

/var/lib/supervisord/bin/supervisord ctl stop run
run: stopped
failed to push component: my-spring-boot
cmoulliard commented 6 years ago

Is it because we try to upload all the content of the target folder and not only the file defined as binary with the odo create command ....

kadel commented 6 years ago

Is it because we try to upload all the content of the target folder and not only the file defined as binary with the odo create command ....

this can't be a root cause. This happens even with component that has been created as odo create --local

dgolovin commented 5 years ago

I still can replicate this issue on windows. Most of the time it works after read/write on closed pipe printed to stdout, but sometimes it fails right after it.

kadel commented 5 years ago

I'm also getting this quite often. I've tried to debug it but I don't have any leads to what is happening. What helps to resolve this for me is restarting minishift vm.

@dgolovin are you using minishift or some hosted OpenShift?

jorgemoralespou commented 5 years ago

@kadel seems as @jankleinert and @sspeiche are having issues pushing to node apps, which affects them and kubecon demos.

jankleinert commented 5 years ago

I was having this issue yesterday evening with 0.0.17 pretty consistently. It was in my katacoda environment. My binary java component would always push fine, but my nodejs one was failing on push most of the time. It would fail on the Building Component step.

The katacoda environment is having unrelated issues today, so I can't confirm if it's still a problem there until that gets resolved. I'll update if I can reproduce it again.

Today with odo latest in an RHPDS environment, push seems to work fine.

jankleinert commented 5 years ago

I was able to get into the katacoda environment. With odo latest I can still reproduce the push issue. Here's the output:

 ✗  Unable to build files
+ set -eo pipefail
+ '[' -f /tmp/.s2i/bin/assemble ']'
+ '[' -n /usr/libexec/s2i ']'
+ rm -rf /opt/app-root/src/.git
+ /usr/libexec/s2i/assemble
---> Installing application source
---> Building your Node application from source
Current git config
url.https://github.com.insteadof=git@github.com:
url.https://.insteadof=ssh://
url.https://github.com.insteadof=ssh://git@github.com
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=https://github.com/openshift-evangelists/Wild-West-Frontend.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
---> Installing dependencies
---> Using 'npm install -s --only=production'

 ✗  Building component
I1206 22:05:54.103320   13727 cmdutils.go:19] Error:
unable to execute assemble script: error while streaming command: command terminated withexit code 1
Failed to push component: frontend

Let me know what info, if anything, you need to help investigate.

sspeiche commented 5 years ago

I see the issue on local Minishift 1.28 running OpenShift 3.11 with the Wild-West-Frontend and nodejs

$odo create nodejs
 ✓  Checking component
 ✓  Checking component version
 ✓  Creating component wild-west-fr-nodejs-ytmi
 ✓  Component 'wild-west-fr-nodejs-ytmi' was created and port 8080/TCP was opened
 ✓  Component 'wild-west-fr-nodejs-ytmi' is now set as active component
To push source code to the component run 'odo push'

$odo push --v 9
I1206 17:10:43.476292   67766 loader.go:359] Config loaded from file /Users/sspeiche/.kube/config
I1206 17:10:43.478208   67766 occlient.go:393] Trying to connect to server 192.168.64.7:8443
I1206 17:10:43.478986   67766 occlient.go:401] Server https://192.168.64.7:8443 is up
I1206 17:10:43.480314   67766 round_trippers.go:386] curl -k -v -XGET  -H "Accept: application/json, */*" -H "User-Agent: odo/v0.0.0 (darwin/amd64) kubernetes/$Format" -H "Authorization: Bearer L5mYMYtKNat9xtAOvu9Zpf-_IpDsok58TN5LknAgqwE" 'https://192.168.64.7:8443/apis/user.openshift.io/v1/users/~'
I1206 17:10:43.497871   67766 round_trippers.go:405] GET https://192.168.64.7:8443/apis/user.openshift.io/v1/users/~ 200 OK in 17 milliseconds
I1206 17:10:43.497891   67766 round_trippers.go:411] Response Headers:
I1206 17:10:43.497896   67766 round_trippers.go:414]     Cache-Control: no-store
I1206 17:10:43.497900   67766 round_trippers.go:414]     Cache-Control: no-store
I1206 17:10:43.497904   67766 round_trippers.go:414]     Content-Type: application/json
I1206 17:10:43.497907   67766 round_trippers.go:414]     Date: Thu, 06 Dec 2018 22:10:43 GMT
I1206 17:10:43.497911   67766 round_trippers.go:414]     Content-Length: 363
I1206 17:10:43.497942   67766 request.go:897] Response Body: {"kind":"User","apiVersion":"user.openshift.io/v1","metadata":{"name":"admin","selfLink":"/apis/user.openshift.io/v1/users/admin","uid":"ed86d0fd-f968-11e8-b6bc-fa00dbe6a74f","resourceVersion":"12570","creationTimestamp":"2018-12-06T15:09:29Z"},"fullName":"admin","identities":["anypassword:admin"],"groups":["system:authenticated","system:authenticated:oauth"]}
I1206 17:10:43.498569   67766 occlient.go:322] isLoggedIn err:  <nil> 
 output: "admin"
I1206 17:10:43.498891   67766 context.go:203] Ignoring error as it usually means flag wasn't set: flag accessed but not defined: component
Pushing changes to component: wild-west-fr-nodejs-ytmi
I1206 17:10:43.499186   67766 occlient.go:2440] Getting DeploymentConfig: wild-west-fr-nodejs-ytmi-wild-west-fr-okql
I1206 17:10:43.499267   67766 round_trippers.go:386] curl -k -v -XGET  -H "User-Agent: odo/v0.0.0 (darwin/amd64) kubernetes/$Format" -H "Authorization: Bearer L5mYMYtKNat9xtAOvu9Zpf-_IpDsok58TN5LknAgqwE" -H "Accept: application/json, */*" 'https://192.168.64.7:8443/apis/apps.openshift.io/v1/namespaces/odo-demo2/deploymentconfigs/wild-west-fr-nodejs-ytmi-wild-west-fr-okql'
I1206 17:10:43.504249   67766 round_trippers.go:405] GET https://192.168.64.7:8443/apis/apps.openshift.io/v1/namespaces/odo-demo2/deploymentconfigs/wild-west-fr-nodejs-ytmi-wild-west-fr-okql 200 OK in 4 milliseconds
I1206 17:10:43.504282   67766 round_trippers.go:411] Response Headers:
I1206 17:10:43.504289   67766 round_trippers.go:414]     Cache-Control: no-store
I1206 17:10:43.504295   67766 round_trippers.go:414]     Cache-Control: no-store
I1206 17:10:43.504300   67766 round_trippers.go:414]     Content-Type: application/json
I1206 17:10:43.504306   67766 round_trippers.go:414]     Date: Thu, 06 Dec 2018 22:10:43 GMT
I1206 17:10:43.504395   67766 request.go:897] Response Body: {"kind":"DeploymentConfig","apiVersion":"apps.openshift.io/v1","metadata":{"name":"wild-west-fr-nodejs-ytmi-wild-west-fr-okql","namespace":"odo-demo2","selfLink":"/apis/apps.openshift.io/v1/namespaces/odo-demo2/deploymentconfigs/wild-west-fr-nodejs-ytmi-wild-west-fr-okql","uid":"ac069caa-f9a3-11e8-aa35-fa00dbe6a74f","resourceVersion":"100081","generation":2,"creationTimestamp":"2018-12-06T22:09:59Z","labels":{"app":"wild-west-fr-okql","app.kubernetes.io/component-name":"wild-west-fr-nodejs-ytmi","app.kubernetes.io/component-type":"nodejs","app.kubernetes.io/component-version":"latest","app.kubernetes.io/name":"wild-west-fr-okql"},"annotations":{"app.kubernetes.io/component-source-type":"local","app.kubernetes.io/url":"file:///Users/sspeiche/code/src/github.com/openshift-evangelists/Wild-West-Frontend"}},"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":["wild-west-fr-nodejs-ytmi-wild-west-fr-okql","copy-files-to-volume"],"from":{"kind":"ImageStreamTag","namespace":"openshift","name":"nodejs:latest"},"lastTriggeredImage":"172.30.1.1:5000/openshift/nodejs@sha256:3cc041334eef8d5853078a0190e46a2998a70ad98320db512968f1de0561705e"}}],"replicas":1,"revisionHistoryLimit":10,"test":false,"selector":{"deploymentconfig":"wild-west-fr-nodejs-ytmi-wild-west-fr-okql"},"template":{"metadata":{"creationTimestamp":null,"labels":{"deploymentconfig":"wild-west-fr-nodejs-ytmi-wild-west-fr-okql"},"annotations":{"alpha.image.policy.openshift.io/resolve-names":"*"}},"spec":{"volumes":[{"name":"odo-supervisord-shared-data","emptyDir":{}},{"name":"wild-west-fr-nodejs-ytmi-wild-west-fr-okql-s2idata","persistentVolumeClaim":{"claimName":"wild-west-fr-nodejs-ytmi-wild-west-fr-okql-s2idata"}}],"initContainers":[{"name":"copy-files-to-volume","image":"172.30.1.1:5000/openshift/nodejs@sha256:3cc041334eef8d5853078a0190e46a2998a70ad98320db512968f1de0561705e","command":["sh","-c"],"args":["\nSRC=/opt/app-root\nDEST=/mnt/app-root\n\nif [ -f $DEST/.delete-volume ]; then\n    rm -rf $DEST\nfi\n if [ -d $DEST ]; then\n    if [ -f $DEST/.sync-volume ]; then\n        if ! [[ \"$JUPYTER_SYNC_VOLUME\" =~ ^(false|no|n|0)$ ]]; then\n            JUPYTER_SYNC_VOLUME=yes\n        fi\n    fi\n     if [[ \"$JUPYTER_SYNC_VOLUME\" =~ ^(true|yes|y|1)$ ]]; then\n        rsync -ar --ignore-existing $SRC/. $DEST\n    fi\n     exit\nfi\n if [ -d $DEST.setup-volume ]; then\n    rm -rf $DEST.setup-volume\nfi\n\nmkdir -p $DEST.setup-volume\ntar -C $SRC -cf - . | tar -C $DEST.setup-volume -xvf -\nmv $DEST.setup-volume $DEST\n\t\t\t"],"resources":{},"volumeMounts":[{"name":"wild-west-fr-nodejs-ytmi-wild-west-fr-okql-s2idata","mountPath":"/mnt"}],"terminationMessagePath":"/dev/termination-log","terminationMessagePolicy":"File","imagePullPolicy":"Always"},{"name":"copy-supervisord","image":"quay.io/openshiftdo/supervisord:0.4.0","command":["/usr/bin/cp"],"args":["-r","/opt/supervisord","/var/lib/"],"resources":{},"volumeMounts":[{"name":"odo-supervisord-shared-data","mountPath":"/var/lib/supervisord"}],"terminationMessagePath":"/dev/termination-log","terminationMessagePolicy":"File","imagePullPolicy":"IfNotPresent"}],"containers":[{"name":"wild-west-fr-nodejs-ytmi-wild-west-fr-okql","image":"172.30.1.1:5000/openshift/nodejs@sha256:3cc041334eef8d5853078a0190e46a2998a70ad98320db512968f1de0561705e","command":["/var/lib/supervisord/bin/supervisord"],"args":["-c","/var/lib/supervisord/conf/supervisor.conf"],"ports":[{"name":"8080-tcp","containerPort":8080,"protocol":"TCP"}],"env":[{"name":"ODO_S2I_SCRIPTS_URL","value":"/usr/libexec/s2i"},{"name":"ODO_S2I_SCRIPTS_PROTOCOL","value":"image://"},{"name":"ODO_S2I_SRC_BIN_PATH","value":"/tmp"},{"name":"ODO_S2I_DEPLOYMENT_DIR","value":"/opt/app-root/src"}],"resources":{},"volumeMounts":[{"name":"odo-supervisord-shared-data","mountPath":"/var/lib/supervisord"},{"name":"wild-west-fr-nodejs-ytmi-wild-west-fr-okql-s2idata","mountPath":"/opt/app-root","subPath":"app-root"}],"terminationMessagePath":"/dev/termination-log","terminationMessagePolicy":"File","imagePullPolicy":"Always"}],"restartPolicy":"Always","terminationGracePeriodSeconds":30,"dnsPolicy":"ClusterFirst","securityContext":{},"schedulerName":"default-scheduler"}}},"status":{"latestVersion":1,"observedGeneration":2,"replicas":1,"updatedReplicas":1,"availableReplicas":1,"unavailableReplicas":0,"details":{"message":"config change","causes":[{"type":"ConfigChange"}]},"conditions":[{"type":"Available","status":"True","lastUpdateTime":"2018-12-06T22:10:08Z","lastTransitionTime":"2018-12-06T22:10:08Z","message":"Deployment config has minimum availability."},{"type":"Progressing","status":"True","lastUpdateTime":"2018-12-06T22:10:09Z","lastTransitionTime":"2018-12-06T22:10:04Z","reason":"NewReplicationControllerAvailable","message":"replication controller \"wild-west-fr-nodejs-ytmi-wild-west-fr-okql-1\" successfully rolled out"}],"readyReplicas":1}}
I1206 17:10:43.508743   67766 component.go:540] Source for component wild-west-fr-nodejs-ytmi is file:///Users/sspeiche/code/src/github.com/openshift-evangelists/Wild-West-Frontend (local)
I1206 17:10:43.508786   67766 push.go:84] Copying directory /Users/sspeiche/code/src/github.com/openshift-evangelists/Wild-West-Frontend to pod
I1206 17:10:43.508882   67766 round_trippers.go:386] curl -k -v -XGET  -H "Accept: application/json, */*" -H "User-Agent: odo/v0.0.0 (darwin/amd64) kubernetes/$Format" -H "Authorization: Bearer L5mYMYtKNat9xtAOvu9Zpf-_IpDsok58TN5LknAgqwE" 'https://192.168.64.7:8443/apis/apps.openshift.io/v1/namespaces/odo-demo2/deploymentconfigs?labelSelector=app.kubernetes.io%2Fname%3Dwild-west-fr-okql%2Capp.kubernetes.io%2Fcomponent-name%3Dwild-west-fr-nodejs-ytmi'
I1206 17:10:43.512339   67766 round_trippers.go:405] GET https://192.168.64.7:8443/apis/apps.openshift.io/v1/namespaces/odo-demo2/deploymentconfigs?labelSelector=app.kubernetes.io%2Fname%3Dwild-west-fr-okql%2Capp.kubernetes.io%2Fcomponent-name%3Dwild-west-fr-nodejs-ytmi 200 OK in 3 milliseconds
I1206 17:10:43.512370   67766 round_trippers.go:411] Response Headers:
I1206 17:10:43.512380   67766 round_trippers.go:414]     Cache-Control: no-store
I1206 17:10:43.512387   67766 round_trippers.go:414]     Cache-Control: no-store
I1206 17:10:43.512393   67766 round_trippers.go:414]     Content-Type: application/json
I1206 17:10:43.512399   67766 round_trippers.go:414]     Date: Thu, 06 Dec 2018 22:10:43 GMT
I1206 17:10:43.512526   67766 request.go:897] Response Body: {"kind":"DeploymentConfigList","apiVersion":"apps.openshift.io/v1","metadata":{"selfLink":"/apis/apps.openshift.io/v1/namespaces/odo-demo2/deploymentconfigs","resourceVersion":"100214"},"items":[{"metadata":{"name":"wild-west-fr-nodejs-ytmi-wild-west-fr-okql","namespace":"odo-demo2","selfLink":"/apis/apps.openshift.io/v1/namespaces/odo-demo2/deploymentconfigs/wild-west-fr-nodejs-ytmi-wild-west-fr-okql","uid":"ac069caa-f9a3-11e8-aa35-fa00dbe6a74f","resourceVersion":"100081","generation":2,"creationTimestamp":"2018-12-06T22:09:59Z","labels":{"app":"wild-west-fr-okql","app.kubernetes.io/component-name":"wild-west-fr-nodejs-ytmi","app.kubernetes.io/component-type":"nodejs","app.kubernetes.io/component-version":"latest","app.kubernetes.io/name":"wild-west-fr-okql"},"annotations":{"app.kubernetes.io/component-source-type":"local","app.kubernetes.io/url":"file:///Users/sspeiche/code/src/github.com/openshift-evangelists/Wild-West-Frontend"}},"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":["wild-west-fr-nodejs-ytmi-wild-west-fr-okql","copy-files-to-volume"],"from":{"kind":"ImageStreamTag","namespace":"openshift","name":"nodejs:latest"},"lastTriggeredImage":"172.30.1.1:5000/openshift/nodejs@sha256:3cc041334eef8d5853078a0190e46a2998a70ad98320db512968f1de0561705e"}}],"replicas":1,"revisionHistoryLimit":10,"test":false,"selector":{"deploymentconfig":"wild-west-fr-nodejs-ytmi-wild-west-fr-okql"},"template":{"metadata":{"creationTimestamp":null,"labels":{"deploymentconfig":"wild-west-fr-nodejs-ytmi-wild-west-fr-okql"},"annotations":{"alpha.image.policy.openshift.io/resolve-names":"*"}},"spec":{"volumes":[{"name":"odo-supervisord-shared-data","emptyDir":{}},{"name":"wild-west-fr-nodejs-ytmi-wild-west-fr-okql-s2idata","persistentVolumeClaim":{"claimName":"wild-west-fr-nodejs-ytmi-wild-west-fr-okql-s2idata"}}],"initContainers":[{"name":"copy-files-to-volume","image":"172.30.1.1:5000/openshift/nodejs@sha256:3cc041334eef8d5853078a0190e46a2998a70ad98320db512968f1de0561705e","command":["sh","-c"],"args":["\nSRC=/opt/app-root\nDEST=/mnt/app-root\n\nif [ -f $DEST/.delete-volume ]; then\n    rm -rf $DEST\nfi\n if [ -d $DEST ]; then\n    if [ -f $DEST/.sync-volume ]; then\n        if ! [[ \"$JUPYTER_SYNC_VOLUME\" =~ ^(false|no|n|0)$ ]]; then\n            JUPYTER_SYNC_VOLUME=yes\n        fi\n    fi\n     if [[ \"$JUPYTER_SYNC_VOLUME\" =~ ^(true|yes|y|1)$ ]]; then\n        rsync -ar --ignore-existing $SRC/. $DEST\n    fi\n     exit\nfi\n if [ -d $DEST.setup-volume ]; then\n    rm -rf $DEST.setup-volume\nfi\n\nmkdir -p $DEST.setup-volume\ntar -C $SRC -cf - . | tar -C $DEST.setup-volume -xvf -\nmv $DEST.setup-volume $DEST\n\t\t\t"],"resources":{},"volumeMounts":[{"name":"wild-west-fr-nodejs-ytmi-wild-west-fr-okql-s2idata","mountPath":"/mnt"}],"terminationMessagePath":"/dev/termination-log","terminationMessagePolicy":"File","imagePullPolicy":"Always"},{"name":"copy-supervisord","image":"quay.io/openshiftdo/supervisord:0.4.0","command":["/usr/bin/cp"],"args":["-r","/opt/supervisord","/var/lib/"],"resources":{},"volumeMounts":[{"name":"odo-supervisord-shared-data","mountPath":"/var/lib/supervisord"}],"terminationMessagePath":"/dev/termination-log","terminationMessagePolicy":"File","imagePullPolicy":"IfNotPresent"}],"containers":[{"name":"wild-west-fr-nodejs-ytmi-wild-west-fr-okql","image":"172.30.1.1:5000/openshift/nodejs@sha256:3cc041334eef8d5853078a0190e46a2998a70ad98320db512968f1de0561705e","command":["/var/lib/supervisord/bin/supervisord"],"args":["-c","/var/lib/supervisord/conf/supervisor.conf"],"ports":[{"name":"8080-tcp","containerPort":8080,"protocol":"TCP"}],"env":[{"name":"ODO_S2I_SCRIPTS_URL","value":"/usr/libexec/s2i"},{"name":"ODO_S2I_SCRIPTS_PROTOCOL","value":"image://"},{"name":"ODO_S2I_SRC_BIN_PATH","value":"/tmp"},{"name":"ODO_S2I_DEPLOYMENT_DIR","value":"/opt/app-root/src"}],"resources":{},"volumeMounts":[{"name":"odo-supervisord-shared-data","mountPath":"/var/lib/supervisord"},{"name":"wild-west-fr-nodejs-ytmi-wild-west-fr-okql-s2idata","mountPath":"/opt/app-root","subPath":"app-root"}],"terminationMessagePath":"/dev/termination-log","terminationMessagePolicy":"File","imagePullPolicy":"Always"}],"restartPolicy":"Always","terminationGracePeriodSeconds":30,"dnsPolicy":"ClusterFirst","securityContext":{},"schedulerName":"default-scheduler"}}},"status":{"latestVersion":1,"observedGeneration":2,"replicas":1,"updatedReplicas":1,"availableReplicas":1,"unavailableReplicas":0,"details":{"message":"config change","causes":[{"type":"ConfigChange"}]},"conditions":[{"type":"Available","status":"True","lastUpdateTime":"2018-12-06T22:10:08Z","lastTransitionTime":"2018-12-06T22:10:08Z","message":"Deployment config has minimum availability."},{"type":"Progressing","status":"True","lastUpdateTime":"2018-12-06T22:10:09Z","lastTransitionTime":"2018-12-06T22:10:04Z","reason":"NewReplicationControllerAvailable","message":"replication controller \"wild-west-fr-nodejs-ytmi-wild-west-fr-okql-1\" successfully rolled out"}],"readyReplicas":1}}]}
I1206 17:10:43.518373   67766 occlient.go:1537] Waiting for deploymentconfig=wild-west-fr-nodejs-ytmi-wild-west-fr-okql pod
 •  Waiting for pod to start  ...
I1206 17:10:43.518477   67766 round_trippers.go:386] curl -k -v -XGET  -H "Accept: application/json, */*" -H "User-Agent: odo/v0.0.0 (darwin/amd64) kubernetes/$Format" -H "Authorization: Bearer L5mYMYtKNat9xtAOvu9Zpf-_IpDsok58TN5LknAgqwE" 'https://192.168.64.7:8443/api/v1/namespaces/odo-demo2/pods?labelSelector=deploymentconfig%3Dwild-west-fr-nodejs-ytmi-wild-west-fr-okql&watch=true'
I1206 17:10:43.519549   67766 round_trippers.go:405] GET https://192.168.64.7:8443/api/v1/namespaces/odo-demo2/pods?labelSelector=deploymentconfig%3Dwild-west-fr-nodejs-ytmi-wild-west-fr-okql&watch=true 200 OK in 1 milliseconds
I1206 17:10:43.519571   67766 round_trippers.go:411] Response Headers:
I1206 17:10:43.519578   67766 round_trippers.go:414]     Cache-Control: no-store
I1206 17:10:43.519585   67766 round_trippers.go:414]     Content-Type: application/json
I1206 17:10:43.519590   67766 round_trippers.go:414]     Date: Thu, 06 Dec 2018 22:10:43 GMT
I1206 17:10:43.525968   67766 occlient.go:1561] Status of wild-west-fr-nodejs-ytmi-wild-west-fr-okql-1-6ghvj pod is Running
 ✓  Waiting for pod to start
I1206 17:10:43.526002   67766 occlient.go:1565] Pod wild-west-fr-nodejs-ytmi-wild-west-fr-okql-1-6ghvj is running.
 •  Copying files to pod  ...
I1206 17:10:43.526396   67766 round_trippers.go:386] curl -k -v -XPOST  -H "X-Stream-Protocol-Version: v4.channel.k8s.io" -H "X-Stream-Protocol-Version: v3.channel.k8s.io" -H "X-Stream-Protocol-Version: v2.channel.k8s.io" -H "X-Stream-Protocol-Version: channel.k8s.io" -H "Authorization: Bearer L5mYMYtKNat9xtAOvu9Zpf-_IpDsok58TN5LknAgqwE" 'https://192.168.64.7:8443/api/v1/namespaces/odo-demo2/pods/wild-west-fr-nodejs-ytmi-wild-west-fr-okql-1-6ghvj/exec?command=tar&command=xf&command=-&command=-C&command=%2Ftmp%2Fsrc&command=--strip&command=1&stderr=true&stdin=true&stdout=true'
I1206 17:10:43.640679   67766 round_trippers.go:405] POST https://192.168.64.7:8443/api/v1/namespaces/odo-demo2/pods/wild-west-fr-nodejs-ytmi-wild-west-fr-okql-1-6ghvj/exec?command=tar&command=xf&command=-&command=-C&command=%2Ftmp%2Fsrc&command=--strip&command=1&stderr=true&stdin=true&stdout=true 101 Switching Protocols in 114 milliseconds
I1206 17:10:43.640711   67766 round_trippers.go:411] Response Headers:
I1206 17:10:43.640724   67766 round_trippers.go:414]     Date: Thu, 06 Dec 2018 22:10:43 GMT
I1206 17:10:43.640730   67766 round_trippers.go:414]     Connection: Upgrade
I1206 17:10:43.640736   67766 round_trippers.go:414]     Upgrade: SPDY/3.1
I1206 17:10:43.640742   67766 round_trippers.go:414]     X-Stream-Protocol-Version: v4.channel.k8s.io
 ✓  Copying files to pod
 •  Building component  ...
I1206 17:10:44.014321   67766 round_trippers.go:386] curl -k -v -XPOST  -H "X-Stream-Protocol-Version: v4.channel.k8s.io" -H "X-Stream-Protocol-Version: v3.channel.k8s.io" -H "X-Stream-Protocol-Version: v2.channel.k8s.io" -H "X-Stream-Protocol-Version: channel.k8s.io" -H "Authorization: Bearer L5mYMYtKNat9xtAOvu9Zpf-_IpDsok58TN5LknAgqwE" 'https://192.168.64.7:8443/api/v1/namespaces/odo-demo2/pods/wild-west-fr-nodejs-ytmi-wild-west-fr-okql-1-6ghvj/exec?command=%2Fvar%2Flib%2Fsupervisord%2Fbin%2Fassemble-and-restart&stderr=true&stdout=true'
I1206 17:10:44.060569   67766 round_trippers.go:405] POST https://192.168.64.7:8443/api/v1/namespaces/odo-demo2/pods/wild-west-fr-nodejs-ytmi-wild-west-fr-okql-1-6ghvj/exec?command=%2Fvar%2Flib%2Fsupervisord%2Fbin%2Fassemble-and-restart&stderr=true&stdout=true 101 Switching Protocols in 46 milliseconds
I1206 17:10:44.060601   67766 round_trippers.go:411] Response Headers:
I1206 17:10:44.060614   67766 round_trippers.go:414]     Date: Thu, 06 Dec 2018 22:10:43 GMT
I1206 17:10:44.060621   67766 round_trippers.go:414]     Connection: Upgrade
I1206 17:10:44.060627   67766 round_trippers.go:414]     Upgrade: SPDY/3.1
I1206 17:10:44.060633   67766 round_trippers.go:414]     X-Stream-Protocol-Version: v4.channel.k8s.io
+ set -eo pipefail
+ '[' -f /tmp/.s2i/bin/assemble ']'
+ '[' -n /usr/libexec/s2i ']'
+ rm -rf /opt/app-root/src/.git
+ /usr/libexec/s2i/assemble
---> Installing application source
---> Building your Node application from source
Current git config
url.https://github.com.insteadof=git@github.com:
url.https://.insteadof=ssh://
url.https://github.com.insteadof=ssh://git@github.com
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
remote.origin.url=https://github.com/openshift-evangelists/Wild-West-Frontend
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
---> Installing dependencies
---> Using 'npm install -s --only=production'
 ✗  Unable to build files
+ set -eo pipefail
+ '[' -f /tmp/.s2i/bin/assemble ']'
+ '[' -n /usr/libexec/s2i ']'
+ rm -rf /opt/app-root/src/.git
+ /usr/libexec/s2i/assemble
---> Installing application source
---> Building your Node application from source
Current git config
url.https://github.com.insteadof=git@github.com:
url.https://.insteadof=ssh://
url.https://github.com.insteadof=ssh://git@github.com
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
remote.origin.url=https://github.com/openshift-evangelists/Wild-West-Frontend
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
---> Installing dependencies
---> Using 'npm install -s --only=production'

 ✗  Building component
I1206 17:10:50.911707   67766 cmdutils.go:19] Error:
unable to execute assemble script: error while streaming command: command terminated with exit code 1
Failed to push component: wild-west-fr-nodejs-ytmi
kadel commented 5 years ago

@jankleinert @sspeiche I have been able to reproduce the issue with Wild West Frontend, but not with any other nodejs app :-( It looks like this is a different problem than what Jorge described in the first issue.

I've tried Wild West Frontend with normal s2i workflow (using oc new-app) and it failed at the exact same point


Cloning "https://github.com/openshift-evangelists/Wild-West-Frontend " ...
--
  | Commit: a3f9ba88fd5134a60f365f1390caeadc4b3607e6 (Merge pull request #5 from jankleinert/master)
  | Author: ryan jarvinen <ryan.jarvinen@gmail.com>
  | Date:   Wed Nov 14 15:14:27 2018 -0800
  | Using 172.30.1.1:5000/openshift/nodejs@sha256:3cc041334eef8d5853078a0190e46a2998a70ad98320db512968f1de0561705e as the s2i builder image
  | ---> Installing application source
  | ---> Building your Node application from source
  | Current git config
  | url.https://github.com.insteadof=git@github.com:
  | url.https://.insteadof=ssh://
  | url.https://github.com.insteadof=ssh://git@github.com
  | core.repositoryformatversion=0
  | core.filemode=true
  | core.bare=false
  | core.logallrefupdates=true
  | remote.origin.url=https://github.com/openshift-evangelists/Wild-West-Frontend
  | remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
  | branch.master.remote=origin
  | branch.master.merge=refs/heads/master
  | ---> Installing dependencies
  | ---> Using 'npm install -s --only=production'
  | error: build error: non-zero (13) exit code from 172.30.1.1:5000/openshift/nodejs@sha256:3cc041334eef8d5853078a0190e46a2998a70ad98320db512968f1de0561705e

the same command that s2i runs fails even on my machine

▶ npm install -s --only=production

▶ echo $?
1
kadel commented 5 years ago

when I run it without silent flag i get this:

▶ npm install --only=production
npm ERR! code E404
npm ERR! 404 Not Found: har-validator@5.1.2

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/tkral/.npm/_logs/2018-12-07T09_54_20_082Z-debug.log
jorgemoralespou commented 5 years ago

So, this one seems a dependency issue, right? One would have been able to verify this by bidding locally and pushing the binary? How would that work with the nodejs application? What should one provide as value for --binary?

kadel commented 5 years ago

So, this one seems a dependency issue, right? One would have been able to verify this by bidding locally and pushing the binary? How would that work with the nodejs application? What should one provide as value for --binary?

I don't think that you can do this with nodejs application. Usually, there is no compilation process, it just runs javascript files.

This is error in the dependency installation process.

Ideally, you should see the full error in the log, but problem is that nodejs s2i assemble script runs npm install in silent mode, so if it fails you don't know why :-(

jankleinert commented 5 years ago

I think I've found the dependency problem: 1095 error 404 Not Found: har-validator@5.1.2 That version got unpublished for some reason.

I'm not sure which dependency is resulting in this problem, since we don't explicitly include it, but I'll put ^5.1.3 in our package.json and that should fix it for now at least. I'll update here once that's done and I've verified it works.

jankleinert commented 5 years ago

Okay, that solved the problem for Wild-West-Frontend. The repo is updated. Thanks everyone for helping with this. It didn't even occur to me to go into the pod and check the npm logs - I'll remember that for next time.

ryanj commented 5 years ago

thanks for the quick fix on the missing dependency issue, @jankleinert!

cdrage commented 5 years ago

Hey @jorgemoralespou are you still able to re-produce this?

We will put the on-hold label on here for now until we can find a way to reproduce it.

jorgemoralespou commented 5 years ago

@cdrage haven't had this for a long while

cdrage commented 5 years ago

@jorgemoralespou Could you close this issue?

kadel commented 5 years ago

It worries me a little bit that this issue got magically fixed and we don't know how. 😕 But I can live with that 😃

priyankakhetawat commented 4 years ago

while doing odo push gvg error at waiting for component to start deploymentconfig=nodejs-nodejs-ex-fhfc-app while doing odo push,