summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2010-12-03 01:34:02 -0700
committerVolker Lendecke <vlendec@samba.org>2010-12-19 23:25:06 +0100
commitd60d49efb06475a3994fa65d17a72a2b930b20d4 (patch)
tree16cda163b29a32ae75531851c52134298cfa9cd2
parent1ca35347cb812aff6880f7815a2e0a952474ffd2 (diff)
downloadsamba-d60d49efb06475a3994fa65d17a72a2b930b20d4.tar.gz
samba-d60d49efb06475a3994fa65d17a72a2b930b20d4.tar.bz2
samba-d60d49efb06475a3994fa65d17a72a2b930b20d4.zip
s3: Fix serverid_exists
In the cluster case it can happen that a node just died and we did not yet have the time to clean up serverid.tdb. If the corresponding serverid.tdb record that represented a process was migrated away from the dead record, it represents existence of a process where it is already dead.
-rw-r--r--source3/lib/serverid.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/source3/lib/serverid.c b/source3/lib/serverid.c
index dd02e51a21..ded72981ec 100644
--- a/source3/lib/serverid.c
+++ b/source3/lib/serverid.c
@@ -234,6 +234,10 @@ bool serverid_exists(const struct server_id *id)
struct serverid_key key;
TDB_DATA tdbkey;
+ if (lp_clustering() && !process_exists(*id)) {
+ return false;
+ }
+
db = serverid_db();
if (db == NULL) {
return false;