Last modified by Carlijn Kokkeler on 2024/09/17 15:13

From version 3.1
edited by Eva Torken
on 2024/03/22 15:42
Change comment: There is no comment for this version
To version 17.1
edited by Tudor Neacsu
on 2024/06/21 15:54
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -No Data Delivered to Backend System
1 +Runtime Overview Exit codes
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.etorken
1 +XWiki.TudorNeacsu
Content
... ... @@ -1,32 +1,49 @@
1 1  {{container}}{{container layoutStyle="columns"}}(((
2 -In this document, we will use the information from the actual root cause analysis to make a generic view that can be used if you run into the same or a similar problem in the future. Finally, the document will describe the situation, the problem, the analysis, and the result.
2 +In this document, we will use the information from the actual root cause analysis to make a generic view that can be used if you run into the same or a similar problem in the future. The focus will be on providing insights into what is an exit code, the main exit codes returned by a container when it stops and how can that help you to resolve your problem.
3 3  
4 4  Should you have any questions, please get in touch with [[academy@emagiz.com>>mailto:academy@emagiz.com]].
5 5  
6 -== 1. Situation ==
6 +== 1. Key concepts ==
7 7  
8 -No data is delivered to a backend system.
8 +In a previous [[microlearning>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.Runtime Overview||target="blank"]] we explained that a container can have multiple statuses. Among these, there is the status Exit which is returned by the container uppon stopping and comes together with a code. The exit code usually points out the reason why the container stopped. In the section below we describe the most common exit codes that you can encounter in eMagiz.
9 9  
10 -== 2. Problem ==
10 +[[image:Main.Images.RCA-Knowledgebase.WebHome@rca-knowledgebase-runtime-overview-exit-codes.png]]
11 11  
12 -The problem in this case was that the backend system was not receiving any data. This was caused by an unstable H2 database.
12 +== 2. Exit code values ==
13 13  
14 -== 3. Analysis ==
14 +* Exited with code **0**
15 +** The application inside the container completed its work successfully without any errors.
15 15  
16 -=== 3.1 Reproduction ===
17 +* Exited with code **1**
18 +** There was a general error in the application, which could be due to a variety of reasons like incorrect arguments or a failed dependency.
19 +** For example when you are missing a property value.
17 17  
18 -N/A
21 +* Exited with code **125**
22 +** The docker run command was not executed successfully.
23 +** This usually occurs when eMagiz fails to execute a certain command on that container, e.g. Start, Stop.
19 19  
20 -=== 3.2 Analysis ===
25 +* Exited with code **126**
26 +** The command inside the container was found but cannot be executed. This can be due to permission issues or if the command is not executable.
27 +** For example, when eMagiz is running on premises and the permissions are incorrectly configured.
21 21  
22 -The problem led us to investigate the health of the H2 database. The database had a very high CPU and had high CPU after the connector underwent auto-healing. After further investigation it seemed that the H2 was reprocessing messages and therefore not taking on new ones.
29 +* Exited with code **127**
30 +** The command was not found. This usually happens if a script is missing or the path is not set correctly.
23 23  
24 -== 4. Result ==
32 +* Exited with code **137**
33 +** The container was forcefully stopped
34 +** This happens when the container exceeds its memory resource limit (OOM).
25 25  
26 -The removal and re-addition of the H2 database caused the H2 database to return to normal behavior. Afterwards, the problem did not reoccur.
36 +* Exited with code **139**
37 +** The application inside the container crashed due to a segmentation fault, which is usually caused by accessing memory that the process does not have permission to access.
38 +
39 +* Exited with code **143**
40 +** The container stopped gracefully after receiving the operating system's SIGTERM signal, which instructs the container to do so.
41 +** For example, when you command the container to stop via Deploy Architecture or when eMagiz stops the container, e.g. Stop Machine deployment step.
42 +
43 +* Exited with code **255**
44 +** Container exited, returning an exit code outside the acceptable range, meaning the cause of the error is not known.
27 27  
28 -== 5. Suggested Additional Readings ==
29 -N/A
30 30  
31 31  
48 +
32 32  )))((({{toc/}}))){{/container}}{{/container}}