-
Notifications
You must be signed in to change notification settings - Fork 28.6k
[SPARK-3547]Using a special exit code instead of 1 to represent ClassNotFoundExcepti... #2421
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
[SPARK-3547]Using a special exit code instead of 1 to represent ClassNotFoundExcepti... #2421
Conversation
QA tests have started for PR 2421 at commit
|
@liancheng What do you think? |
Tests timed out after a configured wait of |
Hmm, considering that |
test this please |
@@ -27,7 +27,7 @@ set -o posix | |||
FWDIR="$(cd "`dirname "$0"`"/..; pwd)" | |||
|
|||
CLASS="org.apache.spark.sql.hive.thriftserver.HiveThriftServer2" | |||
CLASS_NOT_FOUND_EXIT_STATUS=1 | |||
CLASS_NOT_FOUND_EXIT_STATUS=1024 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Exit code should be between 0 - 255. It's Bash's specification.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, good point! The integer is converted to an unsigned byte under bash. And for 1024, the converted value is actually 0, which is definitely not acceptable... Maybe some prime number like 251 instead?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please keep error codes < 128. From http://en.wikipedia.org/wiki/Exit_status:
When a command terminates on a fatal signal whose number is N, Bash uses the value 128+N as the exit status.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the reference! Good to know, didn't know these specific rules before.
Use 127 instead, it is the biggest prime number in those less than 128. How about it, guys? |
QA tests have started for PR 2421 at commit
|
@WangTaoTheTonic According to the wiki page @vanzin pointed out, values above 125 are used by bash for special purposes. Since the purpose of this PR is to reduce the possibility of exit code collision, just choose any value that is not too common and doesn't violate bash rules, not necessary to be prime :) |
Sorry for not noticing "If a command is not found, the child process created to execute it returns a status of 127. If a command is found but is not executable, the return status is 126". Now using 101. |
QA tests have started for PR 2421 at commit
|
QA tests have finished for PR 2421 at commit
|
QA tests have finished for PR 2421 at commit
|
Gosh, the test failed. I looked "block generator throttling" in NetworkReceiverSuite.scala but couldn't see why. |
Jenkins, test this please. |
QA tests have started for PR 2421 at commit
|
QA tests have finished for PR 2421 at commit
|
QA tests have started for PR 2421 at commit
|
@WangTaoTheTonic You can let Jenkins works by saying like "retest this please" or "test this please" without extra push. |
QA tests have started for PR 2421 at commit
|
QA tests have finished for PR 2421 at commit
|
@sarutak Thanks I see, thought only commiters can do it this way. |
QA tests have finished for PR 2421 at commit
|
@sarutak Actually Jenkins only listens to a limited group of people, and sometimes he even ignores this group for unknown reasons. Lots of work led by Josh had been done in the past weeks to make Jenkins happy, I think he'll be much more friendly and responsive soon :) |
@liancheng Ah, I saw sometimes Jenkins ignores us... but recently he is friendly :D |
...on
As improvement of #1944, we should use more special exit code to represent ClassNotFoundException.