Forum: Cfengine Help
Subject: Strange Deadlock noticed
Author: daveseff
Link to topic: https://cfengine.com/forum/read.php?3,17789,17789#msg-17789

I have 3.0.5 running on RHEL5. 

I added a host that happens ho have multiple interfaces, eth0 (10.1.0.1/24)and 
eth1 (169.2.0.1/24). IP's and hostnames changed to protect the guilty...  

What I am experiencing is that the host will connect and cf-serverd will see a 
connection from the host but the host will identify itself as it's other IP. 
Once this happens cf-serverd will go into deadlock and no other host can then 
connect. 

cf3 New connection...(from 10.1.0.1/4)
cf3 Spawning new thread...
cf3  -> No new promises found
cf3  -> Waiting at incoming select...
cf3 Received:  on socket 4
cf3 Connecting host identifies itself as 169.2.0.1 host1.foo.com root 0
cf3 (ipstring=[169.2.0.1],fqname=,username=,socket=[10.1.0.1])
cf3 IP address mismatch between client's assertion (169.2.0.1) and socket 
(10.1.0.1) - untrustworthy connection
cf3 ID not verified
cf3 From (host=?,user=?,ip=10.1.0.1)
cf3 REFUSAL of request from connecting host: (CAUTH 169.2.0.1 host1.foo.com 
root 0)
cf3  -> Accepting a connection
cf3 Accepting connection from "10.1.0.1"
......cf-serverd hangs here............


I've pinpointed the point where cf-serverd hangs in server.c

struct cfd_connection *NewConn(int sd)  /* construct */

{ struct cfd_connection *conn;

        ThreadLock(cft_system);   <<<------- HANG HERE....NEVER PASSES THIS 
POINT 

        conn = (struct cfd_connection *) malloc(sizeof(struct cfd_connection));

        ThreadUnlock(cft_system);

        if (conn == NULL)
        {
                CfOut(cf_error,"malloc","Unable to allocate conn");
                HandleSignals(SIGTERM);
        }

        conn->sd_reply = sd;
        conn->id_verified = false;
        conn->rsa_auth = false;
        conn->trust = false;
        conn->hostname[0] = '\0';
        conn->ipaddr[0] = '\0';
        conn->username[0] = '\0';
        conn->session_key = NULL;
        conn->encryption_type = 'c';

        Debug("*** New socket [%d]\n",sd);

        return conn;
}

_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to