From f102ce8464438af4962061a46201a394041479e6 Mon Sep 17 00:00:00 2001 From: Willi Goesgens Date: Mon, 2 Feb 2015 18:41:34 +0100 Subject: [PATCH 1/3] If we receive SIGABRT we want to keep the binary for core dump analysis too. --- js/server/modules/org/arangodb/testing.js | 28 +++++++++++++++-------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/js/server/modules/org/arangodb/testing.js b/js/server/modules/org/arangodb/testing.js index c237b2aaf3..17f650a399 100644 --- a/js/server/modules/org/arangodb/testing.js +++ b/js/server/modules/org/arangodb/testing.js @@ -413,7 +413,7 @@ function checkInstanceAlive(instanceInfo, options) { instanceInfo.exitStatus = res; print(instanceInfo); if (res.hasOwnProperty('signal') && - (res.signal === 11)) + ((ress.signal === 11) || (ress.signal === 6))) { storeArangodPath = "/var/tmp/arangod_" + instanceInfo.pid.pid; print("Core dump written; copying arangod to " + @@ -437,7 +437,7 @@ function checkInstanceAlive(instanceInfo, options) { var checkpid = instanceInfo.kickstarter.runInfo[part].pids[pid]; var ress = statusExternal(checkpid, false); if (ress.hasOwnProperty('signal') && - (ress.signal === 11)) { + ((ress.signal === 11) || (ress.signal === 6))) { storeArangodPath = "/var/tmp/arangod_" + checkpid.pid; print("Core dump written; copying arangod to " + storeArangodPath + " for later analysis."); @@ -1393,16 +1393,24 @@ testFuncs.dump = function (options) { var results = {}; results.setup = runInArangosh(options, instanceInfo, makePathUnix("js/server/tests/dump-setup"+cluster+".js")); - if (results.setup.status === true) { + if (checkInstanceAlive(instanceInfo) && + (results.setup.status === true)) { results.dump = runArangoDumpRestore(options, instanceInfo, "dump", "UnitTestsDumpSrc"); - results.restore = runArangoDumpRestore(options, instanceInfo, "restore", - "UnitTestsDumpDst"); - results.test = runInArangosh(options, instanceInfo, - makePathUnix("js/server/tests/dump"+cluster+".js"), - [ "--server.database", "UnitTestsDumpDst" ]); - results.tearDown = runInArangosh(options, instanceInfo, - makePathUnix("js/server/tests/dump-teardown"+cluster+".js")); + if (checkInstanceAlive(instanceInfo)) { + results.restore = runArangoDumpRestore(options, instanceInfo, "restore", + "UnitTestsDumpDst"); + + if (checkInstanceAlive(instanceInfo)) { + results.test = runInArangosh(options, instanceInfo, + makePathUnix("js/server/tests/dump"+cluster+".js"), + [ "--server.database", "UnitTestsDumpDst" ]); + if (checkInstanceAlive(instanceInfo)) { + results.tearDown = runInArangosh(options, instanceInfo, + makePathUnix("js/server/tests/dump-teardown"+cluster+".js")); + } + } + } } print("Shutting down..."); shutdownInstance(instanceInfo,options); From 43e61168fa8127ff93c3f1376b380f7b3fbc135d Mon Sep 17 00:00:00 2001 From: Willi Goesgens Date: Mon, 2 Feb 2015 19:02:52 +0100 Subject: [PATCH 2/3] Fix checking of cluster health in dump tests --- js/server/modules/org/arangodb/testing.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/js/server/modules/org/arangodb/testing.js b/js/server/modules/org/arangodb/testing.js index 17f650a399..89c721b439 100644 --- a/js/server/modules/org/arangodb/testing.js +++ b/js/server/modules/org/arangodb/testing.js @@ -1393,19 +1393,19 @@ testFuncs.dump = function (options) { var results = {}; results.setup = runInArangosh(options, instanceInfo, makePathUnix("js/server/tests/dump-setup"+cluster+".js")); - if (checkInstanceAlive(instanceInfo) && + if (checkInstanceAlive(instanceInfo, options) && (results.setup.status === true)) { results.dump = runArangoDumpRestore(options, instanceInfo, "dump", "UnitTestsDumpSrc"); - if (checkInstanceAlive(instanceInfo)) { + if (checkInstanceAlive(instanceInfo, options)) { results.restore = runArangoDumpRestore(options, instanceInfo, "restore", "UnitTestsDumpDst"); - if (checkInstanceAlive(instanceInfo)) { + if (checkInstanceAlive(instanceInfo, options)) { results.test = runInArangosh(options, instanceInfo, makePathUnix("js/server/tests/dump"+cluster+".js"), [ "--server.database", "UnitTestsDumpDst" ]); - if (checkInstanceAlive(instanceInfo)) { + if (checkInstanceAlive(instanceInfo, options)) { results.tearDown = runInArangosh(options, instanceInfo, makePathUnix("js/server/tests/dump-teardown"+cluster+".js")); } From bb13eb0b37df80a9abbde3a91c97f85066c21796 Mon Sep 17 00:00:00 2001 From: Willi Goesgens Date: Mon, 2 Feb 2015 19:03:17 +0100 Subject: [PATCH 3/3] Fix exit checking. --- scripts/run | 3 ++- scripts/unittest.js | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/scripts/run b/scripts/run index 240369816f..9318c665c5 100755 --- a/scripts/run +++ b/scripts/run @@ -27,7 +27,8 @@ if test $? -eq 0; then echo removing log-$PID data-$PID rm -rf log-$PID data-$PID else - echo "failed - don't remove log-$PID data-$PID" + echo "failed - don't remove log-$PID data-$PID - heres the logfile:" + cat log-$PID fi echo Server has terminated. diff --git a/scripts/unittest.js b/scripts/unittest.js index c770a0887b..9def7544d0 100644 --- a/scripts/unittest.js +++ b/scripts/unittest.js @@ -156,4 +156,10 @@ function main (argv) { } UnitTest.unitTestPrettyPrintResults(r); + if (r.hasOwnProperty(crashed) && (r.crashed)) { + return -1; + } + else { + return 0; + } }