]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Check in the instrumented code for the mptest test case that appears to show a sponta... missing-journal-file
authordan <dan@noemail.net>
Tue, 9 Apr 2013 19:19:01 +0000 (19:19 +0000)
committerdan <dan@noemail.net>
Tue, 9 Apr 2013 19:19:01 +0000 (19:19 +0000)
FossilOrigin-Name: 96f04d99f3646189411cd6c6a3b5865f3e12d7d7

manifest
manifest.uuid
mptest/config02.test
src/os_unix.c
src/pager.c
src/vdbeaux.c

index fdbb616c1daee7ca9d6382da75e740f7e67b7394..34eb1b428c7382003e71abf06a36988aaedec555 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Disable\sthe\suse\sof\smemory-mapped\sI/O\sif\sthe\sSQLITE_DISABLE_MMAP\smacro\sis\ndefined.\s\sAutomatically\sdefine\sthis\smacro\sfor\sOpenBSD\sand\sQNX.\s\sOther\nsystems\sare\slikely\sto\sbe\sadded\sto\sthe\sdisabled\slist\sover\stime.
-D 2013-04-08T20:47:49.018
+C Check\sin\sthe\sinstrumented\scode\sfor\sthe\smptest\stest\scase\sthat\sappears\sto\sshow\sa\sspontaneously\sdisappearing\sjournal\sfile.
+D 2013-04-09T19:19:01.777
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 6a6a8c548822302d3a9a651f0296bbc3dad55e83
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -111,7 +111,7 @@ F mkopcodec.awk f6fccee29e68493bfd90a2e0466ede5fa94dd2fc
 F mkopcodeh.awk 29b84656502eee5f444c3147f331ee686956ab0e
 F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83
 F mptest/config01.test 3f4ddeb152a4f83872f0fa7fcb48d9fd609893da
-F mptest/config02.test 962913ed2b537d60de4126db7fe54716865cdd22
+F mptest/config02.test ea934966341e3827b5563279af576b361e4dda11
 F mptest/crash01.test a5f31998ed48de8267d6620e8af107ec148e5f12
 F mptest/crash02.subtest c4647feafa04109e1dc60121a895b6cba8d63ceb
 F mptest/mptest.c e31bb60d3de960aa0f7d08af7ae59c6dfecc552b
@@ -166,9 +166,9 @@ F src/notify.c 976dd0f6171d4588e89e874fcc765e92914b6d30
 F src/os.c ca679b293a6233327e418fd1dde2cd5db3e90932
 F src/os.h ae08bcc5f6ec6b339f4a2adf3931bb88cc14c3e4
 F src/os_common.h 92815ed65f805560b66166e3583470ff94478f04
-F src/os_unix.c 6d584190db2ed442e5c849b7f73dcfbbac7c032e
+F src/os_unix.c d732dca04fc27bf2d92a4de6f78b91cedd36b270
 F src/os_win.c 3265df8c762e0b8caf8d02b3352fa8c22e91ae6b
-F src/pager.c eb6d272f4dc1ade4b8f664599cd54a9c95cb2729
+F src/pager.c fc108b8da737a5e429244a59a6c97045e30f3337
 F src/pager.h 5cb78b8e1adfd5451e600be7719f5a99d87ac3b1
 F src/parse.y 5d5e12772845805fdfeb889163516b84fbb9ae95
 F src/pcache.c f8043b433a57aba85384a531e3937a804432a346
@@ -249,7 +249,7 @@ F src/vdbe.c 5f0047130f80c7fd0bc41bc51a653b5542c4fbd5
 F src/vdbe.h b52887278cb173e66188da84dfab216bea61119d
 F src/vdbeInt.h c1e830268b75f04a2901dd895b51a637a26c7045
 F src/vdbeapi.c 085cf9bf169b859a6c8fa43791702bac805cb7aa
-F src/vdbeaux.c ecb43014bcd3019e5aa2b5561e5c3a447f007a08
+F src/vdbeaux.c 1521655b876c035963baa0fe124699563495e4f4
 F src/vdbeblob.c 5dc79627775bd9a9b494dd956e26297946417d69
 F src/vdbemem.c 833005f1cbbf447289f1973dba2a0c2228c7b8ab
 F src/vdbesort.c 4fad64071ae120c25f39dcac572d716b9cadeb7f
@@ -1050,7 +1050,10 @@ F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
 F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
