1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-16 23:02:26 +03:00
Commit Graph

6096 Commits

Author SHA1 Message Date
dan
5d656852f7 Add some fault-injection tests to improve coverage.
FossilOrigin-Name: 37b26d125f4b1d8e75bb38800fefd145611f94aa
2010-06-14 07:53:26 +00:00
dan
4280eb3004 Fix some problems with handling IO errors on the experimental branch.
FossilOrigin-Name: eade8bc238df580412f5cf1b91a91532ae671e46
2010-06-12 12:02:35 +00:00
dan
13a3cb82ce Experimental change to the xShmXXX parts of the VFS interface.
FossilOrigin-Name: ca68472db01c14a899892007d1cbaff5e86ae193
2010-06-11 19:04:21 +00:00
drh
0b9b4301b8 Refactor and simplify the logic used to change journalmode.
FossilOrigin-Name: 95cc3f6fdec5494560c3cd4439d06870d1c62506
2010-06-11 17:01:24 +00:00
drh
23e35723a7 Add the SQLITE_TESTCTRL_PGHDRSZ verb for sqlite3_test_control() used to get
the size of pcache headers for testing purposes.

FossilOrigin-Name: 5d694f04fecf47ca325e108d463c24f42def55d5
2010-06-10 14:07:40 +00:00
drh
007d6c3a36 Update the test VFS in test_journal.c so that it implements the
xCurrentTimeInt64 method.

FossilOrigin-Name: ec3b4a7e5d3d7bd737d356b8a09ce94f8f0f8ce0
2010-06-10 10:51:27 +00:00
dan
026e598d0f Store the MemPage structure in memory following, instead of preceding, the page data for cached pages. This reduces the likelihood of a corrupt database page image causing SQLite to read past the end of a buffer.
FossilOrigin-Name: 0ce42e76654d9ba52dac74c940d38b17866016ba
2010-06-10 06:53:26 +00:00
drh
0350c7fa26 Remove a condition that must always be true. Replace it with an assert().
FossilOrigin-Name: 7abcd54ec09e8025193d1e0ea57775051d823801
2010-06-10 01:07:42 +00:00
dan
199100e2cd When restarting (wrapping) a log file, set all unused aReadMark[] slots to READMARK_NOT_USED instead of 0. Setting them to 0 does not cause a problem, but may cause SQLite to obtain and release a few more file locks than would otherwise be necessary.
FossilOrigin-Name: 0797b10c0cc08ae38e26685d1f8331e37d428781
2010-06-09 16:58:49 +00:00
dan
6ac4339439 Fix for ticket [f973c7ac31].
FossilOrigin-Name: 6eb058dda8d5f87b02378d8efd821fe64a525dcc
2010-06-09 15:47:11 +00:00
drh
db7f647e41 Shift the meaning of aReadMark[] back so that +1 offset from mxFrame is
removed.  Add the new READMARK_NOT_USED value (0xffffffff) instead of
zero to signal an aReadMark[] that is not in use.

