Partial fix for a bug in recovery from xStress failures in pcache. (CVS 5635)

FossilOrigin-Name: 44193b92770062271711570d8532fa5af5f5da54
This commit is contained in:
drh 2008-08-28 17:46:18 +00:00
parent 81fa193a66
commit 570f5c7d70
4 changed files with 15 additions and 13 deletions

View File

@ -1,5 +1,5 @@
C Avoid\susing\s(clock\sseconds)\sin\sthread003.test.\sIt\sis\snot\savailable\sif\stestfixture\sis\slinked\sto\stcl\s8.5.\s(CVS\s5634)
D 2008-08-28T13:55:10
C Partial\sfix\sfor\sa\sbug\sin\srecovery\sfrom\sxStress\sfailures\sin\spcache.\s(CVS\s5635)
D 2008-08-28T17:46:19
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in 689e14735f862a5553bceef206d8c13e29504e44
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@ -137,7 +137,7 @@ F src/os_win.c aefe9ee26430678a19a058a874e4e2bd91398142
F src/pager.c 032d11049af4ec49bdbaa3584e7ce9887098b66a
F src/pager.h 914103bb62dbcc3d8e9f14baec812d027264d457
F src/parse.y d0f76d2cb8d6883d5600dc20beb961a6022b94b8
F src/pcache.c c45e2440b83958f274df3e2a84d267955a651052
F src/pcache.c 4853068cb21ae742507186f8780b2eba33b734ff
F src/pcache.h bd373ee3e4db310d6bbe7fa6d8d971de9678edd8
F src/pragma.c f5b271b090af7fcedd308d7c5807a5503f7a853d
F src/prepare.c c197041e0c4770672cda75e6bfe10242f885e510
@ -531,7 +531,7 @@ F test/tkt2285.test cca17be61cf600b397188e77e7143844d2b977e9
F test/tkt2332.test fc955609b958ca86dfa102832243370a0cc84070
F test/tkt2339.test 73bd17818924cd2ac442e5fd9916b58565739450
F test/tkt2391.test ab7a11be7402da8b51a5be603425367aa0684567
F test/tkt2409.test c9599f296178eb764a7d6260c5403e1e921d9fef
F test/tkt2409.test 464d55beb32e3b12ce2b4bbf9857d063c4c34297
F test/tkt2450.test 77ed94863f2049c1420288ddfea2d41e5e0971d6
F test/tkt2640.test 28134f5d1e05658ef182520cf0b680fa3de5211b
F test/tkt2643.test 3f3ebb743da00d4fed4fcf6daed92a0e18e57813
@ -625,7 +625,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81
F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 1dbced29de5f59ba2ebf877edcadf171540374d1
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
P 677ac144c8f7e2722fdf05da1431919d6a8bb45f
R e5bc691d64a66c3c32e3f3fdc2b65463
U danielk1977
Z a14388406a05abc10347757e6741d06a
P b606263d0868aed267bcec623b9fe4d142099145
R 583df9a59ceb3abe3e9babb420a62f8c
U drh
Z d2e0132b284492803c0e9b5e5f2053d7

View File

@ -1 +1 @@
b606263d0868aed267bcec623b9fe4d142099145
44193b92770062271711570d8532fa5af5f5da54

View File

@ -11,7 +11,7 @@
*************************************************************************
** This file implements that page cache.
**
** @(#) $Id: pcache.c,v 1.22 2008/08/28 11:12:09 danielk1977 Exp $
** @(#) $Id: pcache.c,v 1.23 2008/08/28 17:46:19 drh Exp $
*/
#include "sqliteInt.h"
@ -573,7 +573,7 @@ static int pcacheRecycleOrAlloc(PCache *pCache, PgHdr **ppPage){
pcacheExitMutex();
rc = pCache->xStress(pCache->pStress, pPg);
pcacheEnterMutex();
if( rc!=SQLITE_OK ){
if( rc!=SQLITE_OK && rc!=SQLITE_BUSY ){
return rc;
}
}

View File

@ -16,7 +16,7 @@
# any statement other than a COMMIT, an I/O error is returned instead
# of SQLITE_BUSY.
#
# $Id: tkt2409.test,v 1.5 2008/08/26 18:05:48 danielk1977 Exp $
# $Id: tkt2409.test,v 1.6 2008/08/28 17:46:19 drh Exp $
# Test Outline:
#
@ -182,8 +182,9 @@ do_test tkt2409-3.4 {
unread_lock_db
catchsql { ROLLBACK }
} {0 {}}
integrity_check tkt2409-3.5
expr {srand(1)}
do_test tkt2409-4.1 {
execsql {
PRAGMA cache_size=20;
@ -220,6 +221,7 @@ integrity_check tkt2409-4.3
do_test tkt2409-4.4 {
catchsql { ROLLBACK }
} {0 {}}
integrity_check tkt2409-4.5
unread_lock_db
db2 close