From fe10ae672e055e3c63589fa548cd3e719609ac40 Mon Sep 17 00:00:00 2001 From: Michael Fox Date: Thu, 2 Aug 2018 13:30:56 -0500 Subject: [PATCH 1/3] Added logic to verify chrome pid exists before assuming chrome is running --- packages/lambda/src/index.js | 4 ++-- packages/lambda/src/utils.js | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/packages/lambda/src/index.js b/packages/lambda/src/index.js index d642c0b5..abf4e728 100644 --- a/packages/lambda/src/index.js +++ b/packages/lambda/src/index.js @@ -1,7 +1,7 @@ import fs from 'fs' // import path from 'path' import LambdaChromeLauncher from './launcher' -import { debug } from './utils' +import { debug, processExists } from './utils' import DEFAULT_CHROME_FLAGS from './flags' const DEVTOOLS_PORT = 9222 @@ -28,7 +28,7 @@ export default async function launch ({ } = {}) { const chromeFlags = [...DEFAULT_CHROME_FLAGS, ...flags] - if (!chromeInstance) { + if (!chromeInstance || !processExists(chromeInstance.pid)) { if (process.env.AWS_EXECUTION_ENV || forceLambdaLauncher) { chromeInstance = new LambdaChromeLauncher({ chromePath, diff --git a/packages/lambda/src/utils.js b/packages/lambda/src/utils.js index 1fd86d7f..8631c955 100644 --- a/packages/lambda/src/utils.js +++ b/packages/lambda/src/utils.js @@ -24,3 +24,18 @@ export function makeTempDir () { .toString() .trim() } + +/** + * Checks if a process currently exists by process id. + * @param pid number process id to check if exists + * @returns boolean true if process exists, false if otherwise + */ +export function processExists (pid) { + let exists = true + try { + process.kill(pid, 0) + } catch (error) { + exists = false + } + return exists +} From 303d8f2a1329ff5c48c55d9d72da65a59d1e5e81 Mon Sep 17 00:00:00 2001 From: Michael Fox Date: Thu, 2 Aug 2018 13:38:54 -0500 Subject: [PATCH 2/3] Testing --- packages/serverless-plugin/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/serverless-plugin/package.json b/packages/serverless-plugin/package.json index 5d35cb0e..da2fed68 100644 --- a/packages/serverless-plugin/package.json +++ b/packages/serverless-plugin/package.json @@ -40,7 +40,7 @@ }, "homepage": "https://github.com/adieuadieu/serverless-chrome/tree/master/packages/serverless-plugin", "dependencies": { - "@serverless-chrome/lambda": "1.0.0-51", + "@serverless-chrome/lambda": "defendertx/serverless-chrome/packages/lambda#feature/pid-check", "fs-p": "2.0.0", "globby": "6.1.0" }, From 4fc078caa65d934ee906118d9720b5be3381b3e7 Mon Sep 17 00:00:00 2001 From: Michael Fox Date: Thu, 2 Aug 2018 13:49:07 -0500 Subject: [PATCH 3/3] Revert "Testing" This reverts commit 303d8f2a1329ff5c48c55d9d72da65a59d1e5e81. --- packages/serverless-plugin/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/serverless-plugin/package.json b/packages/serverless-plugin/package.json index da2fed68..5d35cb0e 100644 --- a/packages/serverless-plugin/package.json +++ b/packages/serverless-plugin/package.json @@ -40,7 +40,7 @@ }, "homepage": "https://github.com/adieuadieu/serverless-chrome/tree/master/packages/serverless-plugin", "dependencies": { - "@serverless-chrome/lambda": "defendertx/serverless-chrome/packages/lambda#feature/pid-check", + "@serverless-chrome/lambda": "1.0.0-51", "fs-p": "2.0.0", "globby": "6.1.0" },