diff --git a/src/slurmctld/backup.c b/src/slurmctld/backup.c
index 883a9270d886164dee59827825284f89e8f9d80b..ad5f1784483393d6b3afb62d12926e3872fdad01 100644
--- a/src/slurmctld/backup.c
+++ b/src/slurmctld/backup.c
@@ -131,8 +131,10 @@ void run_backup(void)
 
 	/* clear old state and read new state */
 	job_fini();
-	if (read_slurm_conf(2))	/* Recover all state */
-		fatal("Unable to recover slurm state");
+	if (read_slurm_conf(2)) {	/* Recover all state */
+		error("Unable to recover slurm state");
+		abort();
+	}
 	slurmctld_config.shutdown_time = (time_t) 0;
 	return;
 }
@@ -173,7 +175,8 @@ static void *_background_signal_hand(void *no_data)
 			return NULL;	/* Normal termination */
 			break;
 		case SIGABRT:	/* abort */
-			fatal("SIGABRT received");
+			info("SIGABRT received");
+			abort();
 			break;
 		default:
 			error("Invalid signal (%d) received", sig);
diff --git a/src/slurmctld/controller.c b/src/slurmctld/controller.c
index 75a43b6ae1c295d56b9988e2871e8fcfb8541dbb..a95679dbcd27078db75105a15309b48aef4215fa 100644
--- a/src/slurmctld/controller.c
+++ b/src/slurmctld/controller.c
@@ -200,9 +200,11 @@ int main(int argc, char *argv[])
 			  == 0)) {
 			(void) _shutdown_backup_controller();
 			/* Now recover the remaining state information */
-			if ((error_code = read_slurm_conf(recover)))
-				fatal("read_slurm_conf reading %s: %m",
+			if ((error_code = read_slurm_conf(recover))) {
+				error("read_slurm_conf reading %s: %m",
 					SLURM_CONFIG_FILE);
+				abort();
+			}
 			info("Running primary controller");
 		} else {
 			error
@@ -212,8 +214,10 @@ int main(int argc, char *argv[])
 			exit(0);
 		}
 
-		if (switch_state_begin(recover))
-			fatal("switch_state_begin: %m");
+		if (switch_state_begin(recover)) {
+			error("switch_state_begin: %m");
+			abort();
+		}
 
 		/*
 		 * create attached thread for signal handling
@@ -403,7 +407,8 @@ static void *_slurmctld_signal_hand(void *no_data)
 			}
 			break;
 		case SIGABRT:	/* abort */
-			fatal("SIGABRT received");
+			info("SIGABRT received");
+			abort();
 			break;
 		default:
 			error("Invalid signal (%d) received", sig);
diff --git a/src/slurmctld/locks.c b/src/slurmctld/locks.c
index 465e589d15a0bb5ff42cde30bc88016db6ed3656..17af5c119ee0122eb96ddd6407823a10ded64252 100644
--- a/src/slurmctld/locks.c
+++ b/src/slurmctld/locks.c
@@ -173,9 +173,7 @@ static void _wr_wrunlock(lock_datatype_t datatype)
  * OUT lock_flags - a copy of the current lock values */
 void get_lock_values(slurmctld_lock_flags_t * lock_flags)
 {
-	if (lock_flags == NULL)
-		fatal("get_lock_values passed null pointer");
-
+	xassert(lock_flags);
 	memcpy((void *) lock_flags, (void *) &slurmctld_locks,
 	       sizeof(slurmctld_locks));
 }
diff --git a/src/slurmctld/node_mgr.c b/src/slurmctld/node_mgr.c
index c74d5384d04fe238de4304aed465704cac10cea0..02c6bbbb3ace4ac6c15f5f9e400de166e292548e 100644
--- a/src/slurmctld/node_mgr.c
+++ b/src/slurmctld/node_mgr.c
@@ -247,13 +247,9 @@ create_node_record (struct config_record *config_point, char *node_name)
 	int old_buffer_size, new_buffer_size;
 
 	last_node_update = time (NULL);
-	if (config_point == NULL)
-		fatal ("create_node_record: invalid config_point");
-	if (node_name == NULL) 
-		fatal ("create_node_record: node_name is NULL");
-	if (strlen (node_name) >= MAX_NAME_LEN)
-		fatal ("create_node_record: node_name too long: %s", 
-		       node_name);
+	xassert(config_point);
+	xassert(node_name); 
+	xassert(strlen (node_name) < MAX_NAME_LEN);
 
 	/* round up the buffer size to reduce overhead of xrealloc */
 	old_buffer_size = (node_record_count) * sizeof (struct node_record);
@@ -632,11 +628,12 @@ int init_node_conf (void)
 
 	if (config_list)	/* delete defunct configuration entries */
 		(void) _delete_config_record ();
-	else
+	else {
 		config_list = list_create (&_list_delete_config);
+		if (config_list == NULL)
+			fatal("list_create malloc failure");
+	}
 
-	if (config_list == NULL)
-		fatal ("memory allocation failure");
 	return SLURM_SUCCESS;
 }
 
@@ -659,8 +656,7 @@ static void _list_delete_config (void *config_entry)
 	struct config_record *config_ptr = (struct config_record *) 
 					   config_entry;
 
-	if (config_ptr == NULL)
-		fatal ("_list_delete_config: config_ptr == NULL");
+	xassert(config_ptr);
 	xassert(config_ptr->magic == CONFIG_MAGIC);
 	xfree (config_ptr->feature);
 	xfree (config_ptr->nodes);
@@ -715,8 +711,8 @@ int node_name2bitmap (char *node_names, bitstr_t **bitmap)
 	}
 
 	my_bitmap = (bitstr_t *) bit_alloc (node_record_count);
