summaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
authorJonathan Abrahams <jonathan@mongodb.com>2017-12-01 09:13:10 -0500
committerJonathan Abrahams <jonathan@mongodb.com>2017-12-01 09:13:10 -0500
commit956b5ba1730d8772f272c3af4e2e4f1b666d9506 (patch)
tree1a5a5ea64714c3f7efbf8ac3097b6c0859b75330 /etc
parentbe4f0b55fd46c20c3dfdf73140a48384b3d0699c (diff)
downloadmongo-956b5ba1730d8772f272c3af4e2e4f1b666d9506.tar.gz
SERVER-32071 Powercycle - use internal crash nstead of AWS EC2 force-stop, which does not
immediately terminate an instance. Internal crash methods are: - Linux, use sysrq-trigger - Windows, use NotMyFault
Diffstat (limited to 'etc')
-rw-r--r--etc/evergreen.yml32
1 files changed, 29 insertions, 3 deletions
diff --git a/etc/evergreen.yml b/etc/evergreen.yml
index 6769d0f60a0..5f2802581ed 100644
--- a/etc/evergreen.yml
+++ b/etc/evergreen.yml
@@ -163,6 +163,10 @@ variables:
standard_port: "20000"
virtualenv_dir: venv_powercycle
virtualenv_requirements: psutil
+ windows_crash_cmd: \"notmyfault/notmyfaultc64.exe -accepteula crash 1\"
+ windows_crash_dl: https://download.sysinternals.com/files/NotMyFault.zip
+ windows_crash_dir: notmyfault
+ windows_crash_zip: notmyfault.zip
- &powercycle_expansions
params:
@@ -181,7 +185,7 @@ variables:
program_options: --logLevel=info --backupPathBefore=${backup_path_before} --backupPathAfter=${backup_path_after}
connection_options: --sshUserHost=${ip_address} --sshConnection=\"${ssh_identity} ${ssh_connection_options}\"
test_options: --testLoops=15 --seedDocNum=10000 --rsync --validate=local --canary=local
- crash_options: "--crashMethod=aws_ec2 --crashOptions=${instance_id}:private_ip_address --crashWaitTime=45 --jitterForCrashWaitTime=5"
+ crash_options: --crashMethod=internal --crashOption=${windows_crash_cmd} --crashWaitTime=45 --jitterForCrashWaitTime=5
client_options: --numCrudClients=20 --numFsmClients=20
mongodb_options: --rootDir=${remote_dir}-${task_id} --mongodbBinDir=${remote_dir}
mongod_options: --mongodUsablePorts ${standard_port} ${secret_port} --dbPath=${db_path} --logPath=${log_path}
@@ -883,9 +887,11 @@ functions:
echo "{\"failures\": $failures, \"results\": [{\"status\": $status, \"exit_code\": $exit_code, \"test_file\": \"${task_name}\", \"start\": $start_time, \"end\": $end_time, \"elapsed\": $elapsed_secs}]}" > $report_json
generate_report_json="--reportJsonFile=$report_json"
- # # On Windows execute 10 test loops, cap the maximum number of clients to 10 each.
+ # Windows task overrides:
+ # - Execute 10 test loops
+ # - Cap the maximum number of clients to 10 each
if [ "Windows_NT" = "$OS" ]; then
- test_override="--testLoops=10"
+ test_override=--testLoops=10
max_clients=10
for client in --numCrudClients --numFsmClients
do
@@ -1388,6 +1394,26 @@ functions:
--commands "$cmds"
fi
+ - command: shell.exec
+ params:
+ shell: bash
+ working_dir: src
+ script: |
+ set -o errexit
+ if [[ "Windows_NT" != "$OS" || -z "${windows_crash_zip}" ]]; then
+ exit 0
+ fi
+ # Install NotMyFault, used to crash Windows.
+ cmds="curl -s -o ${windows_crash_zip} ${windows_crash_dl} | unzip ${windows_crash_zip} -d ${windows_crash_dir}"
+ cmds="$cmds; chmod +x ${windows_crash_dir}/*.exe"
+ ssh_connection_options="${ssh_identity} ${ssh_connection_options}"
+ ${python|/opt/mongodbtoolchain/v2/bin/python2} buildscripts/remote_operations.py \
+ --verbose \
+ --userHost $USER@${ip_address} \
+ --sshConnectionOptions "$ssh_connection_options" \
+ --retries ${ssh_retries|0} \
+ --commands "$cmds"
+
"copy EC2 artifacts":
- command: shell.exec
params: