On Tue, Dec 16, 2008 at 06:41:45PM +0100, Dejan Muhamedagic wrote:
> Hi,
> 
> On Mon, Dec 15, 2008 at 02:45:43PM +0100, Arndt Roth wrote:
> > Hi *,
> > 
> > Anybody seen this before and can explain what it means?
> > 
> > Dec 14 09:08:32 server lrmd: [32686]: info: RA output:
> > (resource_sysinfo:0:monitor:stderr)
> > /usr/lib/ocf/resource.d//heartbeat/SysInfo: line 244: mem-08: value too
> > great for base (error token is "08")
> 
> A shell parsing problem :) Looks like it considers 08 to be an
> exponent. The script is thoroughly /bin/bash, can't find my way
> through it.

I don't think it uses too many bash features?
it still pretends to be #!/bin/sh.

and for example all those [ x$var = x ] tests are bogus in in bash.
and the `expr ` things are not needed in bash either.
the unit parsing should be a case statement with pattern matching.
and I'd have a couple of other remarks...
but unasked for, and I don't have the time to provide a patch either,
so I better shut up.

> I guess it would be better to use something more
> reasonable for string splitting and arithmetic, awk or perl or
> python. Or just drop the leading 0 from the offending variable.
> You can try this patch:
> 
> http://hg.linux-ha.org/dev/rev/dda4a93f90a7

actually, sh parses numbers starting with 0 as octal,
and yes, the digit 8 is too great for base 8.
 :-(

you can either drop all leading zeros.
as in this particular case, it can only be two digits,
there can only be one leading zero,
-       mem=$[mem-$mem_round]
+       mem=$[mem-${mem_round#0}]
should be enough.

or you can prepend an explicit base, like so
-       mem=$[mem-$mem_round]
+       mem=$[mem-10#$mem_round]
 
which likely is a bash feature only.

as an aside,
bash is able to even use base 2 to 64, so at least in bash,
echo $[2#001000001 - 64#11] is zero
 ;)

-- 
: Lars Ellenberg
: LINBIT | Your Way to High Availability
: DRBD/HA support and consulting http://www.linbit.com

DRBD® and LINBIT® are registered trademarks of LINBIT, Austria.
_______________________________________________
Linux-HA mailing list
[email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha
See also: http://linux-ha.org/ReportingProblems

Reply via email to