mirror of
https://github.com/actions/runner.git
synced 2025-12-10 12:36:23 +00:00
Runner service exit after consecutive re-try exits (#2426)
* Runner service exit after consecutive re-try exits * Rename failure counts and include reset count on runner listening for jobs * Changed from graceful shutdown to stopping=true
This commit is contained in:
@@ -24,7 +24,8 @@ if (exitServiceAfterNFailures <= 0) {
|
|||||||
exitServiceAfterNFailures = NaN;
|
exitServiceAfterNFailures = NaN;
|
||||||
}
|
}
|
||||||
|
|
||||||
var consecutiveFailureCount = 0;
|
var unknownFailureRetryCount = 0;
|
||||||
|
var retriableFailureRetryCount = 0;
|
||||||
|
|
||||||
var gracefulShutdown = function () {
|
var gracefulShutdown = function () {
|
||||||
console.log("Shutting down runner listener");
|
console.log("Shutting down runner listener");
|
||||||
@@ -62,7 +63,8 @@ var runService = function () {
|
|||||||
|
|
||||||
listener.stdout.on("data", (data) => {
|
listener.stdout.on("data", (data) => {
|
||||||
if (data.toString("utf8").includes("Listening for Jobs")) {
|
if (data.toString("utf8").includes("Listening for Jobs")) {
|
||||||
consecutiveFailureCount = 0;
|
unknownFailureRetryCount = 0;
|
||||||
|
retriableFailureRetryCount = 0;
|
||||||
}
|
}
|
||||||
process.stdout.write(data.toString("utf8"));
|
process.stdout.write(data.toString("utf8"));
|
||||||
});
|
});
|
||||||
@@ -92,24 +94,38 @@ var runService = function () {
|
|||||||
console.log(
|
console.log(
|
||||||
"Runner listener exit with retryable error, re-launch runner in 5 seconds."
|
"Runner listener exit with retryable error, re-launch runner in 5 seconds."
|
||||||
);
|
);
|
||||||
consecutiveFailureCount = 0;
|
unknownFailureRetryCount = 0;
|
||||||
|
retriableFailureRetryCount++;
|
||||||
|
if (retriableFailureRetryCount >= 10) {
|
||||||
|
console.error(
|
||||||
|
"Stopping the runner after 10 consecutive re-tryable failures"
|
||||||
|
);
|
||||||
|
stopping = true;
|
||||||
|
}
|
||||||
} else if (code === 3 || code === 4) {
|
} else if (code === 3 || code === 4) {
|
||||||
console.log(
|
console.log(
|
||||||
"Runner listener exit because of updating, re-launch runner in 5 seconds."
|
"Runner listener exit because of updating, re-launch runner in 5 seconds."
|
||||||
);
|
);
|
||||||
consecutiveFailureCount = 0;
|
unknownFailureRetryCount = 0;
|
||||||
|
retriableFailureRetryCount++;
|
||||||
|
if (retriableFailureRetryCount >= 10) {
|
||||||
|
console.error(
|
||||||
|
"Stopping the runner after 10 consecutive re-tryable failures"
|
||||||
|
);
|
||||||
|
stopping = true;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
var messagePrefix = "Runner listener exit with undefined return code";
|
var messagePrefix = "Runner listener exit with undefined return code";
|
||||||
consecutiveFailureCount++;
|
unknownFailureRetryCount++;
|
||||||
|
retriableFailureRetryCount = 0;
|
||||||
if (
|
if (
|
||||||
!isNaN(exitServiceAfterNFailures) &&
|
!isNaN(exitServiceAfterNFailures) &&
|
||||||
consecutiveFailureCount >= exitServiceAfterNFailures
|
unknownFailureRetryCount >= exitServiceAfterNFailures
|
||||||
) {
|
) {
|
||||||
console.error(
|
console.error(
|
||||||
`${messagePrefix}, exiting service after ${consecutiveFailureCount} consecutive failures`
|
`${messagePrefix}, exiting service after ${unknownFailureRetryCount} consecutive failures`
|
||||||
);
|
);
|
||||||
gracefulShutdown();
|
stopping = true
|
||||||
return;
|
|
||||||
} else {
|
} else {
|
||||||
console.log(`${messagePrefix}, re-launch runner in 5 seconds.`);
|
console.log(`${messagePrefix}, re-launch runner in 5 seconds.`);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user