Description of problem: User connect websocket successfully, then user terminate it by CTL+C or create one more app, then try to reconnect previous websocket, failed. Version-Release number of selected component (if applicable): devenv_4067 How reproducible: Always Steps to Reproduce: 1.Create nodejs-0.10 app. 2.Use attachment to replace server.js 3.Add "websocket" to package.json "dependencies": { "websocket": ">= 1.0.7" }, 4. Then git push 5. On client, access websocket of your app successfully, then terminate it by CTL+C. # node client.js ws://nodejs010app-jialiu.dev.rhcloud.com:8000/ Connecting to ws://nodejs010app-jialiu.dev.rhcloud.com:8000/ WebSocket client connected Received: '5967747' Received: '7177040' Received: '8560003' Received: '8063458' ^C 6. Try to reconnect it, if it is reconnected successfully, pls create one more app that would make node-web-proxy service reload, and try to reconnect. Actual results: # node client.js ws://nodejs010app-jialiu.dev.rhcloud.com:8000/ Connecting to ws://nodejs010app-jialiu.dev.rhcloud.com:8000/ WebSocket client connected echo-protocol Connection Closed Seen from /var/log/node-web-proxy/supervisor.log: /opt/rh/nodejs010/root/usr/lib/node_modules/ws/lib/WebSocket.js:175 else throw new Error('not opened'); ^ Error: not opened at WebSocket.send (/opt/rh/nodejs010/root/usr/lib/node_modules/ws/lib/WebSocket.js:175:16) at WebSocket.<anonymous> (/opt/rh/nodejs010/root/usr/lib/node_modules/openshift-node-web-proxy/lib/proxy/ProxyServer.js:510:14) at WebSocket.EventEmitter.emit (events.js:98:17) at Receiver.self._receiver.ontext (/opt/rh/nodejs010/root/usr/lib/node_modules/ws/lib/WebSocket.js:555:10) at Receiver.opcodes.1.finish (/opt/rh/nodejs010/root/usr/lib/node_modules/ws/lib/Receiver.js:397:14) at Receiver.expectHandler (/opt/rh/nodejs010/root/usr/lib/node_modules/ws/lib/Receiver.js:378:33) at Receiver.add (/opt/rh/nodejs010/root/usr/lib/node_modules/ws/lib/Receiver.js:93:24) at Socket.firstHandler (/opt/rh/nodejs010/root/usr/lib/node_modules/ws/lib/WebSocket.js:535:22) at Socket.EventEmitter.emit (events.js:95:17) at Socket.<anonymous> (_stream_readable.js:720:14) DEBUG: Program node /opt/rh/nodejs010/root/usr/lib/node_modules/openshift-node-web-proxy/bin/web-proxy.js --config /etc/openshift/web-proxy-config.json exited with code 8 DEBUG: Starting child process with 'node /opt/rh/nodejs010/root/usr/lib/node_modules/openshift-node-web-proxy/bin/web-proxy.js --config /etc/openshift/web-proxy-config.json' 1385365045358:INFO:[25/Nov/2013:02:37:25 -0500] - ProxyServer using config '/etc/openshift/web-proxy-config.json' 1385365045367:INFO:[25/Nov/2013:02:37:25 -0500] - Initializing ProxyServer ... 1385365045370:INFO:[25/Nov/2013:02:37:25 -0500] - Stopping protocol servers for: 1385365045396:INFO:[25/Nov/2013:02:37:25 -0500] - Creating protocol server for nonsecure_http_proxy 1385365045397:INFO:[25/Nov/2013:02:37:25 -0500] - Creating websocket server for nonsecure_http_proxy 1385365045403:INFO:[25/Nov/2013:02:37:25 -0500] - Creating protocol server for secure_http_proxy 1385365045409:INFO:[25/Nov/2013:02:37:25 -0500] - Creating websocket server for secure_http_proxy 1385365045411:INFO:[25/Nov/2013:02:37:25 -0500] - Initialized ProxyServer 1385365045411:INFO:[25/Nov/2013:02:37:25 -0500] - Starting protocol servers for: nonsecure_http_proxy,secure_http_proxy 1385365045411:INFO:[25/Nov/2013:02:37:25 -0500] - Starting protocol handler for nonsecure_http_proxy ... 1385365045414:INFO:[25/Nov/2013:02:37:25 -0500] - Starting protocol handler for secure_http_proxy ... 1385365045415:INFO:[25/Nov/2013:02:37:25 -0500] - secure_http_proxy listening on undefined:8000 1385365045415:INFO:[25/Nov/2013:02:37:25 -0500] - secure_http_proxy listening on undefined:8443 Expected results: Should reconnect websocket successfully. Additional info: 1. Restart openshift-node-web-proxy service, reconnect websocket successfully. 2. If user connect websoket using internal IP directly, reconnect websocket always succeed.
*** Bug 1030648 has been marked as a duplicate of this bug. ***
https://github.com/openshift/origin-server/pull/4250
The fix patch is not merged into the latest devenv (devenv_4071), waiting for it.
Commit pushed to master at https://github.com/openshift/origin-server https://github.com/openshift/origin-server/commit/7359cfe0611d4e4eff5e6df870663d26e98bc0a9 Bug 1034077: Fix for backend connection not opened.
# node client.js ws://mynodejs-jialiu.dev.rhcloud.com:8000/ Connecting to ws://mynodejs-jialiu.dev.rhcloud.com:8000/ WebSocket client connected Received: '7823715' Received: '13512563' Received: '15381539' Received: '2037429' Received: '831197' ^C # node client.js ws://mynodejs-jialiu.dev.rhcloud.com:8000/ Connecting to ws://mynodejs-jialiu.dev.rhcloud.com:8000/ WebSocket client connected Received: '16055111' Received: '5720340' Received: '6306616' Received: '15012734' ^C # rhc app create myapp php-5.3 # node client.js ws://mynodejs-jialiu.dev.rhcloud.com:8000/ Connecting to ws://mynodejs-jialiu.dev.rhcloud.com:8000/ WebSocket client connected Received: '8901183' Received: '2002356' Received: '1678159' Received: '13755069' ^C
Checked on current STG (devenv-stage_596), issue has been fixed. [root@ip-10-194-7-54 ~]# node client.js ws://no1-bmeng1stg.stg.rhcloud.com:8000/ Connecting to ws://no1-bmeng1stg.stg.rhcloud.com:8000/ WebSocket client connected Received: '6627737' Received: '2020235' Received: '10106080' ^C[root@ip-10-194-7-54 ~]# node client.js ws://no1-bmeng1stg.stg.rhcloud.com:8000/ Connecting to ws://no1-bmeng1stg.stg.rhcloud.com:8000/ WebSocket client connected Received: '4515326' Received: '10865397' Received: '1457789' ^C[root@ip-10-194-7-54 ~]# node client.js ws://no1-bmeng1stg.stg.rhcloud.com:8000/ Connecting to ws://no1-bmeng1stg.stg.rhcloud.com:8000/ WebSocket client connected Received: '1077215' Received: '14606716' Received: '6390572' Received: '14091290' ^C[root@ip-10-194-7-54 ~]# node client.js ws://no1-bmeng1stg.stg.rhcloud.com:8000/ Connecting to ws://no1-bmeng1stg.stg.rhcloud.com:8000/ WebSocket client connected Received: '2552922' Received: '1013125' Received: '9502966'