This repository was archived by the owner on Dec 12, 2023. It is now read-only.
[check_ajp] Fix "or die" expressions.#90
Open
ChristopherSchultz wants to merge 1 commit into
Open
Conversation
Using || ends up binding too tightly to the operand on the left, so the `|| xdie` expressions never do anything because all of those trailing-parameters to system calls are not undefined. Changing them to `or xdie` causes them to actually do what you wanted them to do, which was actually terminate if a system call failed. I discovered this by using `check_ajp` across an stunnel setup where the remote server wouldn't properly handshake. The "pong" result ends up being the literal string `null` for some reason, but the real problem is that `sysread` is throwing a "Connection reset" error. `check_ajp` wasn't dying when `sysread` was throwing an error, so ... it continued and returned an UNKNOWN response.
Collaborator
|
Did you have a look into https://github.com/bzed/pkg-nagios-plugins-contrib/blob/master/debian/patches/check_ajp/return_critical_on_failed_connection which patches the script on build time? |
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
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Using || ends up binding too tightly to the operand on the left, so the
|| xdieexpressions never do anything because all of those trailing-parameters to system calls are not undefined.Changing them to
or xdiecauses them to actually do what you wanted them to do, which was actually terminate if a system call failed.I discovered this by using
check_ajpacross an stunnel setup where the remote server wouldn't properly handshake. The "pong" result ends up being the literal stringnullfor some reason, but the real problem is thatsysreadis throwing a "Connection reset" error.check_ajpwasn't dying whensysreadwas throwing an error, so ... it continued and returned an UNKNOWN response.