Commit Graph

1179 Commits

Author SHA1 Message Date
Cuyler Jones
82d9d57a24 Fixed spacing to adhere to Basho guidelines. 2015-02-28 21:24:59 -07:00
Cuyler Jones
c6d27d5a99 Replaced start up process with build_clusters; Removed some lingering refactoring cruft. 2015-02-25 10:23:33 -08:00
Doug Rohrer
9f116ab088 Merge pull request #737 from basho/feature/support_wildcard_certs_in_tests
Better support for wildcard certificates
- riak_core#701 is now merged, so merging tests.
2015-02-25 11:54:27 -05:00
Cuyler Jones
ef0581cefb Code clean up and small node logging additions 2015-02-24 14:48:58 -08:00
Cuyler Jones
57fde811ef Refactored Replication 2 into compartmentalized tests with documentation. Removed superfluous code. 2015-02-24 14:41:38 -08:00
Doug Rohrer
137a11c690 Address review comments & add more tests
- Change Path -> DirName in make_certs
- Added both more basic and more advanced tests with wildcard certs
2015-02-12 08:40:18 -05:00
Andrew J. Stone
42e7788f9d Merge pull request #734 from basho/bugfix/demystify-overload
Refactor tests/overload to use less magical-number comparisons
2015-02-11 17:57:44 -05:00
Andrew J. Stone
44d18d1a87 Remove magic number for overload test 2015-02-11 17:54:12 -05:00
Doug Rohrer
965522c705 Better support for wildcard certificates:
- Update make_certs to support wildcard certificates by passing an additional Path parameter.
- add replication2_ssl test to ensure using wildcard certificates works after PR to riak_core_ssl_util.
2015-02-11 16:27:39 -05:00
Doug Rohrer
04d54cb810 Change verify_dt_converge to use riakc_flag:enable(F) rather than disable. This will work
even in the rare and pathological case where the cluster is partitioned before all 3 nodes
have received the update. riakc_flag:disable(F) requires context, which isn’t there in the 
new map that would be created on the side of the partition with no data.
2015-02-11 10:47:35 -05:00
Alex Berghage
a9bef3c0a7 Rolled back change to test_vnode_protection threshold.
This test's a little confused in the sources as-is since it prints
like it's based on the number of requests, even though the actual
comparison is done against a function of THRESHOLD. I've reverted
to the comparison used currently, since it looks to me like this
test should really expect to have ~NUM_REQUESTS processes, and a
vnode queue pretty close to THRESHOLD. I'd appreciate review here
though, particularly if anyone recalls the original intent of
these comparison numbers.
2015-02-10 21:15:23 -05:00
Alex Berghage
ec562e9461 Fixed predicate print formatter (was ~w, now ~p) 2015-02-10 21:11:32 -05:00
Alex Berghage
a7258f4ed7 Loosened criteria for successful overload test.
Previously we'd used a sort of fuzzy 'metric' where we expect the
number of successful requests/fsms to be less than some fudge
factor over the overload threshold. This tends to kick up spurious
failures on the test board without offering much more in the way
of assurances about overload's functionality.

This change instead bases test success on the number of requests
only, not the threshold — if some amount of work was shed at all
we consider that a passing test.

In the future we should revisit this and change the request
accounting machinery to just explicitly track denials instead of
fsm processes / vnode queue depth.
2015-02-10 20:49:16 -05:00
Alex Berghage
e0921b1bf1 Reduced repetition in tests/overload predicates 2015-02-10 20:44:09 -05:00
Christopher Meiklejohn
2179361bb3 Resolve incorrect guard. 2015-02-09 16:56:30 -05:00
Ulf Wiger
36f80415e1 add vnode_get_fsm_time_* stats 2015-02-09 22:49:04 +01:00
Russell Brown
9efa9602d0 Merge pull request #728 from basho/kv667
Test for basho/riak#667, read pre 2.0.4 sets/maps
2015-01-29 14:27:50 +00:00
Russell Brown
bc8a3b240b Change env var name 2015-01-27 18:00:48 +00:00
Russell Brown
d22fbfbdc7 Persuade rtdev harness to set advanced.config variables
In the case that no advanced.config file exists (everycase!) rt
would not add any advanced config settings to the conf.

