Under some circumstances, osrf_control --diagnostic may not
be able to deduce the correct max_children setting for a service,
e.g., if it's run without --localhost on a system that doesn't
have a opensrf.xml config section specifying active apps for a
specific hostname. When that happens, just display the count
of running drones rather than displaying error messages about
undefined $dmax values and divisions by zero.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
my @drones = `pgrep -f "Drone \\[$svc\\]"`;
my $dcount = scalar(@drones);
my $dmax = $max_children_map{$svc};
- $str .= "#drones=$dcount/$dmax ";
- $str .= sprintf('%3d%%', (int(($dcount / $dmax) * 100)));
+ if (defined($dmax) && $dmax > 0) {
+ $str .= "#drones=$dcount/$dmax ";
+ $str .= sprintf('%3d%%', (int(($dcount / $dmax) * 100)));
+ } else {
+ $str .= "#drones=$dcount";
+ }
msg($str);
msg("\tERR $svc has no running drones.") unless @drones;
}