Comments (3)
I removed the genserv and use websockex state directly and the issue is gone. I guess websockex must be doing something that is not compatible with it being nested in a genserv.
from websockex.
I finaly understood what was happening, it was not the genserv fault. It was just a coincidence.
The websocket endpoint was temporarily offline for a sec, this triggered a disconnection, which killed the process. The supervisor would restart immediately the websocket process but the endpoint wasn't back up, which would kill the process again and then the supervisor would restart it again. This would hit the supervisor "max_restart" and kill the whole application.
The solution I ended up using is to "wrap" the websocket process with an intermediate process. This intermediate process is trapping exit and is managing an exponential backoff for retrying reconnection.
from websockex.
Sorry, I've been sick/busy for the last week or so.
There is actually an actionable item here and it's better logging when the process crashes. Right now if it's under a supervisor, then the error is eaten by the supervisor trap and never shown.
There was an issue with getting stack traces correctly that prevented a good error message with a stacktrace when I first wrote WebSockex. That's since been fixed and needs to be implemented.
from websockex.
Related Issues (20)
- Performance optimisation
- Root URL without trailing slash leads to %WebSockex.ConnError{original: :closed}) HOT 1
- Send mesage from handle_frame HOT 1
- Async mode logging unnecessary messages HOT 4
- `handle_connect/2` first connection HOT 1
- handle disconnect backoff
- Rename reply action
- Is this still being maintained? HOT 4
- Supervised Clients don't raise crash errors HOT 13
- Closing connection? HOT 2
- [Bug]
- async option not working? HOT 1
- handle_cast not working?
- How to shutdown/close websocket? HOT 4
- Using SOCKS5 proxy protocol HOT 1
- Connection goes silent without errors (Binance) HOT 5
- test suite fails in Erlang 24
- Add init and handle_call to seamlessly support behaviors designed around GenServer
- Telemetry Events? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from websockex.