]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add test cases for ticket [7f7f8026eda387d544].
authordrh <drh@noemail.net>
Thu, 7 Apr 2016 21:14:35 +0000 (21:14 +0000)
committerdrh <drh@noemail.net>
Thu, 7 Apr 2016 21:14:35 +0000 (21:14 +0000)
FossilOrigin-Name: 87aa9357fbe6749bae60e30af54ca16e48678802

manifest
manifest.uuid
test/savepoint7.test

index 56e23c127786decf0e76d5e83da65cbb95307d39..2fe24961ade13182dd58febc3d4f4e0fe86596c1 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Prevent\sthe\sin-memory\sjournal\sread\scursor\sfrom\sentering\san\sinconsistent\sstate\nwhen\sit\sreads\sthe\slast\sfew\sbytes\sout\sof\sthe\sjournal\sfile.\s\sFix\sfor\nticket\s[7f7f8026eda38].
-D 2016-04-07T18:42:23.186
+C Add\stest\scases\sfor\sticket\s[7f7f8026eda387d544].
+D 2016-04-07T21:14:35.631
 F Makefile.in eba680121821b8a60940a81454316f47a341487a
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc 1f123a0757f6f04f0341accb46457e116817159a
@@ -1011,7 +1011,7 @@ F test/savepoint2.test 9b8543940572a2f01a18298c3135ad0c9f4f67d7
 F test/savepoint4.test c8f8159ade6d2acd9128be61e1230f1c1edc6cc0
 F test/savepoint5.test 0735db177e0ebbaedc39812c8d065075d563c4fd
 F test/savepoint6.test f41279c5e137139fa5c21485773332c7adb98cd7
-F test/savepoint7.test db3db281486c925095f305aad09fe806e5188ff3
+F test/savepoint7.test cde525ea3075283eb950cdcdefe23ead4f700daa
 F test/savepointfault.test f044eac64b59f09746c7020ee261734de82bf9b2
 F test/scanstatus.test 5253c219e331318a437f436268e0e82345700285
 F test/schema.test 8f7999be894260f151adf15c2c7540f1c6d6a481
@@ -1482,7 +1482,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 153135bfb3b8f7c407ccf36571e2d4d5afe28ea3
-R 79f1b101d10963168c95e54e3a571e58
+P c4b9c611bdcd85f31d68aaf114ee34a9f27eba6d
+R 761448207abe334cc70f1f29da291a77
 U drh
-Z fee1386714e022b25f3a73738d6ccce7
+Z 2b1e9b9a1cc02d13e96c99c5d4c59d63
index c077c241b6357c4f6db2a6166bf472b8483073a8..a8908af92ebec02729b8a2b62a1e18d915c36325 100644 (file)
@@ -1 +1 @@
-c4b9c611bdcd85f31d68aaf114ee34a9f27eba6d
\ No newline at end of file
+87aa9357fbe6749bae60e30af54ca16e48678802
\ No newline at end of file
index d8a02f1f801c0159b83cad75309835723ab4fbef..59c3cd6cdca08d45b1aa2f8ef97437a4406c45c8 100644 (file)
@@ -95,4 +95,38 @@ do_test savepoint7-2.2 {
   list $rc $msg [db eval {SELECT * FROM t2}]
 } {1 {abort due to ROLLBACK} {}}
 
+# Ticket: https://www.sqlite.org/src/tktview/7f7f8026eda387d544b
+# Segfault in the in-memory journal logic triggered by a tricky
+# combination of SAVEPOINT operations.
+#
+unset -nocomplain i
+for {set i 248} {$i<=253} {incr i} {
+  do_test savepoint7-3.$i {
+    db close
+    forcedelete test.db
+    sqlite3 db test.db
+    db eval {
+      PRAGMA page_size=1024;
+      PRAGMA temp_store=MEMORY;
+      BEGIN;
+      CREATE TABLE t1(x INTEGER PRIMARY KEY, y TEXT);
+      WITH RECURSIVE c(x) AS (VALUES(1) UNION SELECT x+1 FROM c WHERE x<$::i)
+      INSERT INTO t1(x,y) SELECT x*10, printf('%04d%.800c',x,'*') FROM c;
+      SAVEPOINT one;
+        SELECT count(*) FROM t1;
+        WITH RECURSIVE c(x) AS (VALUES(1) UNION SELECT x+1 FROM c WHERE x<$::i)
+        INSERT INTO t1(x,y) SELECT x*10+1, printf('%04d%.800c',x,'*') FROM c;
+      ROLLBACK TO one;
+        SELECT count(*) FROM t1;
+        SAVEPOINT twoB;
+          WITH RECURSIVE c(x) AS (VALUES(1) UNION SELECT x+1 FROM c WHERE x<10)
+          INSERT INTO t1(x,y) SELECT x*10+2, printf('%04d%.800c',x,'*') FROM c;
+        ROLLBACK TO twoB;
+      RELEASE one;
+      COMMIT;
+    }
+  } [list $i $i]
+}
+
+
 finish_test