Commit Graph

84 Commits

Author SHA1 Message Date
Keith Bostic
1935326625 WT-2405: test utility error handling.
Add testutil_checkfmt, a macro that supports additional error output.
2016-02-19 11:17:43 -05:00
Alex Gorrod
2b4cd8de33 WT-2405 Switch new testing error handler to be shared in test util 2016-02-19 01:54:23 +00:00
Alex Gorrod
ec9a451025 WT-2405 Switch test/format to use shared testutil_die 2016-02-19 01:44:58 +00:00
Keith Bostic
ca48eaa794 WT-2405: test utility error handling.
Add a check routine to make simple error handling easier.
2016-02-18 08:58:39 -05:00
Keith Bostic
a0fd1c3abe WT-2316: WT_CURSOR.prev out-of-order returns, fix a split race.
Increase the cursor movement in format to 100 calls, hopefully that
will increase our exposure to cursor races during splits.
2016-01-11 10:43:26 -05:00
Keith Bostic
344a714c3d Upgrade copyright notices from 2015 to 2016. 2016-01-01 16:37:39 -05:00
Keith Bostic
6df6c29e77 WT-2307: add HAVE_DIAGNOSTIC checks for cursors not returning keys
out-of-order.
2015-12-28 17:10:05 -05:00
Keith Bostic
c5f0a67139 lint: Variable 'ret' (line 237) may not have been initialized 2015-10-12 10:31:25 -04:00
Keith Bostic
01d90d8c8c Call WT_SESSION.reset occasionally, it's not tested anywhere else. 2015-09-27 11:23:38 -04:00
Keith Bostic
058caddbcf Merge branch 'develop' into wt-1967-evict-any 2015-08-08 16:29:45 -04:00
Keith Bostic
61f03c86be clang complaint:
ops.c:190:22: warning: variable 'lrt_tid' may be uninitialized when used
here [- Wconditional-uninitialized]
	(void)pthread_join(lrt_tid, NULL);
2015-08-07 14:41:48 -04:00
Keith Bostic
bfbcefef9c Fix a bug in read_row, introduced when the long-running transaction
changes, don't reset the return value, we need it when testing against
Berkley DB's data.
2015-08-07 11:20:58 -04:00
Keith Bostic
ce1fe0aef8 Minor cleanups to ensure we free memory allocated for keys. 2015-07-30 12:49:51 -04:00
Keith Bostic
1b4e888edb Merge branch 'develop' into wt-1967-evict-any 2015-07-28 20:02:03 -04:00
Michael Cahill
7063f8b6e8 SERVER-19340 Avoid type aliasing in the random number generator. 2015-07-27 12:07:31 +10:00
Keith Bostic
5d0f39b1c9 Clean up error handling around records not being found; if we have an
open cursor that found the record once, it should find it again, it's
an error if we've lost that record.
2015-07-21 14:50:28 -04:00
Keith Bostic
1c0ee83087 WT-1967: creating a lookaside table to hold updates which are no longer
useful, but which still might be required by current readers.

When reconciling pages with updates which still might be read by existing
snapshot readers, write the updates into a lookaside table.  When those
pages are read back into the cache, any still-relevant updates are read
back from the lookaside table and attached to the page.

Add a new on-disk page-header flag, WT_PAGE_LAS_UPDATE, set when a page
has records in the look-aside table.

Remove the __wt_evict_page() code, replace with calls to __wt_evict(),
and add testing in reconciliation to only write committed updates.  As
part of that change, remove the WT_ISO_EVICTION transaction isolation
configuration, it's no longer used (WT_ISO_READ_UNCOMMITTED is used
instead).

Delete the WT_PAGE_MODIFY.rec_max_txn field (no longer needed after
reconciliation is changed to return EBUSY if a page wasn't marked
clean, replacing the test of WT_PAGE_MODIFY.rec_max_txn __evict_review).

Delete the test for all updates being globally visible when a page is
discarded from the cache, that's no longer true. Delete the
WT_SESSION_DISCARD_FORCE flag, used to turn off that check when forcibly
discarding a page.
2015-07-19 10:58:10 -04:00
Keith Bostic
d42029bc23 WT-1967: Add support for a long-running, isolation=snapshot, reader
thread.
2015-07-14 11:05:06 -04:00
Keith Bostic
896797a8a4 Whitespace: 3 spaces after a period in a comment.
Sorry, but it just bugged me.
2015-06-14 09:59:37 -04:00
Keith Bostic
bb986cf409 Avoid read/write races in the PRNG: switch to using an 8B value instead
of a two, 4B value array, declare the value volatile to avoid having the
compiler alter the read/write path.

Add a check if a PRNG component ever goes to zero and reset it.
2015-05-30 11:53:52 -04:00
Michael Cahill
9880d7563f Merge branch 'develop' into encryption-api
Conflicts:
	ext/compressors/lz4/lz4_compress.c
2015-05-12 14:47:28 +10:00
Keith Bostic
ca7a3de5eb Rework test/format to use the WiredTiger RNG, not rand.
Give every thread its own RNG state so there's no competition for the
cache lines.

