1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-27 14:04:05 +03:00

836 Commits

Author SHA1 Message Date
Martin Schwenke
24fb430d6e tests/tool: Remove references in libctdb in file and function names
Main changes are:

  libctdb_test.c -> ctdb_test_stubs.c
  ctdb_tool_libctdb.c -> ctdb_functest.c

ctdb_tool_stubby.c is gone, replaced with existing ctdb_test.c.

Functions starting with "libctdb_test_" now start with
"ctdb_test_stubs_".

Signed-off-by: Martin Schwenke <martin@meltin.net>
Pair-programmed-with: Amitay Isaacs <amitay@gmail.com>

(This used to be ctdb commit 6182bd0c19f215a997efe5272e633b1b1bd0c882)
2013-10-04 15:15:35 +10:00
Martin Schwenke
f3b1790819 tests/tool: Rework test programs so they no longer expect libctdb
Instead, override controls using preprocessor magic.

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit 10aac42f30cc0d56dca42ece17d04ccbc321056d)
2013-10-04 15:15:35 +10:00
Martin Schwenke
a6992b7b07 tests/tool: Fix some comment typos
Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit 59bd4ede15a5958b87e0d253461eb9111885bd2f)
2013-10-04 15:15:35 +10:00
Amitay Isaacs
2b68d143cb tools/ctdb: Pass memory context for returning nodes in parse_nodestring
Signed-off-by: Amitay Isaacs <amitay@gmail.com>

(This used to be ctdb commit 1585a8e275b0143e5e46311b3d5e9785119f735f)
2013-10-04 15:15:35 +10:00
Amitay Isaacs
d4643abe88 tests: Do not use libctdb code in tests
Signed-off-by: Amitay Isaacs <amitay@gmail.com>

(This used to be ctdb commit ae0d8f432ef98a72c85a6cd42c503b718bef0e4e)
2013-10-04 15:15:34 +10:00
Amitay Isaacs
2814c9a0c5 tests: Remove unused test program ctdb_fetch_lock_once
Signed-off-by: Amitay Isaacs <amitay@gmail.com>

(This used to be ctdb commit 873b9cadbcc363a9e5f450b0a1feb1cf2ce1e6c9)
2013-10-04 15:15:34 +10:00
Amitay Isaacs
e4ed152d59 tests: Add a simple test to test cluster wide database traverse
Signed-off-by: Amitay Isaacs <amitay@gmail.com>

(This used to be ctdb commit 713c9ecc791e3319a2d109838471833de5a158c8)
2013-09-26 10:21:31 +10:00
Martin Schwenke
44b7397962 tests/simple: Fix the reloadips test to cope with changes to reloadips
Specifying nodes to reload no longer uses -n.

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit d921b2756d5f1c4ad7a35fe120f6fda9f5bf5686)
2013-09-19 12:54:32 +10:00
Martin Schwenke
b33ee7a2a4 recoverd: Fix the implementation of CTDB_SRVID_REBALANCE_NODE
The current implementation has a few flaws:

* A takeover run is called unconditionally when the timer goes even if
  the recovery master role has moved.  This means a node other than
  the recovery master can incorrectly do a takeover run.

* The rebalancing target nodes are cleared in the setup for a takeover
  run, regardless of whether the takeover run succeeds.

* The timer to force a rebalance isn't cleared if another takeover run
  occurs before the deadline.  Any forced rebalancing will happen in
  the first takeover run and when the timer expires some time later
  then an unnecessary takeover run will occur.

* If the recovery master role moves then the rebalancing data will
  stay on the original node and affect the next takeover run to occur
  if the recovery master role should come back to the original node.

Instead, store an array of rebalance target nodes in the recovery
master context.  This is passed as an extra argument to
ctdb_takeover_run() each time it is called and is cleared when a
takeover run succeeds.  The timer hangs off the array of rebalance
target nodes, which is cleared if the node isn't the recovery master.

This means that it is possible to lose rebalance data if the recovery
master role moves.  However, that's a difficult problem to solve.  The
best way of approaching it is probably to try to stop the recovery
master role from jumping around unnecesarily when inactive nodes join
the cluster.

