From 54dd7c3b75eb27206e06c94e24f6c9b6f58f7699 Mon Sep 17 00:00:00 2001 From: Danny Auble <da@llnl.gov> Date: Wed, 7 Oct 2009 22:43:11 +0000 Subject: [PATCH] svn merge -r18820:18835 https://eris.llnl.gov/svn/slurm/branches/slurm-2.0 --- NEWS | 2 ++ .../select/bluegene/plugin/bg_block_info.c | 19 +++++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/NEWS b/NEWS index 5787c4336c3..683c008a92f 100644 --- a/NEWS +++ b/NEWS @@ -240,6 +240,8 @@ documents those changes that are of interest to users and admins. file. -- In sched/wiki plugin (for Maui) fix possible message truncation on very large cluster. + -- BLUEGENE - Fix for handling undocumented Deallocating to Configuring to + Free block transition state. * Changes in SLURM 2.0.6 ======================== diff --git a/src/plugins/select/bluegene/plugin/bg_block_info.c b/src/plugins/select/bluegene/plugin/bg_block_info.c index c00e9150138..76e8809f1e5 100644 --- a/src/plugins/select/bluegene/plugin/bg_block_info.c +++ b/src/plugins/select/bluegene/plugin/bg_block_info.c @@ -362,6 +362,7 @@ extern int update_block_list() //plugin set error && bg_record->state != state) { int skipped_dealloc = 0; + debug("state of Block %s was %d and now is %d", bg_record->bg_block_id, bg_record->state, @@ -387,8 +388,18 @@ extern int update_block_list() xfree(bg_record->target_name); bg_record->target_name = xstrdup(bg_record->user_name); - } - + } else if((bg_record->state + == RM_PARTITION_DEALLOCATING) + && (state == RM_PARTITION_CONFIGURING)) + /* This is a funky state IBM says + isn't a bug, but all their + documentation says this doesn't + happen, but IBM says oh yeah, you + weren't really suppose to notice + that. So we will just skip this + state and act like this didn't happen. */ + goto nochange_state; + bg_record->state = state; if(bg_record->state == RM_PARTITION_DEALLOCATING @@ -407,7 +418,7 @@ extern int update_block_list() xstrdup(bg_record->user_name); } #endif - else if(bg_record->state == RM_PARTITION_CONFIGURING) + else if(bg_record->state == RM_PARTITION_CONFIGURING) bg_record->boot_state = 1; else if(bg_record->state == RM_PARTITION_FREE) { if(remove_from_bg_list(bg_lists->job_running, @@ -430,8 +441,8 @@ extern int update_block_list() trigger_block_error(); } updated = 1; - } + nochange_state: /* check the boot state */ debug3("boot state for block %s is %d", -- GitLab