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