Skip to content

Commit ece315c

Browse files
committed
Fix stuck runner
1 parent ebfcb61 commit ece315c

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

apps/peertube-runner/src/server/server.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ export class RunnerServer {
2626
private gracefulShutdown = false
2727
private cleaningUp = false
2828
private initialized = false
29+
private subsequentCheckAvailableErrors = 0
2930

3031
private ipcServer: IPCServer
3132

@@ -229,6 +230,7 @@ export class RunnerServer {
229230
this.checkingAvailableJobs = true
230231

231232
let hadAvailableJob = false
233+
let hadError = false
232234

233235
for (const server of shuffle([ ...this.servers ])) {
234236
try {
@@ -241,7 +243,7 @@ export class RunnerServer {
241243

242244
await this.tryToExecuteJobAsync(server, job)
243245
} catch (err) {
244-
hadAvailableJob = false
246+
hadError = true
245247

246248
const code = (err.res?.body as PeerTubeProblemDocument)?.code
247249

@@ -263,7 +265,14 @@ export class RunnerServer {
263265

264266
this.checkingAvailableJobs = false
265267

266-
if (hadAvailableJob && this.canProcessMoreJobs()) {
268+
this.subsequentCheckAvailableErrors = hadError
269+
? this.subsequentCheckAvailableErrors + 1
270+
: 0
271+
272+
if (this.subsequentCheckAvailableErrors >= 5) {
273+
// Don't retry indefinitely if we always have an error
274+
this.subsequentCheckAvailableErrors = 0
275+
} else if (hadAvailableJob && this.canProcessMoreJobs()) {
267276
await wait(2500)
268277

269278
this.checkAvailableJobs()

0 commit comments

Comments
 (0)