Bug 1034077 - websocket can not be reconnected.
Summary: websocket can not be reconnected.
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: OpenShift Online
Classification: Red Hat
Component: Containers
Version: 2.x
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: ---
Assignee: Mrunal Patel
QA Contact: libra bugs
URL:
Whiteboard:
: 1030648 (view as bug list)
Depends On:
Blocks: 1030648 1034135
TreeView+ depends on / blocked
 
Reported: 2013-11-25 08:46 UTC by Johnny Liu
Modified: 2015-05-14 23:33 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 1034135 (view as bug list)
Environment:
Last Closed: 2014-01-30 00:50:45 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Johnny Liu 2013-11-25 08:46:39 UTC
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.

Comment 1 Mrunal Patel 2013-11-25 17:10:34 UTC
*** Bug 1030648 has been marked as a duplicate of this bug. ***

Comment 3 Johnny Liu 2013-11-26 03:16:59 UTC
The fix patch is not merged into the latest devenv (devenv_4071), waiting for it.

Comment 4 openshift-github-bot 2013-11-26 05:20:49 UTC
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.

Comment 5 Johnny Liu 2013-11-26 09:45:59 UTC
# 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

Comment 6 Meng Bo 2013-11-27 06:25:54 UTC
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'


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