This PR teaches rtdev to create an advanced.comfig file if none exists
so that tests may set advanced config.

In this case we set ring_size and also the `crdt_mixed_versions` app env
2015-01-27 09:53:15 +00:00
Sean Cribbs
fd086aa5bc Finished up format test.
This is currently failing, somehow fetching the map immediately after
updates on the upgrade, I'm getting the dict format.
2015-01-26 15:34:11 -06:00
Sean Cribbs
dea8a89160 Fetch maps after upgrade, checking that they match. 2015-01-24 11:49:18 -06:00
Sean Cribbs
af9fe7a63e WIP extending mixed-cluster test.
Still have not completed upgrade and feature-flag switch.

I changed the versions from atoms to "2.0.2" and "2.0.4", we can
bikeshed that with build/test czars on Monday.

Added some useful logging statements to the plain-upgrade test.

Removed unnecessary clean_cluster and systest_read calls.
2015-01-23 18:02:13 -06:00
Sean Cribbs
86202d010e Little tweak to use literal versions and binaries for keys. 2015-01-23 16:04:48 -06:00
Sean Cribbs
ca040bdaee Begin split of test into two parts, safe upgrade and mixed cluster 2015-01-23 14:09:48 -06:00
Russell Brown
7b4ffcbc18 Extend kv667 test for upgrade between 2.0.2/4/5
This test is getting Biig, and there is still a lot to add
(see comments at the end of the test.)

Maybe we should break it out into a few tests, and there are some
questions still.
2015-01-23 18:02:32 +00:00
Russell Brown
49183d92b9 Update Chris's test to test nested sets and maps too 2015-01-21 16:27:44 +00:00
Christopher Meiklejohn
569a76d490 Add riak_kv#667 reproducer. 2015-01-20 18:09:20 +01:00
Russell Brown
c1b12f5069 Merge pull request #719 from basho/rdb/gh-kv679
Riak Tests for scenarios of basho/riak_kv#679
2015-01-16 13:35:00 +00:00
Russell Brown
ccb5af778b remove test for unfixed case 2015-01-15 17:19:41 +00:00
Russell Brown
3657c57bac Address review comments
Remove those timers and other remnants of flailing when first
trying to write tests.
2015-01-15 16:09:02 +00:00
John Burwell
a37832d7f9 Verify the list of HTTP stats keys is complete
* Checks the list of stats keys returned from the HTTP endpoint
    is complete -- delineating between riak and riak_ee.  The test will
    fail if the list returned from the HTTP endpoint does not exactly match
    the expected list.  This behavior acts as a forcing function to ensure
    that the expected list is properly maintained as stats are added and
    removed.
    * Modifies reset-current-env to properly clean dependencies when a
    full clean is requested and remove the current directory in the
    target test instance.
    * Adds logging to verify_riak_stats to explain the addition steps
    being performed
    * Adds rt:product/1 to determine whether a node is running riak,
    riak_ee, or riak_cs
    * Adds tools.mk support and eunit scaffolding to rebar.config
    * Modifies reset-current-env.sh to remove the current directory in
    the target test instance
