From a218b6a22a47c38db5198e9b57d0af6543e9e4f1 Mon Sep 17 00:00:00 2001 From: drh Date: Sat, 25 Jan 2003 15:43:22 +0000 Subject: [PATCH] Fix a bug in the rollback validation logic (code that only runs during debugging). The problem was introduced by check-in (835). (CVS 849) FossilOrigin-Name: b6ea0da76a27a4a67a3978c53405840518de2379 --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/pager.c | 15 +++++++++------ 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/manifest b/manifest index e5419b1ede..d227b8f80a 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Remove\san\sunused\svariable.\s(CVS\s848) -D 2003-01-25T14:34:23 +C Fix\sa\sbug\sin\sthe\srollback\svalidation\slogic\s(code\sthat\sonly\sruns\sduring\ndebugging).\s\sThe\sproblem\swas\sintroduced\sby\scheck-in\s(835).\s(CVS\s849) +D 2003-01-25T15:43:22 F Makefile.in 6606854b1512f185b8e8c779b8d7fc2750463d64 F Makefile.linux-gcc b86a99c493a5bfb402d1d9178dcdc4bd4b32f906 F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd @@ -33,7 +33,7 @@ F src/main.c ad3193c56da5acd31bc6cd48aa50dae1962d7c78 F src/md5.c fe4f9c9c6f71dfc26af8da63e4d04489b1430565 F src/os.c ed27e178e0c4b71f2807da81b8851f0fadc50778 F src/os.h afa3e096213bad86845f8bdca81a9e917505e401 -F src/pager.c 82148bde7a080caab5f1c9ccec921275a14306dc +F src/pager.c 95f5c5c775ed47e837ce02b407d80527d93e6c43 F src/pager.h 540833e8cb826b80ce2e39aa917deee5e12db626 F src/parse.y a4fbfbe3c4254c96dae8c33264fb54af755a3770 F src/printf.c e8e9a0605602cb1a3a2dc754e0978fa9064ecee7 @@ -154,7 +154,7 @@ F www/speed.tcl 4d463e2aea41f688ed320a937f93ff885be918c3 F www/sqlite.tcl ae3dcfb077e53833b59d4fcc94d8a12c50a44098 F www/tclsqlite.tcl 1db15abeb446aad0caf0b95b8b9579720e4ea331 F www/vdbe.tcl 2013852c27a02a091d39a766bc87cff329f21218 -P 5143d4814df1dd440a362a90dd3f328c84527565 -R 8d798f4de6f078b0174c54b9f779d4d6 +P 18f4ffaa2ed89784a1ea3c61c864d20e18fa1e9f +R 4cf2a85c454063f72e76dc7b464fd72d U drh -Z 8afdccf6d8d280981bb3a6b92995d993 +Z e18f1e76d391be3676abefbe5def4da4 diff --git a/manifest.uuid b/manifest.uuid index 7fbbb41a46..353694ac86 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -18f4ffaa2ed89784a1ea3c61c864d20e18fa1e9f \ No newline at end of file +b6ea0da76a27a4a67a3978c53405840518de2379 \ No newline at end of file diff --git a/src/pager.c b/src/pager.c index 03be78c565..6fada9c343 100644 --- a/src/pager.c +++ b/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.70 2003/01/22 01:26:44 drh Exp $ +** @(#) $Id: pager.c,v 1.71 2003/01/25 15:43:22 drh Exp $ */ #include "os.h" /* Must be first to enable large file support */ #include "sqliteInt.h" @@ -1713,12 +1713,15 @@ int sqlitepager_rollback(Pager *pPager){ ** worked if it had occurred after an OS crash or unexpected power ** loss. */ - if( pPager->syncJSizesyncJSize = sizeof(aJournalMagic)+sizeof(Pgno); + if( !pPager->noSync ){ + assert( !pPager->tempFile ); + if( pPager->syncJSizesyncJSize = sizeof(aJournalMagic)+sizeof(Pgno); + } + TRACE2("TRUNCATE JOURNAL %lld\n", pPager->syncJSize); + rc = sqliteOsTruncate(&pPager->jfd, pPager->syncJSize); + if( rc ) return rc; } - TRACE2("TRUNCATE JOURNAL %lld\n", pPager->syncJSize); - rc = sqliteOsTruncate(&pPager->jfd, pPager->syncJSize); - if( rc ) return rc; #endif if( pPager->errMask!=0 && pPager->errMask!=PAGER_ERR_FULL ){