I am running a java process on amazon ec2. It ran for 72 mins and then suddenly I get "java result 137". That is all, there are no exceptions or any other error messages. I have searched for this error but couldn't find anything useful. What could be the cause of it and how to resolve it? Please let me know.
相关问题
- Delete Messages from a Topic in Apache Kafka
- Jackson Deserialization not calling deserialize on
- MongoDB can not create unique sparse index (duplic
- How to maintain order of key-value in DataFrame sa
- StackExchange API - Deserialize Date in JSON Respo
Just in case someone is interested in knowing where this 128 number comes from; the reason can be found in the OpenJDK source code. See: UNIXProcess_md.c
From the comments in the Java_java_lang_UNIXProcess_waitForProcessExit method:
So, that is the reason why the JVM developers decided to add 128 to the child's return status when the child exits because of a signal.
I leave here the method in charge of returning status from child process:
Exit codes above 127 typically mean the process was stopped because of a Signal.
The exit code 137 then resolves to 128 + 9, whereas Signal 9 is SIGKILL, i.e. the process was forcefully killed. This can among others be a "kill -9 " command. However in your case this could be an out of memory condition on the operating system, which causes a functionality called "OOM Killer" to stop the process which is using up most of the memory in order to keep the OS itself stable even in such a condition.
See this question for a similar discussion.