Fix shutdown logic for slave

Shutdown running instances and close the connection to the master server
on slave stop.  Remove call to process.exit on shutdown as it's no
longer needed.
This commit is contained in:
Hornwitser committed 2020-03-22 03:30:57 +01:00
1 parent 7aa340675b
commit 9f74d7b2ec
2 files changed
+13 -8

No files matched your search

+12 -7
View File
@@ -640,10 +640,10 @@ class Slave extends link.Link {
}
async stop() {
for (let instanceConnection of this.instanceConnections.values()) {
// XXX this neeeds more thought to it
// await instance.stop();
for (let instanceId of this.instanceConnections.keys()) {
await this.stopInstance(instanceId);
}
this.connector.close("shutdown");
}
}
@@ -841,10 +841,15 @@ async function startClient() {
secondSigint = true;
console.log("Caught interrupt signal, shutting down");
slave.stop().then(() => {
// There's currently no shutdown mechanism for instance plugins so
// they keep the event loop alive.
process.exit();
slave.stop().catch(err => {
console.error(`
+---------------------------------------------------------------+
| Unexpected error occured while stopping slave, please report |
| it to https://github.com/clusterio/factorioClusterio/issues |
+---------------------------------------------------------------+`
);
console.error(err);
process.exit(1);
});
});
+1 -1
View File
@@ -79,7 +79,7 @@ before(async function() {
});
after(async function() {
this.timeout(200000);
this.timeout(20000);
if (slaveProcess) {
console.log("Shutting down slave");
slaveProcess.kill("SIGINT");