FossilOrigin-Name: c576827d55c156572b76cf7063e9f253ca6e7403
2010-06-09 14:45:12 +00:00
dan
15651f61df Simpler fix for the race condition also fixed by [7c102c7b5f]
FossilOrigin-Name: 3c2de820034e01c2e939bd90a05a58159f60df50
2010-06-09 11:28:43 +00:00
dan
7df6c2c04b In os_unix.c, call munmap() to unmap a shared-memory region prior to closing the associated file descriptor.
FossilOrigin-Name: 95cc976f1520bdaedd8f93b0e9fbef94e4e2c8cc
2010-06-07 19:26:54 +00:00
dan
c1a60c51dc Refactor some of the global variables and commands used by tester.tcl.
FossilOrigin-Name: c2edf8e17f874d0ca4e94b75575bf6e14eea1f05
2010-06-07 14:28:16 +00:00
dan
640aac48f3 Add further test cases for the logic in sqlite3WalBeginReadTransaction().
FossilOrigin-Name: a49713db39d0d6940b368206d4e669aa69aa1fe5
2010-06-05 19:18:59 +00:00
dan
eb8cb3a851 Clarify the purpose of a test for a race-condition in walIndexReadHdr().
FossilOrigin-Name: c041c6a9786bc9ebb82527f7a2c96d255aec927f
2010-06-05 18:34:26 +00:00
dan
493cc590b6 Remove a condition from sqlite3WalRead() that is unreachable as of the changes to clear entries out of the wal-index hash tables on transaction or savepoint rollback.
FossilOrigin-Name: 394204735a842b04b677cca20485b1578e475d4c
2010-06-05 18:12:23 +00:00
dan
0626bd65fb Mark a condition in wal.c as ALWAYS().
FossilOrigin-Name: 3fe0cc784ac586358c08f87fba458dfbb5eec6f2
2010-06-05 14:42:57 +00:00
dan
ef4ee8f274 Add extra coverage test cases for wal.c. No changes to production code.
FossilOrigin-Name: f9d4ae0e8cc5d32c52eb78799f7959dd236ea9de
2010-06-05 11:53:34 +00:00
dan
3cac5dc9bc Clarify an assert in sqlite3WalExclusiveMode().
FossilOrigin-Name: 255850699ddbf4aad8cc3223aefbada35daa0703
2010-06-04 18:37:59 +00:00
dan
0153a9bc04 Remove an unnecessary branch from wal.c.
FossilOrigin-Name: 8e54786c9a0c5c399f228f56c73271f84d75694b
2010-06-04 17:16:52 +00:00
dan
0dc7b74fbe Add an English language error message to corresponding to SQLITE_PROTOCOL. "locking protocol".
FossilOrigin-Name: ca327e32cfe1633f2c9d3f058e411f108aaa2b3c
2010-06-04 15:59:58 +00:00
dan
d764c7de25 If an attempt to sync the database file as part of a checkpoint fails, do not update the shared "nBackfill" variable. Otherwise, another process could wrap the log and overwrite content before it is synced into the database.
FossilOrigin-Name: b813233d7604a5fd91e1af91d5d812032eec700a
2010-06-04 11:56:22 +00:00
dan
83f42d1b38 Fix a problem where an SQLITE_BUSY in the checkpoint code was being treated as an IO error (abandoning, instead of just limiting, the checkpoint).
FossilOrigin-Name: 02c4040ce2b4c970b3dee09f7c9ad5a2a3a9aa49
2010-06-04 10:37:05 +00:00
dan
d03f523d3b Fix another problem in test_vfs.c.
FossilOrigin-Name: df7d59899ceb2743764b0433cb68f4bc33f16344
2010-06-03 19:10:08 +00:00
dan
961ff45104 Have test_vfs.c simulate IO errors in xShmLock.
FossilOrigin-Name: fcbf7cf189506e43fc2f0820aedffb195038d3a9
2010-06-03 18:20:19 +00:00
drh
05cb5b244b Performance fix for winShmClose().
FossilOrigin-Name: ed7774de04978803e979580240148eba1de9166d
2010-06-03 18:02:48 +00:00
dan
459564f43f Delay opening the sub-journal until SQLite actually needs to write data to it.
FossilOrigin-Name: c43deb33ae5f191ea2e054181759beeeb9ea71bf
2010-06-03 12:35:28 +00:00
drh
f83dc1ef3f Remove global variables when compiled with SQLITE_OMIT_WSD
FossilOrigin-Name: dd10a547f10364058025c48b28d8fd240bf46aff
2010-06-03 12:09:52 +00:00
dan
1f55e28d2a Enhancements to test_vfs.c and walfault.test.
FossilOrigin-Name: ac0de2f39e948f3b00e96eebf56ebee70472020d
2010-06-03 09:25:10 +00:00
dan
40ad9d2870 If an error (OOM or SQLITE_FULL error) occurs while executing an SQL statement and a statement-transaction is automatically rolled back as a result, if a second error occurs during the statement rollback do a full transaction rollback instead. Otherwise the client can be left with an inconsistent cache.
FossilOrigin-Name: eb80ddc665132c607c258b59131025a296269dad
2010-06-03 09:17:38 +00:00
dan
8e64db2b09 If a malloc fails while allocating a savepoint object at the pager level, do not try to roll that savepoint back later on.
FossilOrigin-Name: 91cb08ffb6332a142542c012b58aa49206ee5704
2010-06-03 09:01:11 +00:00
drh
2d37e1cfb9 When a lock fails due to an I/O error (not an SQLITE_BUSY) then the checkpoint
should fail.