-P ae8bb24bfb014bdcb8aaa8159ddae0cd376afe99
-R 7e782b1e3841573f5a2d86903a4acfcf
-U drh
-Z a7d6d975495e51a139482ed48c14db14
+P 8a4314a398c6c6efb25e6993c826b7e60d9bb1f9
+R 96c196a2830d15077528814491807a44
+T *branch * missing-journal-file
+T *sym-missing-journal-file *
+T -sym-trunk *
+U dan
+Z 991b3a64656b6e80801efa47bfbb23d0
index 387ecfb3dc0dcdb403562d159b8111f97b95a81e..aa814324032a8238286478900a44933a178b2241 100644 (file)
@@ -1 +1 @@
-8a4314a398c6c6efb25e6993c826b7e60d9bb1f9
\ No newline at end of file
+96f04d99f3646189411cd6c6a3b5865f3e12d7d7
\ No newline at end of file
index e25d94081eef838df7e2093570fe3c1266db0a39..39c27bbf5758e8daecb2267203ddb37d7ef14fb3 100644 (file)
@@ -6,13 +6,13 @@ PRAGMA page_size=512;
   PRAGMA mmap_limit=0;
 --end
 --task 2
-  PRAGMA mmap_limit=28672;
+  PRAGMA mmap_limit=0;
 --end
 --task 3
-  PRAGMA mmap_limit=8192;
+  PRAGMA mmap_limit=0;
 --end
 --task 4
-  PRAGMA mmap_limit=65536;
+  PRAGMA mmap_limit=0;
 --end
 --source multiwrite01.test
 --source crash02.subtest
index 1d4c8ad3487b161f5be130d153d19564bedcfede..4aeef7e2f19c9c9290d5144561b961af2c20f0c0 100644 (file)
@@ -1879,6 +1879,8 @@ static int unixClose(sqlite3_file *id){
   unixUnlock(id, NO_LOCK);
   unixEnterMutex();
 
+access(pFile->zPath, F_OK);
+
   /* unixFile.pInode is always valid here. Otherwise, a different close
   ** routine (e.g. nolockClose()) would be called instead.
   */
@@ -3214,6 +3216,8 @@ static int unixWrite(
   );
 #endif
 
+access(pFile->zPath, F_OK);
+
 #ifdef SQLITE_DEBUG
   /* If we are doing a normal write to a database file (as opposed to
   ** doing a hot-journal rollback or a write to some file other than a
@@ -5574,6 +5578,7 @@ static int unixOpen(
       return rc;
     }
     fd = robust_open(zName, openFlags, openMode);
+    access(zName, F_OK);
     OSTRACE(("OPENX   %-3d %s 0%o\n", fd, zName, openFlags));
     if( fd<0 && errno!=EISDIR && isReadWrite && !isExclusive ){
       /* Failed to open the file for read/write access. Try read-only. */
@@ -5709,6 +5714,7 @@ static int unixDelete(
   int rc = SQLITE_OK;
   UNUSED_PARAMETER(NotUsed);
   SimulateIOError(return SQLITE_IOERR_DELETE);
+  access(zPath, F_OK);
   if( osUnlink(zPath)==(-1) ){
     if( errno==ENOENT ){
       rc = SQLITE_IOERR_DELETE_NOENT;
index e3ac49cd47f15945bfae3a71b866886d9c8233cd..dce1bf556b10af3b96123400f20b3e510f402c18 100644 (file)
@@ -1966,6 +1966,7 @@ static int pager_end_transaction(Pager *pPager, int hasMaster, int bCommit){
       sqlite3OsClose(pPager->jfd);
       if( bDelete ){
         rc = sqlite3OsDelete(pPager->pVfs, pPager->zJournal, 0);
+assert( rc!=SQLITE_IOERR_DELETE_NOENT );
       }
     }
   }
@@ -2473,6 +2474,7 @@ static int pager_delmaster(Pager *pPager, const char *zMaster){
  
   sqlite3OsClose(pMaster);
   rc = sqlite3OsDelete(pVfs, zMaster, 0);
+assert( rc!=SQLITE_IOERR_DELETE_NOENT );
 
 delmaster_out:
   sqlite3_free(zMasterJournal);
index 2c4269a59e6dbce8671c474f346190be2a0e1851..0e7d5ab32abc89eda7ff31ab28379564567efba4 100644 (file)
@@ -1931,6 +1931,7 @@ static int vdbeCommit(sqlite3 *db, Vdbe *p){
     ** transaction files are deleted.
     */
     rc = sqlite3OsDelete(pVfs, zMaster, 1);
+assert( rc!=SQLITE_IOERR_DELETE_NOENT );
     sqlite3DbFree(db, zMaster);
     zMaster = 0;
     if( rc ){