2015-01-08 17:23:25 -05:00
John Burwell
f98b3aed87 Merge pull request #713 from uwiger/uw-cmp-http-and-console-stats
Verify that the stats in riak-admin status match those from the HTTP endpoint
2015-01-06 15:02:01 -05:00
Andrew J. Stone
a28f70eb1a Merge pull request #720 from basho/bugfix/ensemble_sync_partition_error
Fix partition issue in ensemble_sync
2015-01-05 16:30:08 -05:00
Andrew J. Stone
70da1fd2f9 separate some folds out of partition/2 in ensemble_sync for clarity 2015-01-05 15:42:26 -05:00
Russell Brown
d86d122308 WIP 2015-01-02 09:02:13 +00:00
Russell Brown
a1af1140f0 WIP data loss test was failing for the wrong reason
add some debugging log out
2015-01-02 09:02:13 +00:00
Russell Brown
8cbec21a5d WIP Kv679 tests
Dataloss at coordinator
Dataloss at coordinator with an old clock repaired
Vnode id's not unique
2015-01-02 09:02:13 +00:00
Russell Brown
87afd498e6 WIP 2015-01-02 09:02:13 +00:00
Russell Brown
6097bda909 WIP kv679 tombstone test A-B-C, crash before reap 2015-01-02 09:02:13 +00:00
Russell Brown
a29d3c3494 WIP kv679 doomstone tests 2015-01-02 09:02:13 +00:00
Russell Brown
4f7e9e17af WIP make the test fail 2015-01-02 09:02:13 +00:00
Russell Brown
40882ea81d WIP remove voodoo code, add inactivity timeout 2015-01-02 09:02:13 +00:00
Russell Brown
aece28adc9 WIP kv679 tombstone-doomstone-boomstone test 2015-01-02 09:02:12 +00:00
Sean Cribbs
d46928bea2 Merge pull request #723 from basho/sdc/bugfix/http-bucket-types-harden
Wrap all list_keys and list_buckets calls with wait_until
2014-12-31 10:35:30 -06:00
John R. Daily
9fdf2ac1f4 Expected output changed as of PR#678 2014-12-31 10:56:47 -05:00
Sean Cribbs
a67140a1b9 Wrap all list_keys and list_buckets calls with wait_until
Because list-keys and list-buckets use coverage, we might hit latent
replicas depending on the coverage plan. This gives each call some extra
tries to complete successfully.
2014-12-31 09:27:23 -06:00
Andrew J. Stone
043baabf3f Fix partition issue in ensemble_sync
It was previously possible for the 'minority' network partition to
become the majority network partition by a naive network partitioning
strategy. Previously, when a preference list of 5 keyspace partitions
was created on only four distinct nodes, it became possible for a 2 node
'minority' network partition group to actually have a majority of
keyspace partitions because 2 keyspace partitions were assigned to 1
node in the 'minority' group. This was fixed so that the 'majority'
group now always has a majority of keyspace partitions by preventing
nodes with greater than 1 keyspace partition from becoming part of the
'minority' group.
2014-12-30 15:21:18 -05:00
Sean Cribbs
41b60d0328 Make sure the httpd started exits with the test.
Now green when run in sequence:

Test Results:
pb_cipher_suites-bitcask: pass
pb_security-bitcask     : pass
---------------------------------------------
0 Tests Failed
2 Tests Passed
That's 100.0% for those keeping score
2014-12-29 14:08:36 -06:00
Andrew J. Stone
1addf5207f Merge pull request #716 from basho/bugfix/ensemble_basic3
Use result of fold in ensemble_basic3
2014-12-24 12:57:52 -05:00
Engel A. Sanchez
0328b4e7d7 Fix failure on slow replication
This changes the test assertion so that it retries fetching the value
from the second cluster until it is the expected value, at which point
the test will either pass if the sibling count is reasonable or fail if
it is too damn high.
2014-12-23 16:41:59 -05:00
Andrew J. Stone
32d90ca13a Don't try to resume pids that don't exist 2014-12-23 15:59:37 -05:00
Andrew J. Stone
7d097080d3 Use result of fold in ensemble_basic3
When resuming vnodes we need the proper pid from the previous suspend.
Use the result of the fold to get the right pids.
2014-12-23 15:50:03 -05:00
Sean Cribbs
abfa0ebf8a Adjust test to ensure that essential concurrency =< n_val 2014-12-23 14:15:55 -06:00
Sean Cribbs
ca44485d1f Fix race condition in verify_dvv_repl.
Fetch the sink object on each iteration of the wait_until, just in case
that the entire set of siblings didn't make it across the repl link.
This also gives read-repair a chance to happen, in case the version the
sink wrote didn't make it to all replicas.
2014-12-23 10:51:50 -06:00
Engel A. Sanchez
556cb7210c Ensure riak_repl service is up across the board
Trying to use the repl features before newly started nodes have
riak_repl completely initialized leads to all sorts of nasty crashes and
noise. Frequently it makes fullsync stuck forever, which makes a lot of
the tests fail.

