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

366 Commits

Author SHA1 Message Date
Andrew Tridgell
01b7eac536 minor debug changes
(This used to be ctdb commit 1950d96458238782c3bfd8e41a053c4be8330ef9)
2007-04-20 07:47:37 +10:00
Ronnie Sahlberg
4ffc63aa2b merge from tridge
(This used to be ctdb commit 819cdf314900388fe36368a21e2c4895b78b9203)
2007-04-20 07:19:07 +10:00
Volker Lendecke
5edb0a8011 The remote node needs to get the IMMEDIATE_MIGRATION flag to actually send the
record


(This used to be ctdb commit 9159434b1eef39b7de58b30626039f1e45a97306)
2007-04-19 17:44:45 +02:00
Peter Somogyi
c950e52858 Merged tridge's ctdb branch.
(This used to be ctdb commit d9046da5219144afe68f5a376243d998e7068ccd)
2007-04-19 15:52:08 +02:00
Andrew Tridgell
eabe0bd7d4 fixed a bug found by volker - initialse the record on disk when initialised in memory
(This used to be ctdb commit f7903b00cdc91ae7d7e38b1a38d2b7b663e3a728)
2007-04-19 18:31:49 +10:00
Andrew Tridgell
e5c5a91a7b - split out ctdb_ltdb_lock_fetch_requeue() into a simpler
ctdb_ltdb_lock_requeue() and a small wrapper

- use ctdb_ltdb_lock_requeue() to fix a possible hang in
  ctdb_reply_dmaster(), where the ctdb_ltdb_store() could hang waiting
  for a client. We now requeue the reply_dmaster packet until we have
  the lock

(This used to be ctdb commit 97cd7aa09ce3abbb5e3e965c5c81668e0c0133a5)
2007-04-19 17:43:27 +10:00
Andrew Tridgell
273a3944a8 - added a --torture option to all ctdb tools. This sets
CTDB_FLAG_TORTURE, which forces some race conditions to be much more
  likely. For example a 20% chance of not getting the lock on the
  first try in the daemon

- abstraced the ctdb_ltdb_lock_fetch_requeue() code to allow it to
  work with both inter-node packets and client->daemon packets

- fixed a bug left over in ctdb_call from when the client updated the
  header on a call reply

- removed CTDB_FLAG_CONNECT_WAIT flag (not needed any more)

(This used to be ctdb commit 7559dcd184666c3853127e3c8f5baef4fea327c4)
2007-04-19 16:27:56 +10:00
Andrew Tridgell
49458c5946 merge from ronnie
(This used to be ctdb commit 257af5c31a311217315e07d6a194c3f96c8dfa80)
2007-04-19 12:54:51 +10:00
Ronnie sahlberg
db12f3359b the checks for srcnode and destnode from the client are redundant since the daemon will sort these out itself before it sends the call of to either the local handler or a remote daemon
(This used to be ctdb commit 9175d49ba1ce2af99907fa227b50d281f85c98ae)
2007-04-19 12:48:19 +10:00
Andrew Tridgell
eeb3f01e02 merge from ronnie
remove unused bench_incr function in ctdb_bench.c

(This used to be ctdb commit 39424cb13070c9964121b533a9f9ba448ce49d16)
2007-04-19 12:43:19 +10:00
Ronnie sahlberg
5a6b800fe6 remove a comment that is no longer valid
(This used to be ctdb commit e834cf18cfc18c9462f0dfff0315b5b6798771f8)
2007-04-19 12:34:39 +10:00
Andrew Tridgell
634aa50d90 don't need these structures any more
(This used to be ctdb commit 506117dc24ec647c629c92a3996455cd8d9c8ec6)
2007-04-19 12:34:24 +10:00
Ronnie sahlberg
63e513aeeb add some tests in the daemon that a REQ_CALL that a client sent us has valid srcnode and destnode
update ctdbd_test.c to show how to force a migration onto the local node

(This used to be ctdb commit fe313cee4927075be311e28ea106bd5cc035f217)
2007-04-19 12:33:13 +10:00
Ronnie sahlberg
9f0c8b566c merge from tridge
(This used to be ctdb commit 45081eadb89fdaf8c831e161ae7df816beda934b)
2007-04-19 12:00:29 +10:00
Ronnie sahlberg
2013ae16ba merge from tridge
(This used to be ctdb commit e9561cfe190af8c0594de7531fbf087730aae60c)
2007-04-19 11:58:34 +10:00
Andrew Tridgell
e830dfd18d much simpler fetch code!
fetch is now confined to the client code, no spcial code at
all in the daemon. 

(This used to be ctdb commit 3ec801c9717e250b902760862df188e03c9bdbf4)
2007-04-19 11:56:37 +10:00
Andrew Tridgell
d0af75d1fa - fully separate the client version of ctdb_call from the daemon
version. The client version is different enough that this is
  worthwhile

