ulixee/secret-agent

Handler.close() logs error and hangs when no agents were created

claabs opened this issue · 0 comments

A followup on #370

If a handler is created, but never used (creates an agent), it will log an error and prevent the parent process from exiting (hangs).

Here's the reproduction code:

import { Handler } from 'secret-agent';

async function main() {
  const handler = new Handler();
  await handler.close();
}

main().then(() => console.log('complete'));

Which outputs:

complete
2021-11-28T00:22:05.635Z ERROR [/home/demo/node_modules/@secret-agent/client/connections/ConnectionFactory] Error connecting to core { context: {}, sessionId: null, sessionName: undefined } DisconnectedFromCore: This Agent has been disconnected from Core (coreHost: undefined)
    at RemoteConnectionToCore.internalDisconnect (/home/demo/node_modules/client/connections/ConnectionToCore.ts:235:37)
    at RemoteConnectionToCore.disconnect (/home/demo/node_modules/client/connections/ConnectionToCore.ts:129:16)
    at /home/demo/node_modules/client/lib/Handler.ts:176:51
    at Array.map (<anonymous>)
    at Handler.close (/home/demo/node_modules/client/lib/Handler.ts:176:40)
    at main (/home/demo/src/repro.ts:5:17)
    at Object.<anonymous> (/home/demo/src/repro.ts:8:1)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Module.m._compile (/home/demo/node_modules/ts-node/src/index.ts:1371:23)
    at Module._extensions..js (node:internal/modules/cjs/loader:1153:10) {
  coreHost: undefined,
  code: 'DisconnectedFromCore'
}

Should I be checking for something before deciding to close a handler?