-	if (my_bitmap == 0)
-		fatal ("memory allocation failure");
+	if (my_bitmap == NULL)
+		fatal("bit_alloc malloc failure");
 
 	while ( (this_node_name = hostlist_shift (host_list)) ) {
 		node_record_point = find_node_record (this_node_name);
diff --git a/src/slurmctld/node_scheduler.c b/src/slurmctld/node_scheduler.c
index 2341832449ebf80b9b05f57d20668376dd376c0a..6a628c07ab3d80ba1ef6daea3141ce44bb400f43 100644
--- a/src/slurmctld/node_scheduler.c
+++ b/src/slurmctld/node_scheduler.c
@@ -144,10 +144,8 @@ void deallocate_nodes(struct job_record *job_ptr, bool timeout)
 	int buf_rec_size = 0, down_node_cnt = 0;
 	uint16_t base_state, no_resp_flag;
 
-	if (job_ptr == NULL)
-		fatal ("job_ptr == NULL");
-	if (job_ptr->details == NULL)
-		fatal ("job_ptr->details == NULL");
+	xassert(job_ptr);
+	xassert(job_ptr->details);
 
 	agent_args = xmalloc(sizeof(agent_arg_t));
 	if (timeout)
@@ -291,8 +289,7 @@ _pick_best_quadrics(bitstr_t * bitmap, bitstr_t * req_bitmap,
 	int best_fit_nodes, best_fit_cpus, best_fit_req;
 	int best_fit_location = 0, best_fit_sufficient;
 
-	if (bitmap == NULL)
-		fatal ("_pick_best_quadrics: bitmap == NULL");
+	xassert(bitmap);
 
 	consec_index = 0;
 	consec_size  = 50;	/* start allocation for 50 sets of 
@@ -706,7 +703,7 @@ _add_node_set_info(struct node_set *node_set_ptr,
 	else {
 		*node_bitmap = bit_copy(node_set_ptr->my_bitmap);
 		if (*node_bitmap == NULL)
-			fatal("bit_copy malloc");
+			fatal("bit_copy malloc failure");
 	}
 	*node_cnt += node_set_ptr->nodes;
 	*cpu_cnt  += node_set_ptr->nodes *
@@ -738,16 +735,13 @@ int select_nodes(struct job_record *job_ptr, bool test_only)
 	struct part_record *part_ptr = job_ptr->part_ptr;
 	uint32_t min_nodes, max_nodes;
 
-	if (job_ptr == NULL)
-		fatal ("select_nodes: job_ptr == NULL");
-	xassert (job_ptr->magic == JOB_MAGIC);
+	xassert(job_ptr);
+	xassert(job_ptr->magic == JOB_MAGIC);
 
 	/* insure that partition exists and is up */
 	if (part_ptr == NULL) {
 		part_ptr = find_part_record(job_ptr->partition);
-		if (part_ptr == NULL)
-			fatal("Invalid partition name %s for job %u",
-		   	   job_ptr->partition, job_ptr->job_id);
+		xassert(part_ptr);
 		job_ptr->part_ptr = part_ptr;
 		error("partition pointer reset for job %u, part %s",
 		      job_ptr->job_id, job_ptr->partition);
diff --git a/src/slurmctld/proc_req.c b/src/slurmctld/proc_req.c
index ae7833abc9f91ac6af9adf52f99b6533e8164f9a..8eb9a62e8743a842fdc63d7c02ea40b7236a6bd8 100644
--- a/src/slurmctld/proc_req.c
+++ b/src/slurmctld/proc_req.c
@@ -1292,8 +1292,10 @@ static void _slurm_rpc_shutdown_controller(slurm_msg_t * msg)
 		/* save_all_state();	performed by _slurmctld_background */
 	}
 	slurm_send_rc_msg(msg, error_code);
-	if ((error_code == SLURM_SUCCESS) && core_arg)
-		fatal("Aborting per RPC request");
+	if ((error_code == SLURM_SUCCESS) && core_arg) {
+		info("Aborting per RPC request");
+		abort();
+	}
 }
 
 /* _slurm_rpc_shutdown_controller_immediate - process RPC to shutdown 
diff --git a/src/slurmctld/step_mgr.c b/src/slurmctld/step_mgr.c
index 7e536163cc056b2757190eda3a64b309fe741514..bb62cd45614d76f9f79b9b11a79335271fd8bf07 100644
--- a/src/slurmctld/step_mgr.c
+++ b/src/slurmctld/step_mgr.c
@@ -64,8 +64,7 @@ create_step_record (struct job_record *job_ptr)
 {
 	struct step_record *step_record_point;
 
-	if (job_ptr == NULL)
-		fatal ("create_step_record: job_ptr == NULL");
+	xassert(job_ptr);
 	step_record_point = 
 		(struct step_record *) xmalloc (sizeof (struct step_record));
 
@@ -91,8 +90,7 @@ delete_all_step_records (struct job_record *job_ptr)
 	ListIterator step_record_iterator;
 	struct step_record *step_record_point;
 
-	if (job_ptr == NULL)
-		fatal ("delete_all_step_records: job_ptr == NULL");
+	xassert(job_ptr);
 	step_record_iterator = list_iterator_create (job_ptr->step_list);		
 
 	last_job_update = time(NULL);
@@ -125,8 +123,7 @@ delete_step_record (struct job_record *job_ptr, uint32_t step_id)
 	struct step_record *step_record_point;
 	int error_code;
 
-	if (job_ptr == NULL)
-		fatal ("delete_step_record: job_ptr == NULL");
+	xassert(job_ptr);
 	error_code = ENOENT;
 	step_record_iterator = list_iterator_create (job_ptr->step_list);