Unverified Commit a272da9e authored by J-shang's avatar J-shang Committed by GitHub
Browse files

hotfix unhandled `TrainingService is not assigned` and extend exec time in pipeline (#3442)

parent 62af469b
authorName: nni authorName: nni
experimentName: default_test experimentName: default_test
maxExecDuration: 5m maxExecDuration: 10m
maxTrialNum: 8 maxTrialNum: 8
trialConcurrency: 8 trialConcurrency: 8
searchSpacePath: ../naive_trial/search_space.json searchSpacePath: ../naive_trial/search_space.json
......
...@@ -260,9 +260,9 @@ def run(args): ...@@ -260,9 +260,9 @@ def run(args):
continue continue
# remote mode need more time to cleanup # remote mode need more time to cleanup
if args.ts == 'remote': if args.ts == 'remote':
wait_for_port_available(8080, 180) wait_for_port_available(8080, 240)
else: else:
wait_for_port_available(8080, 30) wait_for_port_available(8080, 60)
# adl mode need more time to cleanup PVC # adl mode need more time to cleanup PVC
if args.ts == 'adl' and name == 'nnictl-resume-2': if args.ts == 'adl' and name == 'nnictl-resume-2':
......
...@@ -326,22 +326,26 @@ class NNIManager implements Manager { ...@@ -326,22 +326,26 @@ class NNIManager implements Manager {
} }
public async stopExperimentBottomHalf(): Promise<void> { public async stopExperimentBottomHalf(): Promise<void> {
const trialJobList: TrialJobDetail[] = await this.trainingService.listTrialJobs(); try {
const trialJobList: TrialJobDetail[] = await this.trainingService.listTrialJobs();
// DON'T try to make it in parallel, the training service may not handle it well.
// If there is performance concern, consider to support batch cancellation on training service. // DON'T try to make it in parallel, the training service may not handle it well.
for (const trialJob of trialJobList) { // If there is performance concern, consider to support batch cancellation on training service.
if (trialJob.status === 'RUNNING' || for (const trialJob of trialJobList) {
trialJob.status === 'WAITING') { if (trialJob.status === 'RUNNING' ||
try { trialJob.status === 'WAITING') {
this.log.info(`cancelTrialJob: ${trialJob.id}`); try {
await this.trainingService.cancelTrialJob(trialJob.id); this.log.info(`cancelTrialJob: ${trialJob.id}`);
} catch (error) { await this.trainingService.cancelTrialJob(trialJob.id);
this.log.debug(`ignorable error on canceling trial ${trialJob.id}. ${error}`); } catch (error) {
this.log.debug(`ignorable error on canceling trial ${trialJob.id}. ${error}`);
}
} }
} }
await this.trainingService.cleanUp();
} catch (err) {
this.log.error(`${err.stack}`);
} }
await this.trainingService.cleanUp();
if (this.experimentProfile.endTime === undefined) { if (this.experimentProfile.endTime === undefined) {
this.setEndtime(); this.setEndtime();
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment