On Fri, Dec 28, 2007 at 01:45:33AM -0500, Robby Dermody wrote:
[snip]
> --- ldirectord.orig 2007-12-28 06:31:13.000000000 +0000
>
> +++ ldirectord 2007-12-28 06:31:51.000000000 +0000
>
> @@ -2728,7 +2728,7 @@ sub check_sql
>
> # at a particular row. But I'm not going to worry about that for
>
> # now.
>
> $row = $sth->fetchrow_arrayref;
>
> - unless ($row && $sth->err) {
>
> + unless ($row) {
>
> check_sql_log_errstr("Error fetching row:", $dbh->errstr);
>
> goto err_finish;
>
> }
[snip]
Hi Robby,
thanks for looking into this problem. I believe that your analysis
of this problem is correct. And indeed you are not the first person
to notice this error - the MySQL check has been a bit broken of late
in several ways.
The current mecurial version of the code looks like this, which
I believe solves the problem, and should have been incoporated
into the 2.1.3 release of linux-ha.
unless ($row && !$sth->err) {
The latest and greatest ldrectord is maintained here:
http://hg.linux-ha.org/dev/log/tip/ldirectord/ldirectord.in
I believe that the revision that fixes the bug you are seeing is here:
http://hg.linux-ha.org/dev/rev/b2f562475eae
--
Horms
|