FossilOrigin-Name: c6eb0a27270df69018576232d8f97c16d63d8f6e
2010-06-02 20:38:20 +00:00
dan
6e6bd5658f Fix a problem with rolling back to a savepoint opened before the writer decided to wrap the log file.
FossilOrigin-Name: 6b4aed6aae7dc9e92807d27375cbe1e83c15841b
2010-06-02 18:59:03 +00:00
dan
10ec894c3a If an error occurs while writing frames to the log to commit a transaction, do not mark the pages as clean in the cache. Otherwise, the subsequent rollback does not roll them back (leaving the client to continue with a cache that makes it appear that the transaction was committed - inconsistent with the database on disk).
FossilOrigin-Name: cb571c1b71a37b3a10d640987c77a6eec508235d
2010-06-02 17:15:24 +00:00
shaneh
2796d336d2 Added implementation of vfslog_time() for Windows testing.
FossilOrigin-Name: b3109f85bde0b24bfbcfe6c0f7bbe973be196c1d
2010-06-02 16:40:54 +00:00
drh
c11895b808 Make sure the directory used by os_unix.c for shared-memory files is always
the same, regardless of individual client permissions and environment
variable settings.

FossilOrigin-Name: f97bd520f06a16c61ccdd9ebeda7e138896b9ac2
2010-06-02 15:59:05 +00:00
drh
38933f2c11 When walTryBeginRead() encounters an I/O error trying to set a lock
(as opposed to SQLITE_BUSY) be sure to propagate that error back up
the call stack.

FossilOrigin-Name: aa2c2b67a7f50c97a44cca1af5c437bf5410869c
2010-06-02 15:43:18 +00:00
drh
aab4c02e47 Changes to make WAL more robust against SHM locking failures and OOM errors.
FossilOrigin-Name: ebf4041383c3cdddb5861960359abd209d4a1028
2010-06-02 14:45:51 +00:00
drh
0af3723478 Undo one of the "const" markers from the previous check-in because the
value needs to be changable, even if it is not actually ever changed in
the current implementation.

FossilOrigin-Name: c24ac3563f46fc6bcf7e45ee171afd3ae7d2faa8
2010-06-02 12:58:22 +00:00
dan
558814f8c6 Add some 'const' markers to static data that is really constant.
FossilOrigin-Name: e7073e23b80e7cae0c76d42f014ee9b2d40a8f2f
2010-06-02 05:53:53 +00:00
drh
8b3cf82ddf The shared-memory used by WAL on linux now really is shared memory in /dev/shm.
On other unix flavors, the file is in a temporary directory rather than in the
same directory as the database.

FossilOrigin-Name: fc18c4aadb908c3b6f9b6481a2efca6a0daadc64
2010-06-01 21:02:51 +00:00
dan
0235ab9944 Changes to the way faults are injected into xShmXXX VFS calls.
FossilOrigin-Name: 716d99f3929b466c7a17190e0f18de8ab0e7f1fa
2010-06-01 19:15:18 +00:00
dan
9971e710e4 Delay the decision to restart the log file until data is actually ready to be written to the log file (instead of at the start of a write transaction).
FossilOrigin-Name: b1abfaaf5309cc0d0dda4fb2c237862c8cf83261
2010-06-01 15:44:57 +00:00
dan
f9b7671066 If an attempt to get a read-lock on the WAL fails with SQLITE_BUSY_RECOVER, call the busy-handler at the btree level.
FossilOrigin-Name: ce64496509a213c08c9dedae2a7a456b393d22e5
2010-06-01 14:12:45 +00:00
drh
f77bbd9fc5 Fix a bug introduced by the previous check-in but only seen if
SQLITE_ENABLE_EXPENSIVE_ASSERTS is turned on.

FossilOrigin-Name: 9c9ec8994bf701249efce6c7bb911de4525808c8
2010-06-01 13:17:44 +00:00
drh
9c1564779e Fix an off-by-one boundary-value issue in walCleanupHash().
FossilOrigin-Name: f039552e6330b6a04281748f985b41937f534bd0
2010-06-01 12:58:41 +00:00
dan
72bcac9ca7 Do not hold the shared-memory mutex in os_unix.c if returning NULL.
FossilOrigin-Name: 9622dd468c8914262e9d8bd8dbca9e22ec6ee75c
2010-06-01 11:08:56 +00:00
dan
e877296705 If the checkpoint fails to obtain an exclusive lock on one of the read-lock bytes, do not consider this an error.
FossilOrigin-Name: 9e95e35728cf69a0ae50e774d7f6c71a41b17d97
2010-06-01 10:44:28 +00:00
drh
181e091ff3 Comment edits and cleanup in wal.c. No functional code changes.
FossilOrigin-Name: e8e666ab8273f5db5265f0773b39820f75b6df1a
2010-06-01 01:08:08 +00:00