freebsd-skq/tests/sys
Conrad Meyer af7dcae0e2 gmirror: Evaluate mirror components against newest metadata copy
Re-apply r341665 with format strings fixed.

If we happen to taste a stale mirror component first, don't reject valid,
newer components that have differing metadata from the stale component
(during STARTING).  Instead, update our view of the most recent metadata as
we taste components.

Like mediasize beforehand, remove some checks from g_mirror_check_metadata
which would evict valid components due to metadata that can change over a
mirror's lifetime.  g_mirror_check_metadata is invoked long before we check
genid/syncid and decide which component(s) are newest and whether or not we
have quorum.

Before checking if we can enter RUNNING (i.e., we have quorum) after a NEW
component is added, first remove any known stale or inconsistent disks from
the mirrorset, rather than removing them *after* deciding we have quorum.
Check if we have quorum after removing these components.

Additionally, add a knob, kern.geom.mirror.launch_mirror_before_timeout, to
force gmirrors to wait out the full timeout (kern.geom.mirror.timeout)
before transitioning from STARTING to RUNNING.  This is a kludge to help
ensure all eligible, boot-time available mirror components are tasted before
RUNNING a gmirror.

Add a basic test case for STARTING -> RUNNING startup behavior around stale
genids.

PR:		232671, 232835
Submitted by:	Cindy Yang <cyang AT isilon.com> (previous version)
Reviewed by:	markj (kernel portions)
Discussed with:	asomers, Cindy Yang
Tested by:	pho
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D18062
2018-12-07 02:44:04 +00:00
..
acl Add a very basic regression test for setfacl -R with NFSv4 ACLs. 2018-10-26 21:20:04 +00:00
aio Revert r337929 2018-08-16 22:04:00 +00:00
audit audit(4): add tests for sysctl(3) and sysarch(2) 2018-07-29 20:34:44 +00:00
auditpipe Introduce test program for auditpipe(4) 2018-07-26 00:16:41 +00:00
capsicum Disable connectat/bindat with AT_FDCWD in capmode 2018-04-30 17:31:06 +00:00
cddl Strip trailing / from TESTSDIR 2018-05-11 16:11:24 +00:00
fifo other: Fix several typos and minor errors 2017-12-27 03:23:58 +00:00
file Revert r337929 2018-08-16 22:04:00 +00:00
fs Fix sys.fs.tmpfs.mknod_test.{char, block} by reverting r321967 2018-07-21 20:14:01 +00:00
geom gmirror: Evaluate mirror components against newest metadata copy 2018-12-07 02:44:04 +00:00
kern Maybe make gcc happy 2018-11-30 23:47:57 +00:00
kqueue Temporarily skip flakey test cases 2018-12-06 09:22:35 +00:00
mac DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
mqueue DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
net Add tests for lagg(4) and other cloned network interfaces 2018-02-23 18:18:42 +00:00
netinet Plug a trivial memory leak. 2018-11-20 18:13:18 +00:00
netipsec Fix sys/netipsec/tunnel tests after r337736 2018-08-17 18:37:22 +00:00
netpfil pf tests: Add a defer mode test for pfsync 2018-12-05 19:53:09 +00:00
opencrypto Add test cases for Poly1305 from RFC 7539 2018-08-17 00:32:00 +00:00
pjdfstest DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
posixshm Revert r337929 2018-08-16 22:04:00 +00:00
sys DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
vfs vfs_lookup: Allow PATH_MAX-1 symlinks 2017-11-17 19:25:39 +00:00
vm DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
Makefile Introduce test program for auditpipe(4) 2018-07-26 00:16:41 +00:00
Makefile.depend DIRDEPS_BUILD: Connect MK_TESTS. 2016-03-09 22:46:01 +00:00
Makefile.inc Use MK_CHECK_USE_SANDBOX in tests/..., to deal with the fact that 2017-08-02 22:24:08 +00:00