Commit 4e63368f authored by Leigh Stoller's avatar Leigh Stoller

Fix some stats bugs that I uncovered while writing a stats checker/repairer

script.
parent 1d57505c
......@@ -1879,9 +1879,9 @@ sub PreSwap($$$$)
#
# Rollback after a failed swap operation; cleans up the stats and resources.
#
sub SwapFail($$$$)
sub SwapFail($$$$;$)
{
my ($self, $swapper, $which, $ecode) = @_;
my ($self, $swapper, $which, $ecode, $flags) = @_;
# Must be a real reference.
return -1
......@@ -1891,6 +1891,9 @@ sub SwapFail($$$$)
return 0
if ($EXPT_RESOURCESHOSED);
$flags = 0
if (!defined($flags));
# Old swap gathering stuff.
$self->GatherSwapStats($swapper, $which, $ecode);
......@@ -1926,7 +1929,8 @@ sub SwapFail($$$$)
# experiment, but do not want to tackle that at this time
#
if (! $lastrsrc && ($which eq $EXPT_START || $which eq $EXPT_SWAPIN)) {
DBQueryWarn("update experiment_resources set swapin_time=0 ".
DBQueryWarn("update experiment_resources set swapin_time=0, ".
" vnodes=0,jailnodes=0,plabnodes=0,delaynodes=0 ".
"where idx='$rsrcidx'")
or return -1;
}
......@@ -1948,7 +1952,10 @@ sub SwapFail($$$$)
if ($which eq $EXPT_SWAPMOD &&
$self->state() eq libdb::EXPTSTATE_ACTIVE()) {
DBQueryWarn("update experiment_resources set swapmod_time=0 ".
DBQueryWarn("update experiment_resources set ".
($flags & libdb::TBDB_STATS_FLAGS_MODHOSED() ?
"swapout_time=swapmod_time, " : " ") .
"swapmod_time=0 ".
"where idx='$lastrsrc'")
or return -1;
}
......
......@@ -132,6 +132,7 @@ use vars qw(@ISA @EXPORT);
TBDB_STATS_SWAPIN TBDB_STATS_SWAPOUT TBDB_STATS_SWAPMODIFY
TBDB_STATS_FLAGS_IDLESWAP TBDB_STATS_FLAGS_PREMODIFY
TBDB_STATS_FLAGS_START TBDB_STATS_FLAGS_PRESWAPIN
TBDB_STATS_FLAGS_MODHOSED
TBDB_JAILIPBASE TBDB_JAILIPMASK
......@@ -737,6 +738,7 @@ sub TBDB_STATS_FLAGS_PREMODIFY(){ 0x02; }
sub TBDB_STATS_FLAGS_START() { 0x04; }
sub TBDB_STATS_FLAGS_PRESWAPIN(){ 0x08; }
sub TBDB_STATS_FLAGS_BATCHCTRL(){ 0x10; }
sub TBDB_STATS_FLAGS_MODHOSED() { 0x20; }
# Do not export these variables!
my $TBDB_STATS_STARTCLOCK;
my $TBDB_STATS_SAVEDSWAPUID;
......
......@@ -2,7 +2,7 @@
#
# EMULAB-COPYRIGHT
# Copyright (c) 2000-2007 University of Utah and the Flux Group.
# Copyright (c) 2000-2008 University of Utah and the Flux Group.
# All rights reserved.
#
......@@ -1322,7 +1322,8 @@ sub cleanup()
# that fails, but results in the experiment being restored the
# way it was.
#
$experiment->SwapFail($this_user, TBDB_STATS_SWAPMODIFY, $errorstat);
$experiment->SwapFail($this_user, TBDB_STATS_SWAPMODIFY, $errorstat,
($modifyHosed ? TBDB_STATS_FLAGS_MODHOSED() :0));
if ($modifySwapped) {
$experiment->PostSwap($this_user, TBDB_STATS_SWAPOUT);
}
......
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