This also tweaks the AAE fullsync tests to remove assumptions about
failure stats when AAE transient errors occur. The behavior in the
handling of those errors has changed recently with the introduction of
soft exits.
2014-12-18 16:07:00 -05:00
Ulf Wiger
07ec15dc44 check riak-admin status 2014-12-16 20:42:28 +01:00
John Burwell
5a6150ab14 Merge pull request #702 from basho/jsb/reduce-snmp-poll-interval
Reduce the SNMP stats poll interval form 1 minute to 1 second
2014-11-12 13:28:13 -05:00
John Burwell
b103c52a87 Reduces the SNMP stats poll interval from 1 minutes to 1 second
Reduces the probability of a race condition between the calculation of spiral/histogram metrics and SNMP stat cache refresh by reducing the SNMP poll interval to 1 second during test execution
2014-11-12 12:50:57 -05:00
John Burwell
a38166e6ea Configure all JMX listeners to use an unprivledged port the test can be
executed when not running as root.
Logs the JMX query command line to assist test failure debugging
2014-11-11 22:06:22 -05:00
Christopher Meiklejohn
98b66a3190 Resolve race condition.
Don't wait for convergence of the ring, because bucket properties are no
longer stored in the ring; instead, wait until the property changes,
which means the gossip has stabilized.
2014-11-06 12:30:03 -08:00
Micah
696e034ed8 Merge pull request #684 from basho/feature/mw/cluster-mgr-refactor-support
Fixed cluster connection detmination function.
2014-10-30 11:40:43 -05:00
Russell Brown
1f4e504b70 Test for kv679 unique vnode id on a node 2014-10-15 11:29:16 +01:00
Kelly McLaughlin
cf55f195a5 Add option to return exit code from rt:admin calls
Add an rt:admin/3 function that accepts a list of options as the third
parameter.  Currently the only valid option is return_exit_code. The
rtdev, rtssh, and rt_cs_dev harnesses have been updated to support
this option. If return_to_exit is specified the return from a
?HARNESS:admin call is a pair with the exit code as the first member
and the command output as the second member. Finally the
basic_command_line test has been changed to use return_for_exit to
verify the changes.
2014-10-10 15:37:54 -06:00
Micah Warren
d1891f69fd Fixed cluster connection detmination function.
Due to the refactor for the cluster manager/connection manager system to
use otp behaviors, the raw message method of getting stats has been ousted.
Instead, it uses a call. To allow the riak_test to be able to check older
clusters as well as the method, the function was extended to try new and
then the old.
2014-09-24 15:42:26 -05:00
Kelly McLaughlin
7cd2645564 Add verification of handoff heartbeat to verify_handoff test
Add testing of the handoff heartbeat change from the following pull
request: https://github.com/basho/riak_core/pull/560. Add an intercept
module for the riak_core_handoff_sender module to introduce artificial
delay on item visitation during a handoff fold. This delay along with
the changes to the verify_handoff test induces test failure when run
without the heartbeat change. The handoff_receive_timeout is exceeded,
handoff stalls, and the test eventually fails due to timeout. The test
succeeds when run with the heartbeat change.
2014-09-11 15:05:26 -06:00
Russell Brown
45846699c7 Wait until all changes are replicated before passing
Realtime repl takes real time, so wait for it to finish before
calling the test done.
2014-08-27 18:21:00 +01:00
Russell Brown
57cbd61b35 Ensure realtime repl is doing it's thing before making updates 2014-08-27 15:33:10 +01:00
Sean Cribbs
67dfe49934 Merge pull request #654 from basho/sdc-nitpick-counter-cap
Fix nitpick about new/old API from #653.
2014-08-26 09:16:33 -05:00
Andrew J. Stone
a6cb50cdfc use 8 instead of 9 nodes to satisfy giddyup 2014-08-25 18:56:24 -04:00
Kelly McLaughlin
8aa5c3f33f Merge branch 'feature/sc-overload-testing' 2014-08-25 13:58:27 -06:00
Kelly McLaughlin
1253c8ad3e More robustification against races between overloading the vnodes and the list_keys attempt for the coverage testing.
Conflicts:
	tests/overload.erl
