1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-13 13:18:06 +03:00
Commit Graph

1072 Commits

Author SHA1 Message Date
Andrew Tridgell
405e123ffb removed redundent debug message
(This used to be ctdb commit 9ee742b7cc43be7da6b568308912a3f2cfe4f4d3)
2007-08-20 11:13:38 +10:00
Andrew Tridgell
46639ac19e merged new event script calling code from ronnnie
(This used to be ctdb commit bbacad61b3eee4276ffe44ed2a23949aca8152cf)
2007-08-20 11:10:30 +10:00
Ronnie Sahlberg
1ee8c79db7 start winbind before smbd
(This used to be ctdb commit d6a2e22a6d688cfcf5631c8de68fc8ef721635d6)
2007-08-16 11:34:35 +10:00
Ronnie Sahlberg
ce91401724 we should start winbindd before we start smb
(This used to be ctdb commit 03aad3ea55c4816a3790ac9336026b4872a65310)
2007-08-16 11:18:16 +10:00
Ronnie Sahlberg
7322e82bcb add text to the event script timeout log on how to find out which script
timed out

(This used to be ctdb commit bd6db995fb00ed45c5f0a50bbe6cf5d0fe22a194)
2007-08-15 15:08:42 +10:00
Ronnie Sahlberg
3b9d50f3ee change the now rather small /etc/ctdb/events script into a service
specific script /etc/ctdb/events.d/00.ctdb

get rid of CTDB_EVENTS_SCRIPT and --event-script

(This used to be ctdb commit 81ccfaf838e5772d4a58eb6a70224b7b39aba9f3)
2007-08-15 15:01:31 +10:00
Ronnie Sahlberg
ff58f7c7ea add a comment that the talloc_free also removes the script from the tree
(This used to be ctdb commit ce71f6e9cf983cc4fe66935ad6c18d55dfed03a5)
2007-08-15 14:46:06 +10:00
Ronnie Sahlberg
4023576e50 call the service specific event scripts directly from the forked child
instead for from /etc/ctdb/events so that we can get better debugging 
output in the logs when something fails in the scripts

(This used to be ctdb commit 4ed96b768aea1611e8002f7095d3c4d12ccf77a3)
2007-08-15 14:44:03 +10:00
Ronnie Sahlberg
6fc0653b97 zero out the sa struct to supress a valgrind error
(This used to be ctdb commit b17ff60ad4c5fac76d3f77dacb10c30ae564bf09)
2007-08-15 12:34:41 +10:00
Andrew Tridgell
f2fb717402 merge from ronnie
(This used to be ctdb commit 0a91fe52f34d997c1a3cde0fa356deaaf290a4a9)
2007-08-15 11:48:03 +10:00
Ronnie Sahlberg
1fa787e667 fix typo
(This used to be ctdb commit c7a8e7b506f98240c0e9f705fe1f504a6a56a332)
2007-08-15 11:38:27 +10:00
Ronnie Sahlberg
83dbfecad7 add a description on how the event scripts works to the README and make
sure it is installed in /etc/ctdb/events.d

(This used to be ctdb commit adec62a924af5bb023f346e705515b09dbe64f21)
2007-08-15 11:36:01 +10:00
Ronnie Sahlberg
e0957ba4a4 add a function to return the first entry that is stored in a tree where
the key is an array of uint32_t

(This used to be ctdb commit 99553397aade4f1c4d17ef14dad406934958c80a)
2007-08-15 10:57:21 +10:00
Ronnie Sahlberg
5a02262a06 comment that ctdb_event_script_v() is called from a forked childs
context and thus can make blocking calls

(This used to be ctdb commit b31d98281f15995ad340d2510e08e04ed46e271a)
2007-08-15 10:48:10 +10:00
Ronnie Sahlberg
56d5ef27b6 add a wrapper function to create the key used to insert/lookup a certain
tcp connection in the tree that stores the tcp connections to kill by 
sending an RST

add a define that specified the keylength instead of hardcoding it as 4

(This used to be ctdb commit 6a8322cbae10f2c78b2e286c75aeb25ece12ea7f)
2007-08-15 10:01:00 +10:00
Andrew Tridgell
f03defff70 merge changes needed for samba4
(This used to be ctdb commit a7f80f78cd62401b3516da3640bf24d6362db872)
2007-08-15 09:03:58 +10:00
Ronnie Sahlberg
6d5af34024 from Chris Cowan
patches to smnotify to make it compile under AIX.

On AIX, we need to specify $(POPT_OBJ) explicitely

On AIX we can not use the -C flag to rpcgen since it is not implemented

On AIX we must explicitely force an #include of rpc/rpc.h in the idl 
file since rpcgen does not automatically add it to the generated files

(This used to be ctdb commit 8c3e7ce645ec829bc465302831cc6b23452525d6)
2007-08-15 07:59:01 +10:00
Ronnie Sahlberg
9c6e37fea4 enhanced tests to verify the tree integrity when adding/removing nodes
(This used to be ctdb commit 7885a4fa6e4ac50081e440ed6c82101ec807999f)
2007-08-13 14:29:19 +10:00
Ronnie Sahlberg
a405cc32d9 remove an extra blankline
(This used to be ctdb commit c71f237e384b33e3c560af3329c615bda613ca04)
2007-08-09 16:11:11 +10:00
Ronnie Sahlberg
adb49f02f0 change the mem hierarchy for trees. let the node be owned by the data
we store in the tree and use a node destructor so that when the data is 
talloc_free()d we also remove the node from the tree.

