]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix an assert() failure caused by setting "PRAGMA journal_mode=off" on an database...
authordan <dan@noemail.net>
Fri, 1 May 2015 16:57:24 +0000 (16:57 +0000)
committerdan <dan@noemail.net>
Fri, 1 May 2015 16:57:24 +0000 (16:57 +0000)
FossilOrigin-Name: 40db3e40126db1035fcc12989026915744dc5651

manifest
manifest.uuid
src/pager.c
test/jrnlmode.test

index 816970f1406603a68c972962f294df8321fe826d..599f06b62afc31569eab3f7a6e737ff3de262481 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Remove\sobselete\scomment\stext\sfrom\sthe\sdescription\sof\sthe\sTable\sobject.\nNo\schanges\sto\scode.
-D 2015-05-01T15:25:51.767
+C Fix\san\sassert()\sfailure\scaused\sby\ssetting\s"PRAGMA\sjournal_mode=off"\son\san\sdatabase\sin\sexclusive-mode\sthat\shas\salready\sopened\sthe\sjournal\sfile.
+D 2015-05-01T16:57:24.266
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in e3268d234210842b4be0a6e2e1c5990999f1d9f4
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -217,7 +217,7 @@ F src/os_setup.h c9d4553b5aaa6f73391448b265b89bed0b890faa
 F src/os_unix.c 23eb5f56fac54d8fe0cb204291f3b3b2d94f23fc
 F src/os_win.c 2da99cf07da7db6bcb1974013abfd89ec74749b3
 F src/os_win.h eb7a47aa17b26b77eb97e4823f20a00b8bda12ca
-F src/pager.c 5283581c8ce8950ff483a0b3a3cab9cb4d25a21e
+F src/pager.c 97110085b1321298412f1e5c37bddb95b36d9208
 F src/pager.h c3476e7c89cdf1c6914e50a11f3714e30b4e0a77
 F src/parse.y c4e0387bc88c8e21e5ba653e2578959a1f3cdbc7
 F src/pcache.c 10539fb959849ad6efff80050541cab3d25089d4
@@ -690,7 +690,7 @@ F test/join6.test cfe6503791ceb0cbb509966740286ec423cbf10b
 F test/journal1.test 69abc726c51b4a0409189f9a85191205297c0577
 F test/journal2.test ae06f566c28552c313ded3fee79a6c69e6d049b1
 F test/journal3.test ff8af941f9e06161d3db1b46bb9f965ff0e7f307
-F test/jrnlmode.test 9ee3a78f53d52cca737db69293d15dc41c0cbd36
+F test/jrnlmode.test 6014ba5c11d66ff8bc7d87a7a2abc5c54be73b2e
 F test/jrnlmode2.test 81610545a4e6ed239ea8fa661891893385e23a1d
 F test/jrnlmode3.test 556b447a05be0e0963f4311e95ab1632b11c9eaa
 F test/keyword1.test 37ef6bba5d2ed5b07ecdd6810571de2956599dff
@@ -1255,7 +1255,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 605347e087ec5eb817f3c94f4616abe26c7ab66b
-R 49af71398b314fdf0cd1517eca78da9a
-U drh
-Z cb062f9c66d14cbf9dc87b64ba4f37f6
+P 6566b72a9c68b347d126189b376f52ffd56edfba
+R f6676a27ea8fd7f080695c7806564a78
+U dan
+Z fe516a6f38b171b235c89343c757478c
index f89a1c75ce93de16a981ae3098ac34d257ceeb8f..7dd91f88569958b2534dbd5ef76e68848328031d 100644 (file)
@@ -1 +1 @@
-6566b72a9c68b347d126189b376f52ffd56edfba
\ No newline at end of file
+40db3e40126db1035fcc12989026915744dc5651
\ No newline at end of file
index 9ee2ecab5aff618be0b4225898db6e06ca3dc74a..91378f0612d75dd473370d3933dc7d40749a34cc 100644 (file)
@@ -7010,6 +7010,8 @@ int sqlite3PagerSetJournalMode(Pager *pPager, int eMode){
         }
         assert( state==pPager->eState );
       }
+    }else if( eMode==PAGER_JOURNALMODE_OFF ){
+      sqlite3OsClose(pPager->jfd);
     }
   }
 
index b1007c490819e00546d7b5db8ceb2273842ec0b1..cebbfe5638a3c2dbd5f7e31412671c964207b592 100644 (file)
@@ -555,4 +555,19 @@ do_execsql_test jrnlmode-8.28 { PRAGMA journal_mode=DELETE }    {delete}
 do_execsql_test jrnlmode-8.29 { COMMIT }                        {}
 do_execsql_test jrnlmode-8.30 { PRAGMA journal_mode=DELETE }    {delete}
 
+# Assertion fault on 2015-05-01
+do_test jrnlmode-9.1 {
+  forcedelete test2.db
+  sqlite3 db2 test2.db
+  breakpoint
+  db2 eval {CREATE TEMP TABLE t(l); PRAGMA journal_mode=off;}
+  db2 close
+} {}
+do_execsql_test jrnlmode-9.2 {
+  PRAGMA locking_mode = exclusive;
+  CREATE TABLE tx(a);
+  PRAGMA journal_mode = off;
+} {exclusive off}
+
+
 finish_test