Changes smoke.py to (like resmoke.py) only create a job object if the
Python process isn't already inside of one. This allows the Evergreen
agent to create a job object for managing processes spawned by a task to
ensure they are cleaned up reliably.
Adds a new core_small_oplog_rs_kill_secondaries.yml suite that after
running tests for a certain period of time (defaults to 30 seconds),
resmoke.py will send a SIGKILL to all of the replica set's secondaries.
Each node is then restarted individually with the primary disabled to
verify it reaches the SECONDARY state within 5 minutes of starting up.
Adds a sampleRate parameter to the profile command, a value
on the interval [0, 1] which indicates which fraction of
operations should be randomly sampled for profiling and
logging. This allows users to reduce their slowms threshold
or increase their profiling level with less performance
impact on the system.
Closes#1099
Signed-off-by: David Storch <david.storch@10gen.com>
Each tag argument can also be specified more than once and in both the
YAML suite definition and on the command line.
Tag argments will be agnostic to ordering, with each argument narrowing
down test files to be run. No tag is allowed to override another tag.
... and simplify ReplCoordTestFixture
ReplicationCoordinatorImpl consults the storage engine's isDurable flag for two purposes:
1. To choose whether to present the durable or applied optime when standing for
election in pv1
2. To decide how to interpret w:majority without an explicit j field when
waiting for write concern.
In the first case, it is unnecessary to choose which optime to apply based on
the isDurable flag. It is always safe and correct to present the applied optime,
because if the node presenting it wins election, it will attempt to commit that
applied optime. That means that voters may safely vote for that node.
In the second case, using the value of the local node's storage engine's
isDurable flag to adjust the meaning of w:majority is out of spec. Whether
w:majority writes wait for journaling is a function only of the
writeConcernMajorityJournalDefault flag when a write concern omits the "j"
field.
This patch removes the unnecessary consultation of the isDurable flag, and
uses the opportunity to simplify the constructor of
ReplicationCoordinatorImpl and its test fixture.
Views tests have been moved to jstests/core/views. YAML configurations for
jsCore passthrough suites have been updated to pick up tests in subdirectories
of jstests/core.
Tasks and variants that previously used the --excludeWithAnyTags resmoke flag
now specify task_excluded_tags and variant_excluded_tags, respectively.