Commit 17f3b0e5 authored by Leigh B Stoller's avatar Leigh B Stoller

Deal with a corner case bug; if a node is already allocated to an

experiment in the project, but without a prereserve setting, then set the
pre-reserve (as per Mike's request a few months back). But also need to
check that if the node is allocated to the project, and it does have a
pre-reserve, that pre-reserve must actually match the project and have the
right reservation name.
parent a9f7cfe8
...@@ -665,13 +665,19 @@ sub StartReservation($$) ...@@ -665,13 +665,19 @@ sub StartReservation($$)
while (my ($node_id,$reserved_pid, while (my ($node_id,$reserved_pid,
$reservation_name) = $query_result->fetchrow_array()) { $reservation_name) = $query_result->fetchrow_array()) {
$current++;
if (!defined($reserved_pid)) { if (!defined($reserved_pid)) {
DBQueryFatal("update nodes set reserved_pid='$pid', ". DBQueryFatal("update nodes set reserved_pid='$pid', ".
" reservation_name='$resname' ". " reservation_name='$resname' ".
"where node_id='$node_id'"); "where node_id='$node_id'");
$tcount++; $tcount++;
} }
#
# It is unlikely this will happen, unless someone mucks with
# the database directly.
#
elsif ($reserved_pid eq $pid && $reservation_name eq $resname) {
$current++;
}
last last
if ($current >= $count); if ($current >= $count);
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment