aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/gcp/stress_test/run_server.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gcp/stress_test/run_server.py')
-rwxr-xr-xtools/gcp/stress_test/run_server.py20
1 files changed, 16 insertions, 4 deletions
diff --git a/tools/gcp/stress_test/run_server.py b/tools/gcp/stress_test/run_server.py
index 0d9a653d18..a666ae2900 100755
--- a/tools/gcp/stress_test/run_server.py
+++ b/tools/gcp/stress_test/run_server.py
@@ -30,6 +30,7 @@
import datetime
import os
+import resource
import select
import subprocess
import sys
@@ -56,6 +57,10 @@ def run_server():
might want to connect to the pod for examining logs). This is the
reason why the script waits forever in case of failures.
"""
+ # Set the 'core file' size to 'unlimited' so that 'core' files are generated
+ # if the server crashes (Note: This is not relevant for Java and Go servers)
+ resource.setrlimit(resource.RLIMIT_CORE,
+ (resource.RLIM_INFINITY, resource.RLIM_INFINITY))
# Read the parameters from environment variables
env = dict(os.environ)
@@ -69,13 +74,19 @@ def run_server():
dataset_id = env['DATASET_ID']
summary_table_id = env['SUMMARY_TABLE_ID']
qps_table_id = env['QPS_TABLE_ID']
+ # The following parameter is to inform us whether the server runs forever
+ # until forcefully stopped or will it naturally stop after sometime.
+ # This way, we know that the process should not terminate (even if it does
+ # with a success exit code) and flag any termination as a failure.
+ will_run_forever = env.get('WILL_RUN_FOREVER', '1')
logfile_name = env.get('LOGFILE_NAME')
print('pod_name: %s, project_id: %s, run_id: %s, dataset_id: %s, '
- 'summary_table_id: %s, qps_table_id: %s') % (
- pod_name, project_id, run_id, dataset_id, summary_table_id,
- qps_table_id)
+ 'summary_table_id: %s, qps_table_id: %s') % (pod_name, project_id,
+ run_id, dataset_id,
+ summary_table_id,
+ qps_table_id)
bq_helper = BigQueryHelper(run_id, image_type, pod_name, project_id,
dataset_id, summary_table_id, qps_table_id)
@@ -106,7 +117,8 @@ def run_server():
stderr=subprocess.STDOUT)
returncode = stress_p.wait()
- if returncode != 0:
+
+ if will_run_forever == '1' or returncode != 0:
end_time = datetime.datetime.now().isoformat()
event_type = EventType.FAILURE
details = 'Returncode: %d; End time: %s' % (returncode, end_time)