The long term solution is to avoid this nonsense completely.  The IP
allocation algorithm needs to cache state between runs so that it
knows which nodes have just become healthy.  This also needs recovery
master stability.

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit c51c1efe5fc7fa668597f2acd435dee16e410fc9)
2013-09-19 12:54:31 +10:00
Martin Schwenke
e003699686 tests/eventscripts: Tests for memory checking in 00.ctdb
... plus updates to test infrastructure to support.

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit 4a388fc6bf54636b7e1f6da8e6aa451cddd574f7)
2013-09-11 15:34:42 +10:00
Martin Schwenke
1c3f4f55b0 tests/simple: Minimise the chance of a monitor event being cancelled
A monitor event following a "ctdb delip" might reconfigure services.
If the monitor event is cancelled then a service might be stopped but
not yet restarted and this could result in the subsequent monitor
events failing.

This obviously needs to be fixed in CTDB itself.  This will happen by
making "ctdb reloadips" the supported way of reconfiguring IPs.

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit 618ea3660e36e7bd92b686e1ca8728cf63c3c068)
2013-08-22 17:00:20 +10:00
Martin Schwenke
fec69034ee eventscripts: Become unhealthy faster on nfsd failure
Anecdotal evidence suggests that most nfsd RPC check failures are due
to cluster filesystem or storage problem.  Apparently these are rarely
helped by attempting to restart the NFS service because the restart
tends to hang.

Fail after 2 nfsd RPC check failures, instead of waiting for 6
failures.  Restart on every 10th failure to try to bring the node back
to good health.

Update unit tests to match.

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit e9ef93f7b6dad59eabaa32124df81f3e74c651ef)
2013-08-14 16:10:30 +10:00
Martin Schwenke
35d9631eda eventscripts: Print a message when waiting for TCP connections to be killed
This makes the gaps in the logs more obvious.

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit 11fbf4789d783dd0bac22754b374dd9ea4b03bad)
2013-08-14 15:57:04 +10:00
Martin Schwenke
0ca046577f eventscripts: Add modulo (%) operator to ctdb_check_counter()
Also add it to the corresponding eventscript unit test infrastructure.

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit f4ef83a256f59eeb00b9a5bc10c28347e1ad1031)
2013-08-14 15:57:03 +10:00
Martin Schwenke
bdbe37b24f eventscripts: Separate out RPC service restart code
While doing this:

* Explicitly assign RPC program and version information in
  _nfs_check_rpc_common().  This is more lines of code but is easier
  to read.

* Don't print the options when starting a service.  Trying to print it
  makes the code messy for little benefit.

  Update the eventscript unit testing code and a Ganesha test to
  reflect this.

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit e8b531405665885196c95fe1608db33a255bf761)
2013-08-14 15:57:03 +10:00
Martin Schwenke
2afb5632c7 tests/eventscripts: Override background_with_logging(), just prepend "&"
That is, output that goes through background_with_logging() just gets
"&" prepended to each line.  This is cleaner than having the tests
grovel through logs.

Update some 49.winbind/50.samba tests to deal with this.

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit 3ba933d806106d12bc48b83b22d0f314d9d1e5e5)
2013-08-14 15:57:03 +10:00
Martin Schwenke
df539a66cb eventscripts: Remove support for RPC service 'q' and 's' restart flags
They're hard to maintain and provide very little benefit.

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit 1a1be43f8466d46913dcdfe6dcedb94316cd28ad)
2013-08-14 15:57:03 +10:00
Martin Schwenke
d63cf0e7a7 tests/simple: Unreachable node test should wait for recovery to complete
This should minimise the chances of a control timing out.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Pair-programmed-with: Amitay Isaacs <amitay@gmail.com>

(This used to be ctdb commit 63be516673c5d9c0d543617bf1bb8bca919956a8)
2013-08-14 15:57:03 +10:00
Martin Schwenke
0997b0c400 tests/simple: Fix the missing IP test
Update the missing IP test to wait until restarts are complete.
Otherwise a service restart can collide with the following monitor
event and cause chaos.

Also, do not disable 10.interface until it matters.  Disabling it too
early can cause even more chaos if something goes wrong with the
monitor step.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Pair-programmed-with: Amitay Isaacs <amitay@gmail.com>

(This used to be ctdb commit 4e3bd06916bd3adac213fb18c7c2a24854b02d45)
2013-08-14 15:57:03 +10:00
Amitay Isaacs
1d9d1d8cf9 tests: Add a test program to hold a lock on a database
Signed-off-by: Amitay Isaacs <amitay@gmail.com>

(This used to be ctdb commit f6b066a23610fb0092298861c21a9b354b91e2f1)
2013-08-01 11:08:26 +10:00
Martin Schwenke
a8dd716146 eventscripts: kill_tcp_connections() should send connections to stdin
This avoids issuing multiple "ctdb killtcp" commands to terminate tcp
connections, one per connection.  This will considerably reduce the
time when there is a large number of tcp connections.  This also makes
it possible to avoid calling "ctdb killtcp" when there are no connections.

