Comments (5)
Author: jeffra45
The beta node with IP 200.0.206.203 is having this same issue.
1k+ sockets open via netstat -n all, except 1, in the CLOSE_WAIT status.
from nodemanager.
Author: justinc
I committed r4071 to add a little more logging to help to find this issue. I believe it shouldn't be too chatty for production use.
from nodemanager.
Author: justinc
armon says:
It is the "slow responder" problem. I can open a socket to the NM, and never write to it,
effectively blocking the Worker Thread indefinitely. Then, I can just create more and more
incoming connections until I finally exhaust all the file handles.
I've attached a test file that replicates this problem.
There are a number of solutions, it is kinda up to you as to what you think is the cleanest.
You can either:
- Modify session to call willblock() to avoid blocking a recv indefinitely
- Wrap all the sockets NM works with in a timeout_socket
Other measures I would take:
- Bound the max size of the connection queue, should never get > 100
- Make the Worker Thread heartbeat every once in a while, have the main thread check the heartbeat
from nodemanager.
Author: justinc
Hmm, I'm convinced you found 'a' bug, but I'm not sure this is 'the'
bug. From what I've seen, when running your tests, this doesn't
result in sockets in the CLOSE_WAIT state. The sockets you open do
all get cleaned up by the OS after a few minutes.
I am testing this by running the node manager on a PL node and the
test program on my local machine.
I'm starting to look at fixing the bug you found now...
from nodemanager.
Author: justinc
Fixed in r4108. Lots of new socket weirdness was discovered.
Big thanks to Armon for his help on this!
from nodemanager.
Related Issues (20)
- update_crontab_entry.py not in RUNNABLE after running build.py HOT 4
- testportfiller.py does not replace <connport> properly HOT 1
- testportfiller.py cannot handle more than 3 ports HOT 1
- ut_nm_validate_connection_limit.r2py and ut_nm_validate_connection_timeout.r2py use localport not allowed HOT 6
- repyV2/ directory empty after build.py HOT 3
- Add repy_v1 runtime and libraries to nodemanager build HOT 3
- Unit tests systematically failing on Linux VirtualBox guest? HOT 12
- `daemon.py` hangs if `init` process has PID other than 1 HOT 6
- `nmmain` self-daemonizing is memory inefficient
- Use NTP throughout
- Simplify `servicelogger.py`'s search for the servicevessel HOT 4
- UTF: Run nodemanager tests against remote nodemanager?
- Improve logging if sandbox startup fails
- Provide means to clear the VM log? HOT 3
- nmAPI: Factor out RSA functions
- Complain if nodemanager is started before running `seattleinstaller`
- Review Nodemanager unit tests with Affix integration. HOT 4
- Crontab error...
- nodemanager needlessly respawns advertise threads
- nminit.py should read user keys from command line
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 nodemanager.