(This used to be ctdb commit b8dabd1811ebd85ee031563e95085f720a2fa04d)
2007-08-09 14:08:59 +10:00
Ronnie Sahlberg
18deb7e015 remove an unused function
(This used to be ctdb commit 38a26d1f3709fbce551bc3a7af8bacd0ff465bca)
2007-08-09 07:59:50 +10:00
Ronnie Sahlberg
5332b61c4f run the test for 60 seconds if that is what we claim
(This used to be ctdb commit ff0c0526e21c35fe7a599e61cd0f84352c7f6ad6)
2007-08-08 17:49:08 +10:00
Ronnie Sahlberg
22e8064ae9 add more extensive test cases and verify that we are not losing any
memory inside the tree

(This used to be ctdb commit 838376b52d65af509532a141d83b51975c7cc881)
2007-08-08 17:26:40 +10:00
Ronnie Sahlberg
9c216d0d76 when we want to kill a tcp connection we stored the connection
description (src + dst sockaddr_in) in a linked list.
everytime we receive a captured packet from the network we had to walk 
this list in linear time to see if the packet matched a connection we 
wanted to RST.
which wouldnt scale very well.


replace the linked list with a redblack tree that is indexed by
src address, src port,  dst address,   dst port
to make checking whether the packet belongs to a connection we want to 
RST very fast and scalable


the reason we need to capture packets when we want to kill a TCP 
connection is because we must wait for an ACK coming back from the 
remote host  so that we can learn which sequence number to use in the 
RST.
Most tcp today will ingore any and all RST segments unless the 
sequencenumber lies exactly on the right edge of the window to make 
spoofing RST a little bit more difficult.

(This used to be ctdb commit ced18caea8582af042287beb6333dd1f8ba3344d)
2007-08-08 15:09:19 +10:00
Ronnie Sahlberg
203306400e add helpers to traverse a tree where the key is an array of uint32
(This used to be ctdb commit d328c66827cafff6356e96df2a782930274fe139)
2007-08-08 13:50:18 +10:00
Ronnie Sahlberg
9525b010aa add helpers to add/lookup/delete nodes in a tree where the key is an
array of uint32

(This used to be ctdb commit b7e0996e7735c8629d07453b9d335990c2dbc3db)
2007-08-08 12:30:12 +10:00
Ronnie Sahlberg
c1bfda5772 add a tree insert function that takes a callback fucntion to populate
the data of the tree.
this callback makes it more convenient to manage cases where one might 
want to insert multiple entries into the tree with the same key

rename the tree->tree pointer to tree->root  since this is supposed to 
point to the root of the tree

add a small test utility