Initialize the random-number generator early so we catch all possible
configuration uses.

Remove duplicates of WiredTiger's macros.
2015-05-09 11:15:59 -04:00
Keith Bostic
f5ec460849 Do a full pass, simplify all the if/free pairs in the tree. 2015-05-02 10:34:22 -04:00
Alex Gorrod
6ea949933f Fix coverity reports in test/format code.
CID 1295092:  Integer handling issues  (OVERFLOW_BEFORE_WIDEN)
/test/format/ops.c: 93
CID 1295091:  Null pointer dereferences  (REVERSE_INULL)
/test/format/ops.c: 489
2015-04-20 16:50:13 +10:00
Michael Cahill
70ebf4c7f3 Merge branch 'develop' into cursor-pin 2015-04-14 14:49:25 +10:00
Keith Bostic
be303d2b2d Change to build format without installing Berkeley DB. 2015-04-13 15:37:39 -04:00
Keith Bostic
63dca5514d Add support for alternating between search and search-near calls,
it forces testing of searches on pinned pages.
2015-04-05 12:23:48 -04:00
Keith Bostic
a2fc5559a2 Simplify the operations loop -- basically, we want to do N loops of
operations so we test opening and closing the objects, but if there
are no operations to do, we just need to verify the bulk-load and
we're done.

Don't drop core & test recovery until the last of the N loops, we
were doing it on the first.
2015-03-04 08:58:50 -05:00
Keith Bostic
15a98a1cd0 Instead of introducing an additional configuration string (timeout),
use timer to specify the maximum run, that is, you can set a count
of operations as well as the timer, and if both set, whichever expires
first limits the run.
2015-03-04 08:33:37 -05:00
Alex Gorrod
02d8873829 Add time out functionality to test/format.
Set the default timeout for operations to 20 minutes.
2015-03-04 03:37:38 +00:00
Alex Gorrod
7e8cdc3b4a Fixup test/format reporting.
So the command line reports the number of current ops accurately.
2015-02-27 17:22:41 +11:00
Keith Bostic
1f9098871a Copyright notices: add MongoDB, update to 2015. 2015-01-04 14:07:56 -05:00
Keith Bostic
2c473cee30 Add a simple test of recovery -- on timed runs, the monitor thread
optionally indirects through a NULL and core dumps, then we verify
the object.
2014-12-15 11:23:59 -05:00
Keith Bostic
5e9efe554c When I switched the tracking frequency from 1/10 of a second to 1/4
of a second, I didn't update the code that decremented the timer to
the end of a run -- fix it.
2014-12-10 15:00:06 -05:00
Keith Bostic
7ada354642 Make sure each thread has at least one operation to perform, but not
an arbitrary number.
2014-11-12 17:24:07 -05:00
Keith Bostic
9cfccfb742 Don't update the counters as often, should help with shared cache lines. 2014-11-11 12:59:07 -05:00
Keith Bostic
c667719cc6 Add support for timer-specified runs.
Support compaction & backup for single-threaded runs.
2014-11-11 12:32:00 -05:00
Keith Bostic
7590319f16 Rename WT_DEADLOCK to WT_ROLLBACK, reference #1204. 2014-10-17 07:46:30 -04:00
Michael Cahill
f1d85cad7d Skip checkpoint reads from LSM: they aren't supported. 2014-10-13 11:47:00 +11:00
Keith Bostic
9e242a5378 Don't read from checkpoints if we're single-threaded and doing checks
against a BDB copy of the object, the checkpoint might not match the
BDB data.
2014-10-12 20:19:41 -04:00
Keith Bostic
70ec55f69c 10% of the time, when switching to a new session/cursor set, perform
a small number of reads from a checkpoint.
2014-10-08 15:22:02 -04:00
Keith Bostic
a6022950bf Don't jump to the deadlock handling code unless we're in a transaction. 2014-10-08 14:02:18 -04:00
Michael Cahill
10a92203f9 whitespace 2014-09-09 18:14:06 +10:00
Michael Cahill
0a3061750a Have test/format always reset cursors at the end of each operation. 2014-09-09 17:57:13 +10:00
Michael Cahill
3d40ecb61a Now that begin/commit_transaction isn't resetting cursors, make test/format more proactive about doing it. 2014-09-03 14:54:20 +10:00
Keith Bostic
703e616fe1 Get rid of "hot" backup labels, it's just "backup" now. 2014-08-26 15:57:05 -04:00
Keith Bostic
17bf32b623 Add support for random isolation configurations, where each new session
is assigned one of the possible isolation settings at random.
2014-06-16 10:33:05 -04:00
Michael Cahill
59b8b1730c In test/format, split out the session configuration from isolation: the latter is used to write RUNDIR/CONFIG. 2014-06-03 15:36:21 +10:00
Michael Cahill
15b32aec97 Exercise all isolation levels in test/format.
motivated by reviewing #1040
2014-06-03 14:19:03 +10:00
Keith Bostic
5e326ccf07 Add a new checkpoints boolean configuration, makes it easy to turn off
checkpoints entirely.
2014-03-12 16:48:47 -04:00