Changes for page Runtime Overview Exit codes
Last modified by Carlijn Kokkeler on 2024/09/17 15:13
From version 7.1
edited by Tudor Neacsu
on 2024/06/21 08:59
on 2024/06/21 08:59
Change comment:
There is no comment for this version
To version 12.1
edited by Tudor Neacsu
on 2024/06/21 09:41
on 2024/06/21 09:41
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,33 +1,36 @@ 1 1 {{container}}{{container layoutStyle="columns"}}((( 2 -In this document, we willusetheinformationfrom theactualroot causeanalysisto makea genericviewthatcanbeusedifyouruninto thesameorasimilarproblem in thefuture.Finally,the documentwilldescribethe situation,the problem,theanalysis, andtheresult.2 +In this microlearning, we will give insights into what is an exit code, the main exit codes returned by a container when it stops and how can that help a Support Engineer to conduct an RCA. 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 - Nodatais delivered to abackend system.8 + In a previous [[microlearning>>https://docs.emagiz.com/bin/view/Main/eMagiz%20Academy/Microlearnings/Crash%20Course/Crash%20Course%20Platform/Runtime%20Overview||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 go into more details for the most common exit codes that you could see in eMagiz. 9 9 10 - == 2.Problem==10 +[[image:Main.Images.RCA-Knowledgebase.WebHome@rca-knowledgebase-runtime-overview-exit-codes.png]] 11 11 12 - Theprobleminthiscase was that the backendsystemwas not receivingany data. This was caused by an unstableH2 database.12 +== 2. Exit code values == 13 13 14 - ==3.Analysis==14 +* Exited with code **0**: The application inside the container completed its work successfully without any errors. 15 15 16 - ===3.1Reproduction===16 +* Exited with code **1**: There was a general error in the application, which could be due to a variety of reasons like incorrect arguments or a failed dependency. For example when you are missing a property value. 17 17 18 - N/A18 +* Exited with code **125**: The docker run command was not executed successfully. This usually occurs when eMagiz fails to execute a certain command on that container, e.g. Start, Stop. 19 19 20 - ===3.2Analysis===20 +* Exited with code **126**: 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. This can happen especially when eMagiz is running on premises and the permissions are incorrectly configured. 21 21 22 - Theproblem ledus toinvestigate thequeue statisticsof theflowresponsiblefor delivering thedata.Here, itwasseenhatdata wasflowing throught the queue, but ina repetitive pattern.In the runtimestatistics a very high CPU was observed. Consequently,the health ofthe H2 databasewasnvestigated.The H2 databasewasprocessingthe messagesrepeatedlyafter theconnector had undergone auto-healing.Therefore,it was notprocessing thenew messages.22 +* Exited with code **127**: 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==24 +* Exited with code **137**: The container was forcefully stopped. 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. The resetting of the H2 database should also solve the problem. This can be done by moving to Deploy -> Architecture and pressing 'Reset H2'. Do remember that resetting the H2 database or removing and readding it will result in a loss of all the data on the database. 26 +* Exited with code **139**: 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. 27 + 28 +* Exited with code **143**: The container stopped gracefully terminated after receiving the operating system's SIGTERM signal, which instructs the container to do so. For example, when you command the container to stop via Deploy Architecture or when eMagiz stops the container, e.g. Stop Machine deployment step. 29 + 30 +* Exited with code **255**: Container exited, returning an exit code outside the acceptable range, meaning the cause of the error is not known. 27 27 32 + 28 28 == 5. Suggested Additional Readings == 29 -For more information on resetting a H2 Database, please check out the following microlearning: 30 -* [[Reset H2 Database>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.eMagiz Runtime Management.intermediate-runtime-management-reset-h2.WebHome||target="blank"]] 31 31 32 32 33 33 )))((({{toc/}}))){{/container}}{{/container}}