From: dan Date: Tue, 10 Aug 2010 15:46:06 +0000 (+0000) Subject: Fix a bug in pager.c causing it to omit the xSync() call required following a hot... X-Git-Tag: version-3.7.2~53^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7e68423894fae26d25ef4e1d6b8513469020db07;p=thirdparty%2Fsqlite.git Fix a bug in pager.c causing it to omit the xSync() call required following a hot-journal rollback. FossilOrigin-Name: 42ba43ac690dc800fb8b969ae257a79942918342 --- diff --git a/manifest b/manifest index 4ff62443c9..96901ca253 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Add\svariable\spager.dbHintSize,\sused\sto\slimit\sthe\snumber\sof\scalls\smade\sto\sthe\sxFileControl(FCNTL_SIZE_HINT)\smethod. -D 2010-08-10T09:58:57 +C Fix\sa\sbug\sin\spager.c\scausing\sit\sto\somit\sthe\sxSync()\scall\srequired\sfollowing\sa\shot-journal\srollback. +D 2010-08-10T15:46:07 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in ec08dc838fd8110fe24c92e5130bcd91cbb1ff2e F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -156,7 +156,7 @@ F src/os_common.h a8f95b81eca8a1ab8593d23e94f8a35f35d4078f F src/os_os2.c 72d0b2e562952a2464308c4ce5f7913ac10bef3e F src/os_unix.c ae5ca8a6031380708f3fec7be325233d49944914 F src/os_win.c 51cb62f76262d961ea4249489383d714501315a7 -F src/pager.c 6e8316c94f4ce46480f7f628c3e819d922af2111 +F src/pager.c b3db762350ee71f5f8bde04f21ca2ffcccded483 F src/pager.h 80726162dc3942f59ab27b738fb667b9ba0a89d5 F src/parse.y 12b7ebd61ea54f0e1b1083ff69cc2c8ce9353d58 F src/pcache.c 1e9aa2dbc0845b52e1b51cc39753b6d1e041cb07 @@ -843,7 +843,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P 5662da6d4f648e5d07d7cbea6bbd92fa684c02c9 -R 016b700a84062c14051dadc45f2eaff7 +P eb3ac895bd92c880ac6acca58de8cf9643c2b5e4 +R e4d9a3fc6619bf1654c442eda9a22d0e U dan -Z bdf1c4ed8f87e806444ebc6f32ecd642 +Z d2fd5616e29600e0ee8548b4ff5a7e14 diff --git a/manifest.uuid b/manifest.uuid index 4d160d37cb..219b4e1fad 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -eb3ac895bd92c880ac6acca58de8cf9643c2b5e4 \ No newline at end of file +42ba43ac690dc800fb8b969ae257a79942918342 \ No newline at end of file diff --git a/src/pager.c b/src/pager.c index e2c2f715a3..4d9be40eb8 100644 --- a/src/pager.c +++ b/src/pager.c @@ -2723,10 +2723,9 @@ end_playback: rc = readMasterJournal(pPager->jfd, zMaster, pPager->pVfs->mxPathname+1); testcase( rc!=SQLITE_OK ); } - if( rc==SQLITE_OK && !pPager->noSync && pPager->eState>=PAGER_WRITER_DBMOD ){ - rc = sqlite3OsSync(pPager->fd, pPager->sync_flags); - } - if( rc==SQLITE_OK && !pPager->noSync && pPager->eState>=PAGER_WRITER_DBMOD ){ + if( rc==SQLITE_OK && !pPager->noSync + && (pPager->eState>=PAGER_WRITER_DBMOD || pPager->eState==PAGER_OPEN) + ){ rc = sqlite3OsSync(pPager->fd, pPager->sync_flags); } if( rc==SQLITE_OK ){