s3: Fix serverid_exists
authorVolker Lendecke <vl@samba.org>
Fri, 3 Dec 2010 08:34:02 +0000 (01:34 -0700)
committerVolker Lendecke <vl@samba.org>
Fri, 3 Dec 2010 11:55:05 +0000 (12:55 +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 a174774a2d907366366aa136b411bbc093609b10..71a6ddf44f08d9f4a0ae9e9c3db2c124bd875ea0 100644 (file)
@@ -181,6 +181,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;