From 1553fc8acf5d7216035fd6c06cd92120f8086bf4 Mon Sep 17 00:00:00 2001 From: Matthew K Defenderfer <mdefende@uab.edu> Date: Wed, 30 Apr 2025 13:50:14 -0500 Subject: [PATCH 1/2] add try-except around sbatch to capture any potential errors during child job submission --- src/rc_gpfs/cli/convert_flat_to_hive.py | 5 ++++- src/rc_gpfs/cli/convert_to_parquet.py | 5 ++++- src/rc_gpfs/cli/split_log.py | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/rc_gpfs/cli/convert_flat_to_hive.py b/src/rc_gpfs/cli/convert_flat_to_hive.py index 0fe6463..a2459e0 100644 --- a/src/rc_gpfs/cli/convert_flat_to_hive.py +++ b/src/rc_gpfs/cli/convert_flat_to_hive.py @@ -96,7 +96,10 @@ def submit_batch(**kwargs): # delay should fix that time.sleep(random.uniform(1,5)) - subprocess.run(['sbatch'],input=script,shell=True,text=True) + try: + subprocess.run(['sbatch'],input=script,shell=True,text=True,check=True,capture_output=True) + except subprocess.CalledProcessError as e: + print(f"Error message: {e.stderr.decode()}") pass def submit_tld_groups(df,grp_dir,args): diff --git a/src/rc_gpfs/cli/convert_to_parquet.py b/src/rc_gpfs/cli/convert_to_parquet.py index ac84448..80469b5 100644 --- a/src/rc_gpfs/cli/convert_to_parquet.py +++ b/src/rc_gpfs/cli/convert_to_parquet.py @@ -80,7 +80,10 @@ def submit_batch(**kwargs): # fix that time.sleep(random.uniform(1, 5)) - subprocess.run(['sbatch'],input=script,shell=True,text=True) + try: + subprocess.run(['sbatch'],input=script,shell=True,text=True,check=True,capture_output=True) + except subprocess.CalledProcessError as e: + print(f"Error message: {e.stderr.decode()}") pass def _find_sequential_indexes(idxs): diff --git a/src/rc_gpfs/cli/split_log.py b/src/rc_gpfs/cli/split_log.py index 44c8461..56fb413 100644 --- a/src/rc_gpfs/cli/split_log.py +++ b/src/rc_gpfs/cli/split_log.py @@ -51,7 +51,10 @@ def submit_batch(**kwargs): script = BATCH_SCRIPT.format(**kwargs) - subprocess.run(['sbatch'],input=script,shell=True,text=True) + try: + subprocess.run(['sbatch'],input=script,shell=True,text=True,check=True,capture_output=True) + except subprocess.CalledProcessError as e: + print(f"Error message: {e.stderr.decode()}") pass def split_log(): -- GitLab From 2687ed8f557051f4953b7f22adaa88eeca2f7466 Mon Sep 17 00:00:00 2001 From: Matthew K Defenderfer <mdefende@uab.edu> Date: Wed, 30 Apr 2025 13:53:19 -0500 Subject: [PATCH 2/2] change to raise error instead of just printing message and exiting normally --- src/rc_gpfs/cli/convert_flat_to_hive.py | 2 +- src/rc_gpfs/cli/convert_to_parquet.py | 2 +- src/rc_gpfs/cli/split_log.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/rc_gpfs/cli/convert_flat_to_hive.py b/src/rc_gpfs/cli/convert_flat_to_hive.py index a2459e0..678646e 100644 --- a/src/rc_gpfs/cli/convert_flat_to_hive.py +++ b/src/rc_gpfs/cli/convert_flat_to_hive.py @@ -99,7 +99,7 @@ def submit_batch(**kwargs): try: subprocess.run(['sbatch'],input=script,shell=True,text=True,check=True,capture_output=True) except subprocess.CalledProcessError as e: - print(f"Error message: {e.stderr.decode()}") + raise subprocess.CalledProcessError(e.stderr.decode()) pass def submit_tld_groups(df,grp_dir,args): diff --git a/src/rc_gpfs/cli/convert_to_parquet.py b/src/rc_gpfs/cli/convert_to_parquet.py index 80469b5..5c94df4 100644 --- a/src/rc_gpfs/cli/convert_to_parquet.py +++ b/src/rc_gpfs/cli/convert_to_parquet.py @@ -83,7 +83,7 @@ def submit_batch(**kwargs): try: subprocess.run(['sbatch'],input=script,shell=True,text=True,check=True,capture_output=True) except subprocess.CalledProcessError as e: - print(f"Error message: {e.stderr.decode()}") + raise subprocess.CalledProcessError(e.stderr.decode()) pass def _find_sequential_indexes(idxs): diff --git a/src/rc_gpfs/cli/split_log.py b/src/rc_gpfs/cli/split_log.py index 56fb413..a535893 100644 --- a/src/rc_gpfs/cli/split_log.py +++ b/src/rc_gpfs/cli/split_log.py @@ -54,7 +54,7 @@ def submit_batch(**kwargs): try: subprocess.run(['sbatch'],input=script,shell=True,text=True,check=True,capture_output=True) except subprocess.CalledProcessError as e: - print(f"Error message: {e.stderr.decode()}") + raise subprocess.CalledProcessError(e.stderr.decode()) pass def split_log(): -- GitLab