1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-12 09:18:10 +03:00
samba-mirror/ctdb
Ronnie Sahlberg fa872de664 60.nfs:
we must always restart the lockmanager when the cluster has been 
reconfigured and ip addresses has changed. This is to make sure we get a 
clusterwide grace period for nfs locking.
if we dont do this and only restart locking on the nodes that were 
direclty affected, a different client can take out a conflicting lock 
from a different node before affected clients has had a chance to
reclaim all the locks lost during reconfigure.
grace period on rhel5 kernel has bene increased to 90 seconds!

statd-callout:
we must restart lockmanager to ensure a clusterwide grace period for 
nfs. this makes locking "more correct" for nfs clients and prevents
other clients/nodes from taking out a conflicting lock while a different
client/node tries to reclaim lost locks.
This makes it "almost consistent" for NFS clients   but there is still 
the possibility that a cifs client can take out a conflicting lock 
before an nfs client has had a chance to reclaim an existing lock.
This can not be solved with anything less than making the kernel nfs 
lock manager "samba aware" and making samba aware of the internal state 
of the kernel lock manager so that they can cooperate.

we can not just stop/start the lockmanager back to back in rhel5 since 
if they are stopped/started too close to eachother then when the new 
lockmanager upon starting up sends out statd notifications two things 
can happen:
1, new lockmanager sends out notification BEFORE it has registered with 
portmapper leading to 
  lockmanager starts
  lockmanager sends notification to the client
  client tries to recover the lock and tries to portmap the lockmanager
  port on the server.
  server is not (yet) registered with portmapper and server responds
  "no such program" to hte clients request to discover where lockmanager
   is.
  client then just completely gives up reclaiming the lock and doesnt 
  even reattempt the portmapper call after some timeout.
  ==> lock reclaim failed.
2, if they are started back to back, and a client tries to reclaim the
   lock  the lockmanager sometimes sends two responses back to back
   to the client.   one with status NLM_GRANTED (==you got the lock 
reclaimed) and one with status NLM_DENIED (==you could not get the lock 
reclaimed)
   This confuses the client and leads to the server thinking that the 
client does have the lock   and the client thinking it has not got the 
lock    and orphaned locks result.


We also send out additional notification messages of different formats
to allow more legacy clients to interoperate with locking.

(This used to be ctdb commit 13208c1aab2942e28dff87e38e6794bf0c026033)
2007-09-07 08:52:56 +10:00
..
client we should always get data back from getnodemap 2007-09-05 14:59:29 +10:00
common change ctdb_ctrl_getvnn to ctdb_ctrl_getpnn 2007-09-04 10:38:48 +10:00
config 60.nfs: 2007-09-07 08:52:56 +10:00
doc change how we do public addresses and takeover so that we can have 2007-09-04 09:50:07 +10:00
ib more merges for GPLv3 update 2007-07-10 15:46:05 +10:00
include allow different nodes in the cluster to use different public_addresses 2007-09-04 23:15:23 +10:00
lib merge from ronnie 2007-08-07 13:40:13 +10:00
packaging/RPM up the release number 2007-08-30 17:51:05 +10:00
server dont dereference vnn before we have assigned it a pointer value 2007-09-05 14:29:44 +10:00
tcp change ctdb->vnn to ctdb->pnn 2007-09-04 10:06:36 +10:00
tests change ctdb_get_vnn to ctdb_get_pnn 2007-09-04 10:18:44 +10:00
tools change ctdb_ctrl_getvnn to ctdb_ctrl_getpnn 2007-09-04 10:38:48 +10:00
utils merge from volker 2007-08-22 17:16:01 +10:00
web we dont need the rpc.statd on shared directory neither do we need 2007-09-06 11:32:18 +10:00
.bzrignore more code rearrangement 2007-06-07 22:16:48 +10:00
aclocal.m4 initial version 2006-11-18 10:41:20 +11:00
autogen.sh use the new lib/events autoconf code 2007-05-05 17:18:06 +10:00
config.guess more merges for GPLv3 update 2007-07-10 15:46:05 +10:00
config.mk minor back-merge from samba4 2007-07-10 18:13:47 +10:00
config.sub more merges for GPLv3 update 2007-07-10 15:46:05 +10:00
configure.ac add some configure magic to make it configure and build properly on 2007-07-14 15:16:52 +10:00
install-sh initial version 2006-11-18 10:41:20 +11:00
Makefile.in add an initial implementation of a service_id structure and three 2007-08-24 15:53:41 +10:00