2014-08-22 15:58:47 -06:00
Andrew J. Stone
c42d2ac055 Merge pull request #666 from basho/ajs/ensemble_byzantine
Add tests for SC byzantine dataloss and tree loss
2014-08-21 23:17:01 -04:00
Jon Anderson
747212678b Merge pull request #676 from basho/bugfix/jra/bug-611
Add repl_bucket_types check that RTQ is drained after bucket type mis-match
2014-08-21 20:52:29 -04:00
Jon Anderson
613bdc29f1 Change rtq drainage check to use dumpq and put it in a function. 2014-08-20 08:07:26 -04:00
Andrew J. Stone
44f562c2d5 add force_replace test to ensemble_ring_changes 2014-08-19 19:22:58 -04:00
Jon Anderson
f36abd590d Add a check to make sure the RTQ queues drain after an unknown bucket
type repl.
2014-08-19 16:36:45 -04:00
Sean Cribbs
b8d8e3026b Verify that datatype stats are updated.
See basho/riak_kv#1017
2014-08-18 15:24:20 -07:00
Kelly McLaughlin
3577f476e6 Updates to bucket property validation test
* Rename the module from validate_nval_etc to bucket_props_validation
* Employ testing of protocol buffers connections in addition to HTTP
2014-08-13 16:32:34 -06:00
Russell Brown
4e7936da17 Riak 2.0 allow_mult defaults to true 2014-08-13 14:15:25 -06:00
Russell Brown
f100468e11 Test for bad bucket property validation 2014-08-13 14:15:25 -06:00
Andrew J. Stone
07de5cb9c9 Update ensemble_ring_changes w/ node replace test
Additionally fix cluster expansion and make test deterministically pass.
2014-08-13 00:22:02 -04:00
Andrew J. Stone
cee6cbf4ef Fixup ensemble_ring_changes
* Add some logging
* Ensure updates work before and after ring expansion
2014-08-08 17:38:05 -04:00
Andrew J. Stone
d057999a7b WIP - Add ensemble_ring_changes
Ensemble_ring_changes tests writing a value, expanding the cluster, then
updating and reading that value after ring expansion has completed. It
also creates a bucket using a bucket type with a different n_val from
the default bucket type.  The latter tests basho/riak_kv#1008 and it's
corresponding riak_core PR.
2014-08-05 17:23:42 -04:00
Andrew J. Stone
3bed92cfb4 Use rt functions to safely remove backend data
Use riak_test_runner:metadata/0 to get the configured backend instead of
defaulting to bitcask. Additionally we use rt:clean_data_dir/2 to safely
remove backend directories.
2014-07-29 17:05:50 -04:00
Christopher Meiklejohn
ccc4d403d4 Add yz test for search over maps. 2014-07-29 12:33:16 -04:00
Andrew J. Stone
5319e75269 Add tests for SC byzantine dataloss and tree loss
This is the first iteration of creating byzantine dataloss tests that
show both recoverable and unrecoverable, but detectable errors. This tests the
following scenarios.

 * Lose one partition worth of data, but no synctrees and recover.
 * Lose all but one partition of ensemble data, but no synctrees and
   recover.
 * Lose minority of synctrees. Only the peers with the missing
   synctrees are restarted. System remains available.
 * Loss of majority of synctrees. Majority peers are restarted. System
   recovers when they all come back online.
 * Loss of majority of synctrees with one node partitioned. All peers
   restarted except partitioned one. System does not recover with that
   node partitioned. When the partition is healed the system recovers.
 * Loss of all data and synctree except on one peer recovers.
 * Backing up and restoring old data but not synctrees results in
   detected errors. Restoring newer data fixes this.
 * Delete all data on all nodes, but not synctrees. This is detected and
   an error returned to the user.
