On Fri, 16 Aug 2002, Andrew Ryan wrote:
> If it is a bug, it's probably a big with mon, and not mon.cgi per se, since
> mon.cgi is just a mon client which executes a "reset" command on the server.
>
> It's worth trying to reproduce this same problem with the command line mon
> client, see if you get the same behavior. And to run the mon server in
> debug mode, to see the command which mon thinks is coming in.
Reproduced, tracked down and fixed. You're right, Andrew, it was a bug in
mon, present at least in 0.99.1 (which we still run on) and 0.99.2.
read_cf carried over disabled status of hosts, no matter what. After that,
reset_server called load_state only if keepstate was defined.
AFAICT, load_state should be enough to keep all state.
As a bonus, the only thing my patch does is remove code :)
Jim, please include in next release... patch attached.
--
Erik I. Bols�, Triangel Software AS | Skybert AS
Tlf: 712 41 694 Mobil: 915 79 512
diff -Naur mon-0.99.2-patch/mon mon-0.99.2/mon
--- mon-0.99.2-patch/mon Sat Sep 8 15:42:05 2001
+++ mon-0.99.2/mon Mon Nov 18 18:59:54 2002
@@ -1028,27 +1028,8 @@
$hosts = $2;
- %disabled = ();
-
- foreach $h (grep (/^\*/, @{$groups{$curgroup}}))
- {
- # We have to make $i = $h because $h is actually
- # a pointer to %groups and will modify it.
- $i = $h;
- $i =~ s/^\*//;
- $disabled{$i} = 1;
- }
@{$new_groups{$curgroup}} = split(/\s+/, $hosts);
-
- #
- # keep hosts which were previously disabled
- #
- for ($i=0;$i<@{$new_groups{$curgroup}};$i++)
- {
- $new_groups{$curgroup}[$i] = "*$new_groups{$curgroup}[$i]"
- if ($disabled{$new_groups{$curgroup}[$i]});
- }
next;
}