From 2ac6cb3745c650c72667d3748ff50eabc81dc1b4 Mon Sep 17 00:00:00 2001 From: undefined Date: Wed, 24 Mar 2021 22:12:21 +0800 Subject: [PATCH] =?UTF-8?q?core:=20=E8=AF=84=E6=B5=8B=E6=9C=BA=E7=A6=BB?= =?UTF-8?q?=E7=BA=BF=E5=90=8E=E5=81=9C=E6=AD=A2=E6=9C=AA=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E7=9A=84=E4=BB=BB=E5=8A=A1=E5=88=86=E9=85=8D=20fixes=20#60?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 2 +- package.json | 1 + packages/hydrooj/package.json | 2 +- packages/hydrooj/src/handler/judge.ts | 5 +++++ 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 56c849ee..e27d4204 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,7 +27,7 @@ jobs: - name: Build run: yarn build - name: Lint - run: yarn lint + run: yarn lint:ci - name: Unit Test run: yarn jest --runInBand - name: Report Coverage diff --git a/package.json b/package.json index 9efad42e..d736e85f 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "build": "node build/build.js", "build:watch": "node build/build.js --watch", "lint": "eslint packages --ext ts --fix", + "lint:ci": "eslint packages --ext ts", "pub": "node build/publish", "jest": "node build/jest", "debug": "node --async-stack-traces --trace-deprecation --enable-source-maps build/start --debug", diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 207f227a..b9c7d890 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.20.27", + "version": "2.20.28", "bin": "bin/hydrooj.js", "main": "dist/loader.js", "typings": "dist/loader.d.ts", diff --git a/packages/hydrooj/src/handler/judge.ts b/packages/hydrooj/src/handler/judge.ts index 4a2f69ae..610068c2 100644 --- a/packages/hydrooj/src/handler/judge.ts +++ b/packages/hydrooj/src/handler/judge.ts @@ -112,8 +112,10 @@ export class JudgeFilesDownloadHandler extends Handler { class JudgeConnectionHandler extends ConnectionHandler { processing: any = null; + closed = false; async prepare() { + logger.info('Judge daemon connected from ', this.request.ip); this.newTask(); } @@ -123,6 +125,7 @@ class JudgeConnectionHandler extends ConnectionHandler { while (!t) { // eslint-disable-next-line no-await-in-loop await sleep(100); + if (this.closed) return; // eslint-disable-next-line no-await-in-loop t = await task.getFirst({ type: 'judge' }); } @@ -146,10 +149,12 @@ class JudgeConnectionHandler extends ConnectionHandler { } async cleanup() { + logger.info('Judge daemon disconnected from ', this.request.ip); if (this.processing) { await record.reset(this.processing.domainId, this.processing.rid, false); await task.add(this.processing); } + this.closed = true; } }