(This used to be ctdb commit f6313bed9c53e0d1c36c9e08ac707e88e2a4fcd5)
2007-08-08 11:21:18 +10:00
Ronnie Sahlberg
26d3cd38a9 change fprintf(stderr to DEBUG(0, now that client DEBUGs are redirected
to stderr

(This used to be ctdb commit 14078130d295014a751f3e0039bc8eaf427440f9)
2007-08-08 10:19:42 +10:00
Ronnie Sahlberg
c522b852c4 merge from tridge
(This used to be ctdb commit b6ffb429ab33a66e374e9481bbf4fe6b47a67dab)
2007-08-08 10:14:44 +10:00
Ronnie Sahlberg
65d78aade4 compile rb_tree.c by default.
this code is not yet called from anywhere but is at least now compiled

(This used to be ctdb commit 4bc06e4d1e6e2ff57e33bae93613b12e7ea26bb0)
2007-08-08 08:25:20 +10:00
Ronnie Sahlberg
49f0317b21 when inserting data in the tree, if there was already a node with the
same key then replace the data in the node with the new data and return 
the pointer to the previous data held in the node.

this allows a caller to avoid having to first check if a node already 
exists before inserting a possibly duplicate/colliding entry and lets 
the caller do whatever it needs to do after the fact.

(This used to be ctdb commit 6634cabb910c26400780d51727ff2d1ba5e16e36)
2007-08-08 08:20:46 +10:00
Ronnie Sahlberg
a85054adcf /etc/sysconfig/nfs can now discover the public ipaddress automagically
(This used to be ctdb commit 75e6fe48e4085eedf99ca1223a0e92208e77f716)
2007-08-08 07:58:13 +10:00
Ronnie Sahlberg
24d1ee09ec dont wait indefinitely for the initial getvnn to complete
(This used to be ctdb commit ef38725ad8c5f1792feacb14b8888f246187da15)
2007-08-08 07:35:53 +10:00
Andrew Tridgell
8a81a03b9e merge from ronnie
(This used to be ctdb commit e06f70f064e39f1a4a394f00b81b6b1d215534d4)
2007-08-07 13:40:13 +10:00
Ronnie Sahlberg
d69055b789 change error output in ctdb and in ctdb_cmdline_client to print to
stderr instead of stdout

(This used to be ctdb commit 6e6e165c2d8f0963ce37567c23aaa012fc3e89d9)
2007-08-07 12:51:25 +10:00
Ronnie Sahlberg
2b51871bad add a ctdb command to print the default public ip of a host.
(This used to be ctdb commit 7de5489f6ebd0e5671e7afa5cb51471043ee46d1)
2007-08-07 12:10:05 +10:00
Ronnie Sahlberg
b5a3653471 merge from tridge
(This used to be ctdb commit e81b5455af04a76ff53a0eceed9db7e4599c221e)
2007-08-07 10:47:30 +10:00
Ronnie Sahlberg
5c1a7f19fc move scsi/scsi_io.c to utils/scsi/scsi_io.c
(This used to be ctdb commit 157e5a0e96af133d28a36847c82efd23fb2354e3)
2007-08-07 09:03:51 +10:00
Ronnie Sahlberg
209f63d42a we dont use sm-notify any more
remove it from the webpage

(This used to be ctdb commit d5447d4ce487f3575054beba07bf255a6a51d2e4)
2007-08-07 07:40:33 +10:00
Ronnie Sahlberg
8b58fe2489 do not restart lockd/statd when we takeover an ip address this is
overkill since
1, we now kill the tcpconnections for lockd in 60.nfs
2, rpc.statd on linux sends out the notifications using the wrong 
interface anyway  which breaks a lot of clients  including linux !



use our own smnotify tool instead of sm-notify

(This used to be ctdb commit 0163ad0ec01be6189a98ea91e5cec40f6750218f)
2007-08-04 11:23:04 +10:00
Ronnie Sahlberg
3d7b4e9322 update the specfile to install smnotify
(This used to be ctdb commit a7ae82f62474711bfb3dc90e91c6e2b75bf3ee8e)
2007-08-04 10:16:37 +10:00
Ronnie Sahlberg
bc832646f7 install smnotify in $(bindir)
(This used to be ctdb commit 61bc93b7b23b74c5b5c7a8e2d6bc5b75c8f73fe1)
2007-08-04 10:15:07 +10:00
Andrew Tridgell
5e0215a0be merge from ronnie
(This used to be ctdb commit e2f11745df88d22e98fc5d5e1ca69acac13f1423)
2007-08-03 13:18:44 +10:00
Ronnie Sahlberg
9262e2ab8a dont wait for the default rpc timeout when trying to bing to a client.
abort after 3 seconds

fix makefile so that we generate the header before trying to compile 
smnotify.o

(This used to be ctdb commit bda310b74d6364bf88032874a1f3a2fb156f9736)
2007-08-03 10:47:37 +10:00
Ronnie Sahlberg
da1d5fb2cc add a small tool that can send smnotify packets
(This used to be ctdb commit 2bf3e1311ed9c68eeae9e18344da9ca08f0d4297)
2007-08-03 10:18:48 +10:00
Ronnie Sahlberg
ec837e33d7 update the manpage for the -n option to make it clear we are referring
to the node number and not the node hostname

(This used to be ctdb commit dd9b60887cadb6a8f442230cc06888fd82e7c952)
2007-08-03 07:53:52 +10:00
Ronnie Sahlberg
dd14afe6aa after we have checked dest address that it is a public address
update addr to the source address so the rpintout in the log matches
the client that attached to samba

(This used to be ctdb commit 72098b71c79469c86769ca82bbd484c81902d27c)
2007-07-30 16:10:14 +10:00
Ronnie Sahlberg
64f61364a7 add a small tool to compare rb tree with a timeval_compare()+add an
entry to the end of the list DLIST (worst case insert)

(This used to be ctdb commit dcdf4a1f1c6675ae11ab26726c867d7782954fc6)
2007-07-30 10:50:35 +10:00
Ronnie Sahlberg
c76f323f73 fix the remaining bugs with tree delete that testing found.
the binary tree should work reasonably well now for delete.
insert always worked fine.

(This used to be ctdb commit 452cda26b206549504480b77483308b44cfa8b01)
2007-07-30 09:09:34 +10:00
Ronnie Sahlberg
8df376b3f0 remove dead code
(This used to be ctdb commit 97ffcda5e56f04aed2f4f8b889b4eb6311f69c4d)
2007-07-26 07:22:36 +10:00
Ronnie Sahlberg
84851b674c fix some remaining bugs with deleting nodes
(This used to be ctdb commit 8aec0e0bef794afce1d2abf762bfadee4ab7e619)
2007-07-26 07:21:32 +10:00
Ronnie Sahlberg
8e0a12463b there were situations where we were not guaranteed that a sibling had 2
child nodes which would cause a segv when trying to dereferencing those 
two child nodes in order to read their color

(This used to be ctdb commit 56f5fb8f8f3e667f5bc13f09fb5de01f5f2e0fae)
2007-07-25 17:53:55 +10:00
Ronnie Sahlberg
904e5ba55e if sibling is NULL it is a leaf node and thus black.
(This used to be ctdb commit 400488472ba64514fa6534d5de90edba6c5e27c6)
2007-07-25 17:22:04 +10:00
Andrew Tridgell
5b899f0edf make timed_event structure private to events_timed.c
(This used to be ctdb commit 4a61132e2a4f6beca8e9148307c7ec16cb74bb08)
2007-07-25 11:43:27 +10:00
Ronnie Sahlberg
e666808f60 no need to have a separate assignment of the tcparray pointer followed
by a talloc_steal()
use the returned pointer in talloc_steal as the value to assign

(This used to be ctdb commit 5c6375ad3bbecfa725ec3b1477f259e5a8191866)
2007-07-25 08:03:58 +10:00
Andrew Tridgell
88ac1086c6 up release number
(This used to be ctdb commit 2b9c196e66264c7a130c957b4d23fc61a62bb10a)
2007-07-24 22:14:12 +10:00
Ronnie Sahlberg
13e56a81a9 initial version of talloc based red-black trees
very initial version

(This used to be ctdb commit 121f5c9dfc8e441313e42d94bed9c9f13ec91398)
2007-07-24 18:51:13 +10:00
Ronnie Sahlberg
81294825e7 when we build the arp structure for sending gratious arp (and tcp
tickles) just talloc_steal the enture tcp_array into the arp 
structure instead of copying each of the entries into a linked list
and then releasing the tcparray.

(This used to be ctdb commit 468e237740cf37a65872ef700bbb1284ede8352a)
2007-07-24 07:46:51 +10:00
Ronnie Sahlberg
ea56d1d20e set the tcp tickle update flag to true once we have done a takeover and
tickled all connections
othervise the other nodes will still remember this list until next time 
we have had a connection/client closing.

(This used to be ctdb commit cb8e5d4bbee2f14f498735489f673ff3679dfd9d)
2007-07-20 19:11:45 +10:00
Ronnie Sahlberg
81767b2a7b when a client connects with TCP_CLIENT we should look at the
destination address to find the public address   not the source address

(This used to be ctdb commit d6d4a7f38a52c1c2579a54d14cb7a6981fb42f5b)
2007-07-20 17:04:08 +10:00
Ronnie Sahlberg
fca90ce3c3 updated ctdb tickle management
there is an array for each node/public address that contains tcp tickles

we send a TCP_ADD as a broadcast to all nodes when a client is added

if tcp tickles are removed, they are only removed immediately from the 
local node.
once every 20 seconds a node will push/broadcast out the tickle list for 
all public addresses it manages.   this will remove any deleted tickles 
from the remote nodes

(This used to be ctdb commit e3c432a915222e1392d91835bc7a73a96ab61ac9)
2007-07-20 15:05:55 +10:00
Ronnie Sahlberg
7b17afdfcd change the tickle list from one global list into an array per public
ip/node

once we have started sending all tickles for a specific ip   delete the 
entire array   so that the tickles dont remain forever in the ctdb 
server

add a control to send the full list of every tickle that is registered 
for a particular public ip/node

(This used to be ctdb commit d0eee33e44d3f8e26debbec21d41e2cbdbb520e6)
2007-07-20 10:06:41 +10:00
Andrew Tridgell
394190d3cc - log registering of tcp clients
- don\'t remove a tcp entry if we do not own the ip
(This used to be ctdb commit 400aa284b9785ce6409e7600df429f5849e3867d)
2007-07-19 15:04:54 +10:00
Andrew Tridgell
689195b455 make sure we still run events when waiting for ctdb_event_script()
(This used to be ctdb commit 05efbfe9ff9691c1d7441e7b9855aed25791faf0)
2007-07-19 13:36:00 +10:00
Andrew Tridgell
fb22d3bd2c merged from ronnie
(This used to be ctdb commit 765b07fa5d1af07c8c7212d19d8e9574060b3039)
2007-07-18 20:13:57 +10:00
Ronnie Sahlberg
4d1f3acc94 add a check if start_node is beyond the end of the nodemap and reset it
back to 0 if it is to prevent an infinite loop.

this could happen if in the future we add a mechanism to add/remove 
nodes to a cluster at runtime

(This used to be ctdb commit 217e80a468713fec86ccb0608460e3401046bb98)
2007-07-16 08:36:09 +10:00
Ronnie Sahlberg
49f98e79fd change the way we pick/find a new node to takeover for a failed node
to keep a static that controls at which noide to start searching the 
list for takeover candidates next time we need to find a node.

each time we find a node to takeover, reset the start variable to point 
to the next node in the list

this makes the distribution of takeover nodes much more even

(This used to be ctdb commit e9800df5a21079ea478d16f7dd2fd4707de85650)
2007-07-16 08:28:44 +10:00
Ronnie Sahlberg
7e532f8f83 we dont do nfstickles unless ctdb manages nfs
(This used to be ctdb commit 0622b4a969abdc8bd11f200ed5ae1c7b1d188db7)
2007-07-15 11:43:11 +10:00
Ronnie Sahlberg
643b87fbae fix bug introduced in previous commit
(This used to be ctdb commit 8396a7500225c90165ebcfbdc2c65673740e6b25)
2007-07-15 11:37:22 +10:00
Ronnie Sahlberg
e96f733052 there is no point in doing anything in 10.interfaces unless we have a
public interface

(This used to be ctdb commit c0335ee92b16a1e2dfcb37a39872b66a35b0ab94)
2007-07-15 11:28:53 +10:00
Ronnie Sahlberg
8e89b27098 try netstat as a last attempt to check a tcp port in
ctdb_check_tcp_ports() as well

(This used to be ctdb commit ad0292726f9cfc8afe3733b30ac2d5621e9a48f1)
2007-07-15 09:29:08 +10:00
Ronnie Sahlberg
4c276ded1f if we dont have nc or netcat, try using netstat as a final attempt to
check for tcp ports

(the check for these tools should not really use hardcoded paths)

(This used to be ctdb commit 56d77082c07a519dd3804cc24cc7ba889b8469ff)
2007-07-15 09:26:54 +10:00
Ronnie Sahlberg
3890fde07f if we dont have /etc/sysconfig and we dont have /etc/default
check /etc/ctdb/sysconfig as a last option

(This used to be ctdb commit 1043929ceb0cd04ab6466e9a5d7d52f9af1cb8e8)
2007-07-15 09:13:50 +10:00
Ronnie Sahlberg
82824e0680 when we have found that /etc/rc.d/init.d/SERVICE exists, then run that
script and not /etc/rc.d/SERVICE

(This used to be ctdb commit 7f0c3a02ef11fd19c8cd5116fd451ebd10ba5d1b)
2007-07-15 08:54:48 +10:00
Ronnie Sahlberg
e7738e9a4b add some configure magic to make it configure and build properly on
linux and aix

(This used to be ctdb commit 6a422e53a60829c7c8d97e31e6ed14ee38cc2d2d)
2007-07-14 15:16:52 +10:00
Ronnie Sahlberg
217142d1e9 add some support for controlling Linux or AIX in the makefile
this should really be done by configure

(This used to be ctdb commit 5a855599288995659e81f1bdbed157bdb207f94a)
2007-07-14 10:58:51 +10:00
Ronnie Sahlberg
a8211f9d1f add an initial system_aix.c to manage raw sockets under aix
(This used to be ctdb commit 277527befedd6f5dfde1c51698245197afd83d99)
2007-07-14 10:27:34 +10:00
Ronnie Sahlberg
6b143c4c5e update the comment at the top of file to reflect the purpose of the file
(This used to be ctdb commit 4d7670102f44ff0f99dafeb050843be38cb258b0)
2007-07-13 17:10:09 +10:00
Ronnie Sahlberg
f09566a81a add a private_data field to the killtcp structure and let the system
specific routines populate it as it see fit when creating a 
capture socket.
pass this structure to read_tcp and close capture socket as parameter

(This used to be ctdb commit 79bbfcfb2223889126fe307d5bbfd24917da07ee)
2007-07-13 17:07:10 +10:00
Andrew Tridgell
8f637e6317 ensure killtcp structure is initialised
(This used to be ctdb commit 2fe7d1ce87e55e125411e7406a9e00b8f55e3cb7)
2007-07-13 11:55:58 +10:00
Andrew Tridgell
1e14ecd176 - merge from ronnie
- cleaner handling of system capture socket

(This used to be ctdb commit d194a41a71b8466d0726dcbae3970a86386fcb3c)
2007-07-13 11:31:18 +10:00
Andrew Tridgell
d2a5af7eb8 fully save/restore scheduler parameters
(This used to be ctdb commit 59408eabe7515d49a6eef3b6fb2590a1cd1df956)
2007-07-13 09:35:46 +10:00
Andrew Tridgell
698a8bc909 fixed the sense of do_setsched
(This used to be ctdb commit 68bca2454ff43ce6d8aab2f87d669d33f5f2a10c)
2007-07-13 09:14:31 +10:00
Andrew Tridgell
0becf46deb allow extra option override in /etc/sysconfig/ctdb
(This used to be ctdb commit f46fae64263ea4776e4bbf9cf14dff17b5b68ddb)
2007-07-13 09:14:15 +10:00
Andrew Tridgell
fc73bc5c24 added --nosetsched option to ctdbd
(This used to be ctdb commit 4cbbb88c1735c7d112e751e22da1c1c69e09bf4a)
2007-07-13 08:47:02 +10:00
Ronnie Sahlberg
850e634166 netinet/if_ether.h is more portable than net/ethernet.h
(This used to be ctdb commit ee84ea17529a27e22c1a0503d07aaeec1ef731e2)
2007-07-12 11:43:30 +10:00
Ronnie Sahlberg
9cde594006 the posix.4 name for the priority field is sched_priority
not __sched_priority

(This used to be ctdb commit c08c5a36b3f1dd2cb72278058cb5664816e1d339)
2007-07-12 11:31:20 +10:00
Ronnie Sahlberg
a650497680 as an optimization for when we want to send multiple tickles at a time
let the caller create the sending socket and use a single socket instead 
of one new one for each tickle.
pass a sending socket to ctdb_sys_send_tcp()

ctdb_sys_kill_tcp is not longer used so remove it

set the socketflags for close on exec and nonblocking in the helper that 
creates the sockets instead of in the caller

add a helper to create a sending socket to send tickles from

(This used to be ctdb commit 469f3fb238a0674a2b48fdf1a7e657e32428178a)
2007-07-12 09:22:06 +10:00
Ronnie Sahlberg
823b7d4a5f rename killtcp->fd to killtcp->capture_fd
we might want to have two sockets attached to the killtcp structure
one for capturing and a second one for sending  so we dont have to 
create a new socket for each tickle we want to send

(This used to be ctdb commit b3e82ec38047bbec1edfd88ade264077d4cbd2ee)
2007-07-12 08:52:24 +10:00
Ronnie Sahlberg
4b6d9485ab ctdb killtcp no longer takes a <numrst> argument to control how many
times to try the reset.

the reset retry attempt is now handled inside the daemon

update the 60.nfs script and remove this parameter that is no longer 
used

(This used to be ctdb commit 30fb09b8b9a989e5cfe86b6daf2dcd2487013344)
2007-07-12 08:31:56 +10:00
Ronnie Sahlberg
76ab80104a make the ctdb tool use the killtcp control in the daemon instead of
calling killtcp directly

(This used to be ctdb commit d21e3e9cf11bdcba6234302e033d6549c557dd69)
2007-07-12 08:30:04 +10:00
Ronnie Sahlberg
1ed0c3a9f7 add daemon code for the new kill_tcp control
(This used to be ctdb commit 8fe4ae62255ecb2db36bea736ff17409ba6614c5)
2007-07-11 18:24:25 +10:00
Ronnie Sahlberg
e4db03f7e6 add a ctdb_ prefix to two public functions
(This used to be ctdb commit 32adee5426aa75ddcd4d648ef326ed03d5ff5c46)
2007-07-11 18:13:03 +10:00
Ronnie Sahlberg
aa080f66d9 first cut at a better and more scalable socketkiller
that can kill multiple connections asynchronously using one listening 
socket

(This used to be ctdb commit 22bb44f3d745aa354becd75d30774992f6c40b3a)
2007-07-11 17:43:51 +10:00
Ronnie Sahlberg
0c44e0ad46 add a ctdb_kill_tcp_callback() that will perform a kill tcp using a
background process

(This used to be ctdb commit dcfcaacff56347d94c244512eb72219b05ef9c3d)
2007-07-11 12:33:14 +10:00
Ronnie Sahlberg
135a964220 pass the header to ctdb_become_dmaster instead of just the reqid
this allows us to print from which node Invalid or Dropped orphan become 
dmaster packets came from

(This used to be ctdb commit 88efd1bf4c796cd2b184156b72296587bc38bb40)
2007-07-11 09:44:52 +10:00
Ronnie Sahlberg
2eef287fab print the operation code in the debug message when we discard a packet
due to incorrect generation number

(This used to be ctdb commit 3151e3b2607291572fc6e7380fd60ef7ce438307)
2007-07-11 08:41:29 +10:00
Ronnie Sahlberg
694bce4be4 regenerated ctdbd manpage
(This used to be ctdb commit ec5788eb3e210b819c9c90f36cbb3e5b7e609e52)
2007-07-11 08:27:22 +10:00
Andrew Tridgell
f97f2946d2 minor back-merge from samba4
(This used to be ctdb commit c591f9b2d2847f440702e7264c7da2fd6d69f4be)
2007-07-10 18:13:47 +10:00
Andrew Tridgell
a4c96397f5 more merges for GPLv3 update
(This used to be ctdb commit b7be4ee6c9a670cdf148fd36b092c3991a554964)
2007-07-10 15:46:05 +10:00
Andrew Tridgell
a78752eae4 update lib/events from samba4 (If->if)
(This used to be ctdb commit 770d1665011af0359aadb2175e9e3440e2effbf5)
2007-07-10 15:34:00 +10:00
Andrew Tridgell
3973b415be update lib/tdb from samba4
(This used to be ctdb commit 96a39ccee38bcfd64d614fe4670766e59ef246b6)
2007-07-10 15:32:27 +10:00
Andrew Tridgell
32de198fd3 update lib/replace from samba4
(This used to be ctdb commit f0555484105668c01c21f56322992e752e831109)
2007-07-10 15:29:31 +10:00
Ronnie Sahlberg
ed1a52b293 use the socketkiller to kill off all lock manager sessions as well
(This used to be ctdb commit 980b090001ed3a77001e2a3bfc1b03833498f434)
2007-07-10 13:09:35 +10:00
Ronnie Sahlberg
26fc2ebd4b update the documentation for NFS to mention that the lock manager must
run on the same port on all nodes.

remove the CTDB_MANAGES_NFSLOCK variable that is no longer used

(This used to be ctdb commit 389a503c44c999e46caa344c4bc073336e797909)
2007-07-10 12:43:46 +10:00
Ronnie Sahlberg
d81bca2072 make it possible to specify how many times ctdb killtcp will try to RST
the tcp connection

change the 60.nfs script to run ctdb killtcp in the foreground so we 
dont get lots of these running in parallel when there are a lot of tcp 
connections to rst

(This used to be ctdb commit d81616214752882242f2886e94681972a790db80)
2007-07-10 10:24:20 +10:00
Ronnie Sahlberg
1c32f65ee0 run the ctdb killtcp in the background
(This used to be ctdb commit d6a514c2b3d427099ed669eef104146608378fa8)
2007-07-10 10:07:26 +10:00
Ronnie Sahlberg
dbc66d054b dont restart the tcp service after a ip takeover, it is more efficient
to just kill off the tcp connections

(This used to be ctdb commit bc481c3f1a44c50648488c4f8a7f15ec395d446f)
2007-07-10 09:45:14 +10:00
Ronnie Sahlberg
a859723912 nicer handling of DISCONNECTED flag when we update the node flags from
a remote message

(This used to be ctdb commit 9a50ad22be61a09761ffda89de91ef3221917c84)
2007-07-09 17:40:15 +10:00
Ronnie Sahlberg
69f3a09e6f when a remote node has sent us a message to update the flags for a node,
dont let those messages modify the DISCONNECTED flag.

the DISCONNECTED flag must be managed locally since it describes whether 
the local node can communicate with the remote node or not

(This used to be ctdb commit 5650673205d335a32d4f27f66847ea66752a00f0)
2007-07-09 13:21:17 +10:00
Ronnie Sahlberg
b871c3e365 a better way to fix the DISCONNECT|BANNED vs DISCONNECT bug
(This used to be ctdb commit 5c638d7731c5a268de02d3a37828ac7aec9a12de)
2007-07-09 12:55:15 +10:00
Ronnie Sahlberg
3499c8c673 when checking the nodemap flags for consitency while monitoring the
cluster,   we cant check that both the BANNED and the DISCONNECTED flags 
are both set at the same time   since if a node becomes banned just 
before it is DISCONNECTED   there is no guarantee that all other nodes 
will have seen the BANNED flag.

So we must first check the DISCONNECTED flag only   and only if the 
DISCONNECTED flag is not set should we check the BANNED flag.


othervise this can cause a recovery loop while some nodes thing the 
disconnected node is DISCONNECTED|BANNED and other think it is just 
DISCONNECTED

(This used to be ctdb commit 0967b2fff376ead631d98e78b3a97253fc109c69)
2007-07-09 12:33:00 +10:00
Andrew Tridgell
f1db15ffe1 fixed sense of inet_aton test
(This used to be ctdb commit ed5cf9b43c49312d3736e85077863d23990acce8)
2007-07-08 21:09:09 +10:00
Andrew Tridgell
056d3c35a4 call kill_clients when releasing all IPs, as well as for individual IPs
(This used to be ctdb commit ad68904720eb69757601589b06726190321685ac)
2007-07-08 20:45:12 +10:00
Andrew Tridgell
af5ee9981e we do tell banned nodes to release IPs
(This used to be ctdb commit 381dc0421d4d825398c03dcff4e79e3f76c3c981)
2007-07-08 20:24:03 +10:00
Andrew Tridgell
a55c03b31b log the generation numbers to give a hint about this bug
(This used to be ctdb commit 12018494baa33c5f6c52e6eae94ac77a56d3e5a0)
2007-07-08 19:36:55 +10:00
Andrew Tridgell
031347e83d increment rpm release number
(This used to be ctdb commit 2c3399f1388fdcb993d235814d59df163f501d03)
2007-07-08 10:41:30 +10:00
Ronnie Sahlberg
e1f774a95b use the official iana number for ctdb and not 9001
(This used to be ctdb commit f72aeb5eadb0bda97d882b5a27562bfa1bb5f5a2)
2007-07-06 15:29:03 +10:00
Ronnie Sahlberg
34e2c73020 use 'ctdb tickle' instead of sendip to tickle nfs clients.
(This used to be ctdb commit 2204cc77ce6b1dd6bb0118f57cfa05f0c8826c3e)
2007-07-06 11:51:34 +10:00
Ronnie Sahlberg
72265dd5bd remove 59.nfslock and fold this into 60.nfs
add a 61.nfstickle script to make nfs failover faster

(This used to be ctdb commit da71fa874d49346d229307d424f889994a205c89)
2007-07-06 10:54:42 +10:00
Andrew Tridgell
b96795c39f merge from ronnie (with spelling fixes)
(This used to be ctdb commit 079a5509da961503583b5d0c1e3c7bb6fff1a700)
2007-07-05 15:06:42 +10:00
Ronnie Sahlberg
a840602cd8 break the tickle description into two paragraphs
(This used to be ctdb commit 3bde3c68b965e704281c5a8c57505a7f76cd4612)
2007-07-05 10:17:46 +10:00
Ronnie Sahlberg
084720facc update the manpage for ctdb to describe killtcp and tickle
(This used to be ctdb commit 4b4566ab05997c5df8ff342af223b07982b6f366)
2007-07-05 10:16:11 +10:00
Andrew Tridgell
871ef93b82 fixed help layout
(This used to be ctdb commit ee8acf166961838a3a82d658a66407ba5ccb4939)
2007-07-05 10:00:51 +10:00
Andrew Tridgell
3b4fa64dd9 fixed error message on bad IP/port
(This used to be ctdb commit ad2d8615c028d55bc5e94c9d7bd8432cafde4a69)
2007-07-05 09:59:45 +10:00
Ronnie Sahlberg
71ba917444 add a command to ctdb to send tickle-ack's
(This used to be ctdb commit 83ddb6eaa269fbc5f235d606ee21239a7e0e23d2)
2007-07-05 08:56:02 +10:00
Andrew Tridgell
006227e80a forgot to add this
(This used to be ctdb commit 30fc56b7489e42633532964096e53faee1319dde)
2007-07-04 17:45:46 +10:00
Andrew Tridgell
1e00d1d39e removed unused makefile var
(This used to be ctdb commit 4f397c5edf4206aa33c4fe19a24557541c2f8929)
2007-07-04 16:52:38 +10:00
Andrew Tridgell
bdf01ed7c0 - neaten up the command line for killtcp
- split out the event script code into a separate module
- get rid of the separate takeover directory

(This used to be ctdb commit 8ea2c923a3e2464200ff79bf2c3f1f89e6a93ad4)
2007-07-04 16:51:13 +10:00
Andrew Tridgell
19d2fc0aa6 more careful checking of lengths
(This used to be ctdb commit 45662f2152a152b7160b66a857d8215348c28dc5)
2007-07-04 16:22:09 +10:00
Ronnie Sahlberg
5ad7f642f3 we dont need socketkiller anymore now that the
kill-tcp-connection code is available from the ctdb tool

(This used to be ctdb commit c24890ad44b535c989bd21e83d619a1bd4825834)
2007-07-04 14:16:28 +10:00
Ronnie Sahlberg
ab6564c83d add a killtcp command to the ctdb tool
(This used to be ctdb commit 01987b51fed0dc0b9a5e254fa734bdeb19debf6f)
2007-07-04 14:14:48 +10:00
Ronnie Sahlberg
a52f6760f3 add a new ctdb_sys_kill_tcp() function that kills (RST) the specified
connection

(This used to be ctdb commit 11a972f37d4ca7daf052b3b502620af05699bec4)
2007-07-04 13:53:22 +10:00
Ronnie Sahlberg
8f0a00b72b change the signature for ctdb_sys_send_ack() to ctdb_sys_send_tcp()
to make it possible to provide which seq/ack numbers to use and also 
whether the RST flag should be set.

update all callers to the new signature

(This used to be ctdb commit b694d7d4a6f3865a18bea8f484ba690e4ae7546c)
2007-07-04 13:32:38 +10:00
Ronnie Sahlberg
edcab7e068 ETH_P_IP does not work on my ubuntu system so changing it back to the
slightly less efficient ETH_P_ALL

(This used to be ctdb commit 84b8c77654b6c24928f63c801b183390824a3f6f)
2007-07-04 13:27:08 +10:00
Andrew Tridgell
2014d3959f merge from ronnie
(This used to be ctdb commit b5510446073d6a058d11dabf92bef0e9721cd861)
2007-07-04 13:14:45 +10:00
Ronnie Sahlberg
597aa7ed59 initial version of a socketkiller tool
checked in so it is not lost 

this tool takes a socketpair as arguments and will reset the tcp 
connection

(This used to be ctdb commit bddd448740ef7f5a88b8549a3d184a94ac9fcd96)
2007-07-04 12:52:07 +10:00
Ronnie Sahlberg
1cd8bc0c64 add a tuneable to control how long we wait after a successful recovery
before we alow another recovery to be initiated

(This used to be ctdb commit f3b43519423b7a73e6a2dd986bdf11203b8653cf)
2007-07-04 08:36:59 +10:00
Ronnie Sahlberg
b65d814f20 add more command line parsing
add the PREEMPT service action for persistent reservation out   so we 
can delete someone elses registration from the lun and thus disable that 
someone else from reading/writing the lun completely

(This used to be ctdb commit a31aa458f96cbe37a47af79c8d8b92c15198edaa)
2007-07-03 12:25:49 +10:00
Ronnie Sahlberg
5980f1f297 add GPL comment to scsi_io.c
(This used to be ctdb commit 747a8647862a2b915872f431a73398715208ba78)
2007-07-02 18:25:13 +10:00
Ronnie Sahlberg
c3884e1b29 start implementing command line parsing to scsi_io to make it take
parameters that control what operations to perform

(This used to be ctdb commit 6350b353bc436a2b5a1e4c1b0bc332e83932148d)
2007-07-02 17:52:57 +10:00
Ronnie Sahlberg
27ce064abd get rid of some compiler warnings for the scsi tool
(This used to be ctdb commit 391657fe19f4359b1376a9aedb661271dfe0c542)
2007-07-02 16:13:31 +10:00
Ronnie Sahlberg
bf216f8faa add incomplete code fragments to perform SCSI PERSISTENT RESERVATION
calls to a scsi device.

added to bzr so it will not be lost


we need access to an array that supports this optional cdb before we
can proceed and toolify it properly

(the idea is that ctdb should have a mechanism where it can shut out
nodes from accessing the LUNs when it has deemed a node as disconnected)

(This used to be ctdb commit 360573b505c6df8a32996efce3813fa95365a206)
2007-07-02 15:51:38 +10:00
Ronnie Sahlberg
027d40a5ee rename tnode->queue to tnode->out_queue to indicate this queue is for
sending data out to the other node

(This used to be ctdb commit 0bc949c529094570da56c9007ff96b1f5ad02c59)
2007-07-02 14:26:50 +10:00
Ronnie Sahlberg
3a71dcf505 when accepting an incoming connection, verify that the source address is
from one of the configured nodes and reject the connection othervise

(This used to be ctdb commit ef290a6340eb1a1c0ae60c74b38c93396e388f73)
2007-07-02 14:10:20 +10:00
Andrew Tridgell
dfebca5f49 script version of install needs spaces after -m
(This used to be ctdb commit 7a0abba637f234dd28e776bc12682b07ac0fbe08)
2007-06-26 07:40:37 +10:00
Andrew Tridgell
6399cf9542 added code to kill registered clients on a IP release
(This used to be ctdb commit ca0243b544987ce0618a99ac87b4abf598991e93)
2007-06-19 03:54:06 +10:00
Andrew Tridgell
f532ada445 run smbstatus every 10 minutes to scrub databases
(This used to be ctdb commit cd119cdb9a1a7e0545f1c33a2a156a3d3c5d7645)
2007-06-18 03:15:08 +10:00
Andrew Tridgell
669a6b13f9 merge from ronnie
(This used to be ctdb commit 7bfc1be6dff5bd5acadfa8a3fd8f00a8ce87ca54)
2007-06-18 03:10:50 +10:00
Ronnie Sahlberg
d2ada57f60 add a mechanism to the samba event script to do periodic cleanup of the
databases once every 60 minutes

(This used to be ctdb commit 8762e08284343bf68bfed90838483e5d53db24ce)
2007-06-18 02:34:29 +10:00