On Wed, Aug 03, 2005 at 11:06:48AM +0800, Trevor Lee wrote:
> Hi,
>
> We are running ldirectord v1.93 on Fedora Core 3 with kernel 2.6.9.
>
> Everything has been functioning fine until a few days ago when I noticed
> ldirectord was not running any more. There was nothing in the logs
> indicating why it had stopped running. I restarted it and a few hours
> later it was again not running it any more. This happened quite a few
> times. When ldirectord was not running, ipvsadm -L -n was still
> functioning fine and packets were forwarding as normal.
>
> When running ldirectord in debug mode, it came up with the following
> error whenever just before it stopped running:
>
> DEBUG2: Checking connect: real
> server=connect:tcp:192.168.xx.xx:443:::\/:
> (virtual=tcp:203.xx.x.xxx:443)
> DEBUG2: Exiting with exit_status -1: Could not run /sbin/ipvsadm -L -n
> Exiting with exit_status -1: Could not run /sbin/ipvsadm -L -n
>
> This above error message comes up for different ip addresses and ports,
> so I can't narrow it down to a specific server or port.
>
> During normal load, we are running about 6000 active connections and
> 40,000 inactive connections.
>
> Does anyone have any idea as to why this might have suddenly started
> happening?
That is extremely strange.
The first thing I would try is to upgrade to the version
of ldrirectord from CVS, you can find instructions on how
to do that at http://www.vergenet.net/linux/ldirectord/
1.93 is a bit old, and there have been a number of fixes
since then.
A more conservative approace would be to try this
patch, which I just added to CVS. It won't fix the problem,
but it might shed some light on why it is occuring.
--
Horms
Index: ldirectord
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/ldirectord/ldirectord,v
retrieving revision 1.112
diff -u -r1.112 ldirectord
--- ldirectord 3 Aug 2005 06:36:10 -0000 1.112
+++ ldirectord 3 Aug 2005 06:44:26 -0000
@@ -1439,7 +1439,7 @@
# read status of current ipvsadm -L -n
unless(open(IPVS, "$IPVSADM -L -n |")){
- &ld_exit(1, "Could not run $IPVSADM -L -n");
+ &ld_exit(1, "Could not run $IPVSADM -L -n: $!");
}
$_ = <IPVS>; $_ = <IPVS>; $_ = <IPVS>;
@@ -2802,7 +2802,7 @@
&ld_log("Running system(@args)") if $DEBUG>2;
$status = system(@args);
if($status != 0) {
- &ld_log("system(@args) failed");
+ &ld_log("system(@args) failed: $!");
}
return($status)
|