- enable local shortcut for client version of ctdb_call

- add idr_find_type(), with better error reporting in case of type
  mismatch

(This used to be ctdb commit 2388094c5f7b6ce003e86b05620c06217d63b49c)
2007-04-19 11:28:01 +10:00
Andrew Tridgell
b79e29c779 - make he packet allocation routines take a mem_ctx, which allows
us to put memory directly in the right context, avoiding quite a few
  talloc_steal calls, and simplifying the code

- make the fetch lock code in the daemon fully async

(This used to be ctdb commit d98b4b4fcadad614861c0d44a3854d97b01d0f74)
2007-04-19 10:37:44 +10:00
Ronnie sahlberg
697126e61f ctdbd does no longer take a --daemon parameter since we no longer do non-daemon mode
remove the parameter from the ctdbd script

remove the store_unlock from ctdbd_test since there is no and will be no pdu for this
CTDB_REPLY_FETCH_LOCK no longer return the data for the record since the client is assumed to read this itself from the local tdb. remove some variables that no longer exists.

(This used to be ctdb commit 77c43479e1932b27387fc2f85a3cb6538633b481)
2007-04-19 10:24:11 +10:00
Ronnie sahlberg
1812d787ac merge from tridge
(This used to be ctdb commit 414952b2dd48de4a9edb532ba9c2cb6e22bb6d7f)
2007-04-19 10:07:07 +10:00
Andrew Tridgell
fde5a66531 avoid a deadlock the fetch_lock code. The deadlock could happen when
a client held the chainlock, and the daemon received a dmaster reply
at the same time. The daemon would not be able to process the dmaster
reply, due to the lock, but the fetch lock cannot make progres until
the dmaster reply is processed.

The solution is to not hold the lock in the client while talking to
the daemon. The client has to retry the lock after the record has
migrated. This means that forward progress is not guaranteed. We'll
have to see if that matters in practice.

(This used to be ctdb commit 737e5a1253cb048222c595a474aff71c99fc554f)
2007-04-19 10:03:20 +10:00
Andrew Tridgell
a3ab61b384 - use separate directories for the tdb files by default
- use TDB_CLEAR_IF_FIRST to ensure we don't use an old tdb
(This used to be ctdb commit ac47d7b4eb79597da1358da21f10e634cdc9dd2e)
2007-04-19 09:58:23 +10:00
Andrew Tridgell
36816ee12a merged the db_dir changes from volker. Changed them slightly,
to make the --dbdir option available to all ctdb tools, not just
the daemon

(This used to be ctdb commit add63b0ae11d8727163bb6f0c94a617d9b88ef28)
2007-04-19 09:14:25 +10:00
Ronnie sahlberg
450ab4a170 merge from tridge
(This used to be ctdb commit a8d7f1af3751276599086735660fec0659d57b1c)
2007-04-19 08:18:38 +10:00
Volker Lendecke
9135024fc7 Add --dbdir to ctdbd. Necessary for shared operation between ctdbd and smbd.
(This used to be ctdb commit bce40105e2ccbca5e364793bbf1a6357e6dd69b2)
2007-04-18 16:36:22 +02:00
Andrew Tridgell
31e2331608 this fixes a timeout error spotted by volker
It ensures that when the client context goes away (such as when the client exits) 
that any timed events and partially completed requests from that client also go away
(This used to be ctdb commit 45a45a0a44d4da9b45719aac72b0ae4bd4c74462)
2007-04-18 19:12:29 +10:00
Andrew Tridgell
ef505399e6 merged cleanup from ronnie
(This used to be ctdb commit 26037a7b3557faa1c10944f654b1465877c6b840)
2007-04-18 18:43:34 +10:00
Andrew Tridgell
908f5085b0 validate dmaster on a client fetch request
(This used to be ctdb commit b49069aac0c14e5a02be843247930c197d620a81)
2007-04-18 18:39:02 +10:00
Ronnie sahlberg
8dc428d63d we dont need the structure ctdb_reply_shutdown since we dont implement that pdu any more
(This used to be ctdb commit 5bac32b3daf3c61214269cd09cfc1b6c3f8c3d6e)
2007-04-18 17:04:26 +10:00
Ronnie sahlberg
4fbf2b9a1c merge from tridge
(This used to be ctdb commit c8598a3a727049517ee7a923b0ae30b039b9080b)
2007-04-18 17:03:10 +10:00
Andrew Tridgell
ddf430b2f2 simpler shutdown process. The reply is not actually needed, and
occasionally leads to problems if an immediate send on the socket
causes a context switch and the client exiting before the daemon. We
now exit the client when the daemon goes away.