Add a couple of unit tests for killtcp and update eventscript unit
test infrastructure to support.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Pair-programmed-with: Amitay Isaacs <amitay@gmail.com>

(This used to be ctdb commit a20d94717d2e4ab866d8a002cdf39c0669b74c6a)
2013-07-29 15:53:06 +10:00
Martin Schwenke
34d55048bc tests: Always tally the number of passed/failed tests
Regardless of whether a summary is being printed!

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit a69e03a5e4671e998d45b4fef8611a421bbdb3e1)
2013-07-29 15:49:23 +10:00
Martin Schwenke
6882625cfe tests/complex: Fix NFS tests to work with root_squash
Refactor the NFS test setup/cleanup code into new common functions.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Pair-programmed-with: Amitay Isaacs <amitay@gmail.com>

(This used to be ctdb commit 29e98017221326bdc9b1c4f7c05b3b495c1de29b)
2013-07-23 11:28:07 +10:00
Martin Schwenke
1584f296b4 tests: Fix exit status of run_tests when a single test is run with -H
Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit 9d6e1c147bd036d832b98c155f405ee2a5d6f57f)
2013-07-22 19:38:50 +10:00
Martin Schwenke
417ee2f0aa tests/simple: Add -p in onnode test to help show groups of connections
Change the command from "true" to "hostname" since the former won't
produce any output when used in combination with "onnode -p".  This
could just be changed to "echo" but the hostname might actually be
useful.

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit ae3c03d80264e997b7da9f3279d7810e18b8a1df)
2013-07-22 19:36:58 +10:00
Martin Schwenke
363315aca5 tests/eventscripts: Add tests for monitoring of missing interfaces
Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit 53e4eca74429f76adc81d98e3d11d1bd61194d71)
2013-07-19 15:37:14 +10:00
Sumit Bose
157f1cfefd Fixes for various issues found by Coverity
Signed-off-by: Amitay Isaacs <amitay@gmail.com>

(This used to be ctdb commit 05bfdbbd0d4abdfbcf28e3930086723508b35952)
2013-07-11 15:16:55 +10:00
Amitay Isaacs
f6f2cad9df Tests: Correct the arguments to memset
Signed-off-by: Amitay Isaacs <amitay@gmail.com>

(This used to be ctdb commit 9ffcd6a91287d86bae7b0c73aa129c81126e08e7)
2013-07-11 11:34:46 +10:00
Martin Schwenke
f92e49f6f8 tests/eventscripts: Add some rudimentary tests for 60.ganesha
Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit e1cf1f728236d808bb41265e74bc65f54bf1c133)
2013-07-05 15:52:34 +10:00
Amitay Isaacs
cc3ffdbc1a tests: If connection to ctdb daemon fails, exit
This fixes the segmentation error if any of the test code fails to
connect to CTDB daemon.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>

(This used to be ctdb commit d48eecd748830598f4f080952f2bf05d6f92738c)
2013-07-04 20:43:52 +10:00
Martin Schwenke
16d374f75e tests: Integration tests use "ctdb nodestatus" for healthy cluster check
Also check that we're not in recovery mode.

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit b7aaa28b3a6a2de923417f3d143f8d516447711e)
2013-06-22 15:51:17 +10:00
Martin Schwenke
0a80d65c2e tests: Integration test infrastructure should do only a single recovery
No need for 2 recoveries after a restart.

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit b953524185632d7f96a76d8f3bbed7ac1d143d40)
2013-06-22 15:51:17 +10:00
Martin Schwenke
3b2f7330cc tests/eventscripts: New tests for 00.ctdb "init" event
These test dropping of IPs and TDB checking.

New stubs for date, tdbdump, tdbtool.

Enhance ip stub to handle "ip addr show to ..."

Tweak some infrastructure.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Pair-programmed-with: Amitay Isaacs <amitay@gmail.com>

(This used to be ctdb commit aabf0bf41cb8ec344f06b69492fb6c2a27f9e900)
2013-06-20 13:01:10 +10:00
Martin Schwenke
2ceed3b0c8 tests/eventscripts: setup_ctdb() should always set $CTDB_PUBLIC_ADDRESSES
Signed-off-by: Martin Schwenke <martin@meltin.net>
Pair-programmed-with: Amitay Isaacs <amitay@gmail.com>

