summaryrefslogtreecommitdiffstats
path: root/ctdb/common/ctdb_client.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2007-04-29 16:19:40 +0200
committerAndrew Tridgell <tridge@samba.org>2007-04-29 16:19:40 +0200
commite21f69107f423f24f5407adb9323fb0bc8aa3f64 (patch)
treef357af261e07dde8822d0d178f7906c7e1cc9b33 /ctdb/common/ctdb_client.c
parent10910f52eb1e62bf5393952f4c3a7380bf2dc548 (diff)
downloadsamba-e21f69107f423f24f5407adb9323fb0bc8aa3f64.tar.gz
samba-e21f69107f423f24f5407adb9323fb0bc8aa3f64.tar.xz
samba-e21f69107f423f24f5407adb9323fb0bc8aa3f64.zip
yay! finally fixed the bug that volker, ronnie and I have been chasing
for 2 days. The main bug was in smbd, but there was a secondary (and more subtle) bug in ctdb that the bug in smbd exposed. When we get send a dmaster reply, we have to correctly update the dmaster in the recipient even if the original requst has timed out, otherwise ctdbd can get into a loop fighting over who will handle a key. This patch also cleans up the packet allocation, and makes ctdbd become a real daemon. (This used to be ctdb commit 59405e59ef522b97d8e20e4b14310a217141ac7c)
Diffstat (limited to 'ctdb/common/ctdb_client.c')
-rw-r--r--ctdb/common/ctdb_client.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/ctdb/common/ctdb_client.c b/ctdb/common/ctdb_client.c
index 075f8553ae..7257dd5d29 100644
--- a/ctdb/common/ctdb_client.c
+++ b/ctdb/common/ctdb_client.c
@@ -78,7 +78,7 @@ static void ctdb_client_reply_call(struct ctdb_context *ctdb, struct ctdb_req_he
if (hdr->reqid != state->reqid) {
/* we found a record but it was the wrong one */
- DEBUG(0, ("Dropped orphaned reply with reqid:%d\n",hdr->reqid));
+ DEBUG(0, ("Dropped client call reply with reqid:%d\n",hdr->reqid));
return;
}
@@ -414,7 +414,6 @@ int ctdb_send_message(struct ctdb_context *ctdb, uint32_t vnn,
CTDB_NO_MEMORY(ctdb, r);
r->hdr.destnode = vnn;
- r->hdr.srcnode = ctdb->vnn;
r->srvid = srvid;
r->datalen = data.dsize;
memcpy(&r->data[0], data.dptr, data.dsize);
@@ -674,7 +673,6 @@ int ctdb_control(struct ctdb_context *ctdb, uint32_t destnode, uint64_t srvid,
c->hdr.reqid = state->reqid;
c->hdr.destnode = destnode;
- c->hdr.srcnode = ctdb->vnn;
c->hdr.reqid = state->reqid;
c->opcode = opcode;
c->srvid = srvid;