(This used to be ctdb commit b7bed0088e700f25105ceea63640b38804f51e4d)
2007-04-18 15:35:41 +10:00
Andrew Tridgell
0029883c0b use shutdown in more tests
(This used to be ctdb commit 150153947b959f90991fdae8d7c85ef8d551dff5)
2007-04-18 15:27:38 +10:00
Andrew Tridgell
7060030889 make sure we don't double free in the async lock handler
(This used to be ctdb commit 67d3e64f82fd71ff1e32bf377d0cf1f636b9602f)
2007-04-18 15:27:26 +10:00
Ronnie sahlberg
366714a9ad merge from tridge
(This used to be ctdb commit 4a6cb8a5c411457459eaadddd03ef64924505cd8)
2007-04-18 14:45:08 +10:00
Andrew Tridgell
a4bbc88cf1 - merge from ronnie, and use wait instead of sleep in test scripts
(This used to be ctdb commit 6e6812641e3ce7afae7bd46ed317a885839fdd4f)
2007-04-18 14:42:02 +10:00
Ronnie sahlberg
adb4becfb7 add/finish the ctdb_shutdown() function.
this function can be used in test applications to perform an orderly shutdown of the ctdb cluster once the test has completed.
the ctdb nodes will remain operational until all of them have received a shutdown from their client(s)  after which the ctdb daemons will all terminate.

this eliminates the need to using sleep() in some of the test applications

(This used to be ctdb commit f35db69dc190b11659aad85495bb66308fdb5599)
2007-04-18 14:08:45 +10:00
Andrew Tridgell
f57793077f merge fetch1 changes from ronnie
(This used to be ctdb commit 906419acf121ea93661f91bde65cdcd890f70e63)
2007-04-18 12:39:12 +10:00
Ronnie sahlberg
e390c925c1 initial shutdown function where a client can request an orderly shutdown of a ctdb cluster
(This used to be ctdb commit 00d2748bd4e7209ff7e253f6652fdd9bf16cf147)
2007-04-18 12:39:03 +10:00
Andrew Tridgell
7a02b09b01 started adding a cleaner daemon finish method
(This used to be ctdb commit 5ef0cd83d7f24616dad85cece485b770376ecd45)
2007-04-18 11:55:54 +10:00
Ronnie sahlberg
c6f2050e05 merge from tridge
(This used to be ctdb commit e83db4d76ea498413ba4314e937d0ff298bd4cb6)
2007-04-18 11:33:19 +10:00
Andrew Tridgell
aac20642b2 bit less verbose when client exits
(This used to be ctdb commit a6477577beba71bd9185b968de43b763378f234b)
2007-04-18 11:33:16 +10:00
Andrew Tridgell
8f059f4d91 - merge volkers debug changes
- fixed memory leaks in the 3 packet receive routines. The problem was
  that the ctdb_call logic would occasionally complete and free a
  incoming packet, which would then be freed again in the packet
  receive routine. The solution is to make the packet a child of a
  temporary context in the receive routine then free that temporary
  context. That allows other routines to keep or free the packet if
  they want to, while allowing us to safely free it (via a free of the
  temporary context) in the receive function

(This used to be ctdb commit 304aaaa7235febbe97ff9ecb43875b7265ac48cd)
2007-04-18 11:20:24 +10:00
Ronnie sahlberg
1739dbd317 enhance fetch1 test to verify that a lock is released when a client terminates while holding the lock and the next blocked waiting client is assigned the lock
(This used to be ctdb commit 927228299280779664683fca04a7f76b55bef813)
2007-04-18 10:38:11 +10:00
Ronnie sahlberg
818abe7085 merge from tridge
(This used to be ctdb commit d1262efebfc6e51e676720d42443017563aaffe3)
2007-04-18 09:28:40 +10:00
Volker Lendecke
27837c197a Clean up the call_states correctly
(This used to be ctdb commit 9fcc40a2ddd8f7f62bdd8b5ab71d182220e23af0)
2007-04-17 23:40:33 +02:00
Volker Lendecke
ed32ad028c Be less verbose
(This used to be ctdb commit 7497b5a9031c471c25bf6029c436fd82788b415c)
2007-04-17 23:06:10 +02:00
Volker Lendecke
84d276a5be Some more debug and two memleak fixes
(This used to be ctdb commit 1e2802422794956827263265306952df5e69b377)
2007-04-17 23:03:30 +02:00
Volker Lendecke
6c597d3e83 typo
(This used to be ctdb commit bf2799504498ae452bb7244ae3eb6a51797afe9b)
2007-04-17 21:23:22 +02:00
Volker Lendecke
3057f683f3 Add timestamps to debug output.
(This used to be ctdb commit 197a02384bd2ca42dfff4c0357175424d2321e9c)
2007-04-17 17:59:39 +02:00
Andrew Tridgell
98bb60e9d6 add debug tracing to fetch_lock
(This used to be ctdb commit b58d2ae0e4ef3393a93724526f2aebc7529de14f)
2007-04-17 22:39:23 +10:00