s3: Fix serverid_exists
authorVolker Lendecke <vl@samba.org>
Fri, 3 Dec 2010 08:34:02 +0000 (01:34 -0700)
committerVolker Lendecke <vlendec@samba.org>
Sun, 19 Dec 2010 22:25:06 +0000 (23:25 +0100)
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.

source3/lib/serverid.c

index dd02e51a219f60033ff1535ff67d04b5510e1b7e..ded72981ec4be7a203fdb9946b6db90995604974 100644 (file)
@@ -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;