(This used to be ctdb commit c3e7a6e10d486ba0dbafdf110db540675b2317bc)
2013-06-20 13:01:10 +10:00
Mathieu Parent
d82b9ae410 build: Fix tdb.h path to enable building with system TDB library
(This used to be ctdb commit f8bf99de3a5f56be67aaa67ed836458b1cf73e86)
2013-06-14 16:45:27 +10:00
Martin Schwenke
27ba5b44b6 tests/eventscripts: Unit tests for $CTDB_NFS_DUMP_STUCK_THREADS
Includes minor test infrastructure updates.

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit cd4358b01c6c3d413b431f5760029d2b163b9c03)
2013-06-14 15:15:07 +10:00
Martin Schwenke
d82c0ef923 tests/eventscripts: Fix -X tracing in iterate_test()
... and delete a bogus comment.

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit 0e2b5a8f89440a53f996482ac0c98b31a4f2cad3)
2013-06-14 15:15:07 +10:00
Martin Schwenke
02dd1bf00f tests/eventscripts: Add unit tests for $CTDB_MONITOR_NFS_THREAD_COUNT
Includes minor test infrastructure updates.

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit ce2ef2be8aa22c0baf868daac8d4cf27246baa14)
2013-06-14 15:15:07 +10:00
Amitay Isaacs
0add37aca7 tests: Do not use err() to support AIX
Signed-off-by: Amitay Isaacs <amitay@gmail.com>

(This used to be ctdb commit 1734562a7b3512853b9e0232880c42d50c1c2e4c)
2013-05-29 15:17:45 +10:00
Amitay Isaacs
4069ccf22f tests: Include system/time.h to support building on AIX
Signed-off-by: Amitay Isaacs <amitay@gmail.com>

(This used to be ctdb commit 0320bb4f8ca8171812ec7f41556aed847c74bfb4)
2013-05-29 15:17:20 +10:00
Martin Schwenke
529db4d52c tests/integration: Improve debug output for unhealthy cluster after restart
Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit 25a6fd784cde96f3d20a79f70b5589b5c4aca675)
2013-05-28 14:24:16 +10:00
Martin Schwenke
7dca442057 tests/scripts: Delete unused $rows and $ww variables from run_tests
Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit 80b3cf2c652c6098390cdd0dbb3edc648f7df487)
2013-05-28 14:24:16 +10:00
Martin Schwenke
66019e3287 scripts: Provide mktemp function for platforms without mktemp command
This is needed for AIX and possibly others.

Also provide a cheaper mktemp function is needed in the run_tests
script.

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit b2b572e9049c7138bd223226475bef8fe3e01f10)
2013-05-27 15:14:33 +10:00
Martin Schwenke
17d7288440 tests: Fix integration tests to use real private IPs
192.0.2.x was a typo.

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit c9e36f596c63c9af7f80d7cb8d7a5c6dcca4860a)
2013-05-27 12:23:43 +10:00
Martin Schwenke
2b971a2797 tests/takeover: New test with 900 IPs
(This used to be ctdb commit 75a620c516e384f042b5d675183b3a1b48fd6115)
2013-05-24 22:31:22 +10:00
Martin Schwenke
a87ebb6cdf tests/takeover: Takeover tests can use up to 1024 and checks limits
Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit cfd1371d3a1f78a0ed86485d83bd4d311727c3d4)
2013-05-24 22:31:21 +10:00
Martin Schwenke
5009d1ab58 tests/takeover: LCP2 tests for weird, unbalanced corner-cases
2 tests to show a bad result and a 3rd test for the fix.

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit ef35c8889d90220929e48e66eb62da9ea2025ede)
2013-05-24 22:31:21 +10:00
Martin Schwenke
b22dea5373 tests/takeover: Allow takeover runs with differing IP allocations per node
Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit 954ae6f84cb06a8dcbc12456d4752280072be5bf)
2013-05-24 22:31:21 +10:00
Martin Schwenke
c5bb401835 tests/takeover: New tests to check runstate handling
Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit c57430998a3bdedc8a904eb3a9cdfde1421aff50)
2013-05-24 16:27:55 +10:00
Martin Schwenke
f35e9bba9b recoverd: Nodes can only takeover IPs if they are in runstate RUNNING
Currently the order of the first IP allocation, including the first
"ipreallocated" event, and the "startup" event is undefined.  Both of
these events can (re)start services.

This stops IPs being hosted before the "startup" event has completed.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Pair-programmed-with: Amitay Isaacs <amitay@gmail.com>

(This used to be ctdb commit f15dd562fd8c08cafd957ce9509102db7eb49668)
2013-05-24 16:27:55 +10:00