-
-
Notifications
You must be signed in to change notification settings - Fork 420
upsd: chunk the MAXCONN-sized array processing into several smaller "sysmaxconn"-sized polls as needed #3303
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
+186
−49
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
bda4065 to
d2b22f5
Compare
|
❌ Build nut 2.8.4.4209-master failed (commit 432c4ea837 by @jimklimov) |
…oc: track "sysmaxconn" not as a reason to fail data server configuration, but to chunk the MAXCONN-sized array processing into several smaller polls as needed [networkupstools#3302] Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
|
❌ Build nut 2.8.4.4212-master failed (commit 9b177e4e4b by @jimklimov) |
…mmandline [networkupstools#3294, networkupstools#3305] Closes: networkupstools#3305 Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
…etworkupstools#3302] Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
…s#3302] Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
… (equality should be ok) [networkupstools#3302] Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
|
❌ Build nut 2.8.4.4216-master failed (commit c5e08864d0 by @jimklimov) |
… NUT_SYSMAXCONN_LIMIT envvar to tweak [networkupstools#3302] Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
|
✅ Build nut 2.8.4.4217-master completed (commit 9c1ec975fb by @jimklimov) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Connection stability issues
Issues about driver<->device and/or networked connections (upsd<->upsmon...) going AWOL over time
enhancement
portability
We want NUT to build and run everywhere possible
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes: #3302
Should help on systems where the POSIX
_SC_OPEN_MAXis configured to a lower value than a large monitoring deployment needs, and on Windows whereMAXIMUM_WAIT_OBJECTSis hardcoded to just 64.Earlier such systems either failed to handle all needed file descriptors, or refused to start when
MAXCONNwas increased accordingly (and beyond what the OS allows to poll in one operation). Now they should try to poll in smaller chunks with smaller timeouts, ultimately behaving similarly. There should be no change whennfds(amount of connections of interest to a loop cycle) is small enough to fit into onepoll()orWaitForMultipleObjects()run.CC @aarnold-sd68 : testing welcome, your Windows setup with its severely constrained
sysmaxconnand lots of UPSes should provide a reasonable testbed. I am particularly interested to know if I got the integer division and zero/nonzero remainder maths right (should be testable withMAXCONNsetting and perhaps varying amount of NUT clients to hit multiples of 64 as well as values slightly above/below that).Hopefully https://ci.appveyor.com/project/nut-travis/nut/builds/53499323 will provide the needed binary archive :)