LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: ldirectord stops running every few hours

To: Trevor Lee <trevor.lee@xxxxxxxxxxxxxxxxxxxx>
Subject: Re: ldirectord stops running every few hours
Cc: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
From: Horms <horms@xxxxxxxxxxxx>
Date: Wed, 3 Aug 2005 15:47:30 +0900
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)

<Prev in Thread] Current Thread [Next in Thread>