No funded issue found.
Check out the Issue Explorer
Be the OSS Funding you wish to see in the world.
Looking to fund some work? You can submit a new Funded Issue here .
Time left
Opened
Issue Type
Workers Auto Approve
Project Type
Time Commitment
Experience Level
Permissions
Accepted
Reserved For
Disconnect on WebSockets ping
smartcontractkit
Go
### System Information
- Network (Main net, Ropsten, etc.): Ropsten
- Ethereum client (Geth/Parity) and version: Geth v1.8.17-unstable-bd1f7ebd
- Go version: 1.11
- Host OS: macOS 10
- Commit (INFO line when starting the node): 0fa8c72aaf01717ddd8207b4b72715da09eb14d6
### Environment Variables
```
LOG_LEVEL: debug
ROOT: /chainlink
CHAINLINK_PORT: 6688
CHAINLINK_TLS_PORT: 6689
CHAINLINK_TLS_HOST:
ETH_URL: ws://host.docker.internal:4000/
ETH_CHAIN_ID: 3
CLIENT_NODE_URL: http://localhost:6688
TX_MIN_CONFIRMATIONS: 2
TASK_MIN_CONFIRMATIONS: 0
ETH_GAS_BUMP_THRESHOLD: 12
ETH_GAS_BUMP_WEI: 5000000000
ETH_GAS_PRICE_DEFAULT: 20000000000
LINK_CONTRACT_ADDRESS: 0x20fe562d797a42dcb3399062ae9546cd06f63280
MINIMUM_CONTRACT_PAYMENT: 1.000000000000000000
ORACLE_CONTRACT_ADDRESS:
DATABASE_POLL_INTERVAL: 500ms
ALLOW_ORIGINS: *
CHAINLINK_DEV: true
SESSION_TIMEOUT: 15m0s
REAPER_EXPIRATION: 240h0m0s
```
### Additional Information
This needs to be tested with a WS server that can send keep-alive or pure WS pings.
ChainLink will disconnect from WS with `Error in new head subscription, disconnected` if it receives a ping over websockets (see full error below). It will attempt to reconnect, but will constantly close the connection. It sends close reason `1006` / "closed abnormally".
To recreate, set up a geth ws proxy and send a WS ping or keep-alive ping. From my experience, the CL node will respond with a pong, but then instantly close the connection.
Full error given when ping is sent:
```
2018-10-03T09:16:51Z [ERROR] Error in new head subscription, disconnected services/head_tracker.go:186 err=write tcp 172.17.0.3:48322->192.168.65.2:4000: i/o timeout stacktrace=github.com/smartcontractkit/chainlink/logger.Errorw
/go/src/github.com/smartcontractkit/chainlink/logger/logger.go:107
github.com/smartcontractkit/chainlink/services.(*HeadTracker).subscribeToNewHeads.func1
/go/src/github.com/smartcontractkit/chainlink/services/head_tracker.go:186
2018-10-03T09:16:51Z [INFO] Reconnecting to node ws://host.docker.internal:4000/ in 1s services/head_tracker.go:237
2018-10-03T09:16:52Z [ERROR] Error reconnecting to ws://host.docker.internal:4000/ services/head_tracker.go:241 err=write tcp 172.17.0.3:48322->192.168.65.2:4000: i/o timeout stacktrace=github.com/smartcontractkit/chainlink/logger.Errorw
/go/src/github.com/smartcontractkit/chainlink/logger/logger.go:107
github.com/smartcontractkit/chainlink/services.(*HeadTracker).reconnectLoop
/go/src/github.com/smartcontractkit/chainlink/services/head_tracker.go:241
github.com/smartcontractkit/chainlink/services.(*HeadTracker).subscribeToNewHeads.func1
/go/src/github.com/smartcontractkit/chainlink/services/head_tracker.go:187
```
Here's a PoC for the ws proxy in NodeJS: https://gist.github.com/boxhock/c71dcb7f036a3d35dc4adfde05c79e0e
This will fail by default because `keepalive: false` is commented out (timeout is 20s). It will also fail if you uncomment the ping function.
Just for reference, ping and pong will send the `0x9` and `0xA` opcodes.
Setup your profile
Tell us a little about you:
Skills
No results found for [[search]] .
Type to search skills..
Bio Required
[[totalcharacter]] / 240
Are you currently looking for work?
[[ option.string ]]
Next
Setup your profile
Our tools are based on the principles of earn (💰), learn (📖), and meet (💬).
Select the ones you are interested in. You can change it later in your settings.
I'm also an organization manager looking for a great community.
Back
Next
Save
Enable your organization profile
Gitcoin products can help grow community around your brand. Create your tribe, events, and incentivize your community with bounties. Announce new and upcoming events using townsquare. Find top-quality hackers and fund them to work with you on a grant.
These are the organizations you own. If you don't see your organization here please be sure that information is public on your GitHub profile. Gitcoin will sync this information for you.
Select the products you are interested in:
Out of the box you will receive Tribes Lite for your organization. Please provide us with a contact email:
Email
Back
Save