2014-07-25 13:58:02 -04:00
Jon Anderson
09a60d1289 add timeouts to calls instead of from .riak_test.config 2014-07-24 14:47:46 -04:00
Jon Anderson
9746731f09 initial commit 2014-07-22 17:08:12 -04:00
Jon Anderson
a597b3ee63 removed sleep 2014-07-22 17:03:16 -04:00
Jon Anderson
0671b59b4c add a intercept/server accounting of get_fsm processes. 2014-07-22 16:48:25 -04:00
Kelly McLaughlin
98681cd658 Increase the test code coverage and make the coverage checking more
robust to failures.
2014-07-15 16:48:43 -06:00
Kelly McLaughlin
ceb24fc3e2 Merge pull request #661 from basho/bugfix/replication-ssl-site-ip-verification
Fix failure of replication_ssl test introduced by 297090d
2014-07-15 15:08:50 -06:00
Kelly McLaughlin
0ab2393559 Change replication SSL ACL tests to avoid certificate expiration
Change the ACL test case in the replication_ssl and replication2_ssl
tests to use certificates generated within the tests instead of
relying on certificates created outside the test that are prone to
expire and cause spurious test failure.

Also change the replication_ssl and replication2_ssl tests to avoid a
cycle of standing up the test clusters and then immediately restarting
them before any tests cases execute. This should make the test
execution slightly faster for both test modules.

This commit also changes the tests to be a bit more robust in checking
for cluster state when restarting nodes and removes an unnecessary
five second sleep call in the replication_ssl test.
2014-07-15 12:06:06 -06:00
Kelly McLaughlin
9c5daf0f31 Fix failure of replication_ssl test introduced by 297090d
Change replication_ssl to use the wait_for_site_ips function from the
replication module introduced in
297090ded6 instead of the defunct
verify_site_ips function.
2014-07-14 12:37:32 -06:00
Russell Brown
a212b99a75 Update expected return to match change in riak_pb API
See 2b68a97710
for details.
2014-07-14 17:14:51 +01:00
Joseph Blomstedt
695853cc94 Merge pull request #657 from basho/bugfix/ensemble-interleave-error-failed
Fix ensemble_interleave error condition
2014-07-11 21:42:59 -07:00
Andrew J. Stone
f0643db473 Fix ensemble_sync by allowing {error, <<"failed">>
Allow {error, <<"failed">>} as an error response in ensemble_sync. Fixes
the test with basho/riak_ensemble#37 and basho/riak_kv#1002
2014-07-11 18:11:30 -04:00
Andrew J. Stone
38bd8399d1 Fix ensemble_interleave error condition
Include {error, <<"failed">>} as allowed failure so that test passes
with changes for basho/riak_ensemble#37 and basho/riak_kv#1002
2014-07-11 17:41:48 -04:00
Kelly McLaughlin
b59fb48611 Expand the overload test to include strong consistency
Change the overload test to exercise the strongly consistent code
paths in addition to the eventually consistent paths during overload
conditions.
2014-07-11 13:23:48 -06:00
Kelly McLaughlin
297090ded6 Avoid a race condition in the replication test module
Avoid a race condition in the replication test module when checking
for site IP addresses in the replication status output.  The test
waits for a connection on the leader, but it only queries the
replication status to check for the expected site IP addresses a
single time. Change the test to wait and re-check the status output to
give greater assurance that if the expected site IP addresses are not
present it is due to legitimate failure and not a race condition in
checking the replication status. This change affects the replication
and replication_upgrade tests as well as any other tests that call the
replication:replication function.
2014-07-01 16:36:45 -06:00