Add commentary to clarify what is happening when an I/O error occurs while
writing dirty pages to the database file. (CVS 4811) FossilOrigin-Name: afe49d81f479715e13f18a97170d414a853a6cfe
This commit is contained in:
parent
8f2e9a1a94
commit
04c3a46ed9
12
manifest
12
manifest
@ -1,5 +1,5 @@
|
||||
C Add\san\sassert()\sto\sverify\sthat\sthe\sdirty-page\slist\sin\sthe\spager\sis\nvalid\sbefore\susing\sit.\s(CVS\s4810)
|
||||
D 2008-02-26T14:46:05
|
||||
C Add\scommentary\sto\sclarify\swhat\sis\shappening\swhen\san\sI/O\serror\soccurs\swhile\nwriting\sdirty\spages\sto\sthe\sdatabase\sfile.\s(CVS\s4811)
|
||||
D 2008-02-26T16:16:45
|
||||
F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7
|
||||
F Makefile.in 6be8d7c60afa918807e77ec4459f8aff68c996d9
|
||||
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
|
||||
@ -127,7 +127,7 @@ F src/os_unix.c e4daef7628f690fa2b188af3632fb18f96525946
|
||||
F src/os_unix.h 5768d56d28240d3fe4537fac08cc85e4fb52279e
|
||||
F src/os_win.c aa3f4bbee3b8c182d25a33fbc319f486857c12c1
|
||||
F src/os_win.h 41a946bea10f61c158ce8645e7646b29d44f122b
|
||||
F src/pager.c 1d5d4167f80bc5d487c026aea5fe08753f9a5c78
|
||||
F src/pager.c ee55f9c201d1df44e684aa42b31f47c5a8ec8ff0
|
||||
F src/pager.h 8174615ffd14ccc2cad2b081b919a398fa95e3f9
|
||||
F src/parse.y 00f2698c8ae84f315be5e3f10b63c94f531fdd6d
|
||||
F src/pragma.c e3f39f8576234887ecd0c1de43dc51af5855930c
|
||||
@ -621,7 +621,7 @@ F www/tclsqlite.tcl 8be95ee6dba05eabcd27a9d91331c803f2ce2130
|
||||
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
|
||||
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
|
||||
F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
|
||||
P 427e7f8b4a54eb6136174af63a467324d6fb051e
|
||||
R 24a233a27b1c7d161b4f137b2e844c7b
|
||||
P 942daf94ef1f8ac678988e175ef968a2d3f801e9
|
||||
R 78628a049bcafa60db998c6268ba7168
|
||||
U drh
|
||||
Z 2c7770a62aa3333221324adf20aa5a18
|
||||
Z 794fa50c5e327e7a323854fb5d8e9a99
|
||||
|
@ -1 +1 @@
|
||||
942daf94ef1f8ac678988e175ef968a2d3f801e9
|
||||
afe49d81f479715e13f18a97170d414a853a6cfe
|
12
src/pager.c
12
src/pager.c
@ -18,7 +18,7 @@
|
||||
** file simultaneously, or one process from reading the database while
|
||||
** another is writing.
|
||||
**
|
||||
** @(#) $Id: pager.c,v 1.410 2008/02/26 14:46:05 drh Exp $
|
||||
** @(#) $Id: pager.c,v 1.411 2008/02/26 16:16:45 drh Exp $
|
||||
*/
|
||||
#ifndef SQLITE_OMIT_DISKIO
|
||||
#include "sqliteInt.h"
|
||||
@ -4578,8 +4578,14 @@ int sqlite3PagerCommitPhaseOne(Pager *pPager, const char *zMaster, Pgno nTrunc){
|
||||
pPg = pager_get_all_dirty_pages(pPager);
|
||||
rc = pager_write_pagelist(pPg);
|
||||
if( rc!=SQLITE_OK ){
|
||||
while( pPg && !pPg->dirty ){ pPg = pPg->pDirty; }
|
||||
pPager->pDirty = pPg;
|
||||
assert( rc!=SQLITE_IOERR_BLOCKED );
|
||||
/* The error might have left the dirty list all fouled up here,
|
||||
** but that does not matter because if the if the dirty list did
|
||||
** get corrupted, then the transaction will roll back and
|
||||
** discard the dirty list. There is an assert in
|
||||
** pager_get_all_dirty_pages() that verifies that no attempt
|
||||
** is made to use an invalid dirty list.
|
||||
*/
|
||||
goto sync_exit;
|
||||
}
|
||||
pPager->pDirty = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user