]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a problem in lsmtest causing one test to fail for multi-threaded LSM
authordan <dan@noemail.net>
Wed, 5 Jul 2017 14:29:04 +0000 (14:29 +0000)
committerdan <dan@noemail.net>
Wed, 5 Jul 2017 14:29:04 +0000 (14:29 +0000)
connections.

FossilOrigin-Name: 2bce64c8864b616f9ab0063f64d0ceb2f83e53e110970c6b3b11003cba5c8804

ext/lsm1/lsm-test/lsmtest9.c
ext/lsm1/lsm-test/lsmtest_tdb.h
ext/lsm1/lsm-test/lsmtest_tdb3.c
manifest
manifest.uuid

index ba5caae825289f48433fcdf7962fd461c9dbfe27..144cae720309b66256de4c6420b5f2f65da5a510 100644 (file)
@@ -44,6 +44,7 @@ static void doDataTest4(
   int i;
   int rc = 0;
   int iDot = 0;
+  int bMultiThreaded = 0;         /* True for MT LSM database */
 
   int nRecOn3 = (p->nRec / 3);
   int iData = 0;
@@ -52,7 +53,10 @@ static void doDataTest4(
   rc = testControlDb(&pControl);
   pDb = testOpen(zSystem, 1, &rc);
   pData = testDatasourceNew(&p->defn);
-  if( rc==0 ) db = tdb_lsm(pDb);
+  if( rc==0 ){
+    db = tdb_lsm(pDb);
+    bMultiThreaded = tdb_lsm_multithread(pDb);
+  }
 
   testWriteDatasourceRange(pControl, pData, iData, nRecOn3*3, &rc);
   testWriteDatasourceRange(pDb,      pData, iData, nRecOn3*3, &rc);
@@ -71,6 +75,7 @@ static void doDataTest4(
         nDone = 0;
         rc = lsm_work(db, 1, (1<<30), &nDone);
       }while( rc==0 && nDone>0 );
+      if( bMultiThreaded && rc==LSM_BUSY ) rc = LSM_OK;
 #if 0 
       fprintf(stderr, "lsm_work() done...\n"); fflush(stderr);
 #endif
index 62915a20d0b6f26738bc515217b424a99e71e4d9..c55b6e2f802653a64bf43df1c2a23c801d8316f3 100644 (file)
@@ -136,6 +136,12 @@ int tdb_lsm_open(const char *zCfg, const char *zDb, int bClear, TestDb **ppDb);
 */
 lsm_db *tdb_lsm(TestDb *pDb);
 
+/*
+** Return true if the db passed as an argument is a multi-threaded LSM
+** connection.
+*/
+int tdb_lsm_multithread(TestDb *pDb);
+
 /*
 ** Return a pointer to the lsm_env object used by all lsm database
 ** connections initialized as a copy of the object returned by 
index 8a0141bdf4972788d338619e230f5632c07e1a91..d78b787f78630c8e711b9afd04ceef713930ca78 100644 (file)
@@ -1051,6 +1051,14 @@ lsm_db *tdb_lsm(TestDb *pDb){
   return 0;
 }
 
+int tdb_lsm_multithread(TestDb *pDb){
+  int ret = 0;
+  if( tdb_lsm(pDb) ){
+    ret = ((LsmDb*)pDb)->eMode!=LSMTEST_MODE_SINGLETHREAD;
+  }
+  return ret;
+}
+
 void tdb_lsm_enable_log(TestDb *pDb, int bEnable){
   lsm_db *db = tdb_lsm(pDb);
   if( db ){
index 030912ba32b882b1a0e0d77af1e3338e278c010e..4f50381b2b83aebb001c7c5d0796d2afbf4f7f1d 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\sthe\scount-of-view\soptimization\swhen\scompiled\susing\s\nSQLITE_COUNTOFVIEW_OPTIMIZATION.
-D 2017-07-04T19:34:36.404
+C Fix\sa\sproblem\sin\slsmtest\scausing\sone\stest\sto\sfail\sfor\smulti-threaded\sLSM\nconnections.
+D 2017-07-05T14:29:04.723
 F Makefile.in 081e48dfe7f995d57ce1a88ddf4d2917b4349158648a6cd45b42beae30de3a12
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc 4ebb1d257cac7fb1bcb4ba59278416d410ff1c4bf59447a9c37a415f3516056a
@@ -221,7 +221,7 @@ F ext/lsm1/lsm-test/lsmtest5.c 8d5242a0f870d65eeada191c8945781fed9cb8ece38865737
 F ext/lsm1/lsm-test/lsmtest6.c 1f21509ea5d2b28b74539c2a70b8001619d0713091511067278f57871f4b753a
 F ext/lsm1/lsm-test/lsmtest7.c 7a917455a0f956a8ed3f44f5c9387ec0ea6627714874464cc3fa5c5a9cabb2f2
 F ext/lsm1/lsm-test/lsmtest8.c b87a1279b0cfbb39df1fff50074696fbf5d83822349f65706fab6d618a7a52fa
-F ext/lsm1/lsm-test/lsmtest9.c 88245ce0fdd01678be548100e584cacdacab90208624223aac9029e4f90535fe
+F ext/lsm1/lsm-test/lsmtest9.c dd1a0ebf41134933a744d1e00e60429a2a21fc50d587ae7dd6bdb6e96d805bdc
 F ext/lsm1/lsm-test/lsmtest_bt.c d70d9a9be5eef9360af1251dd083948d74fd30137a08f61bef995f7ac04e037f
 F ext/lsm1/lsm-test/lsmtest_datasource.c 5d770be191d0ca51315926723009b2c25c0b4b8136840494ef710ac324aa916c
 F ext/lsm1/lsm-test/lsmtest_func.c 159aa401bc8032bfa3d8cf2977bd687abebab880255895a5eb45770d626fa38d
@@ -229,9 +229,9 @@ F ext/lsm1/lsm-test/lsmtest_io.c ba678e052f497b4c2ff41d47672a1f2a02f495d14083845
 F ext/lsm1/lsm-test/lsmtest_main.c f1d18e3a3e9315ec4198901a11c9d2ec6cb96d1a40089fd60b6a64e0b6b8db35
 F ext/lsm1/lsm-test/lsmtest_mem.c c2980abdbc5024628d10910acb703354f2606b4a6f9624679da4e9a56bcee3e9
 F ext/lsm1/lsm-test/lsmtest_tdb.c e46c3f44880d45fd444daf2b2a53bca7a64f9df3f6480cbb1b47a039cc95626a
-F ext/lsm1/lsm-test/lsmtest_tdb.h 85d6a5f30f6264e1d0b2062f23d03adcf2d04460ddbfe40d35e7270be9b50a30
+F ext/lsm1/lsm-test/lsmtest_tdb.h 8733eee249b12956a9df8322994b43d19bd8c02ad2e8b0bb5164db4d6ccc1735
 F ext/lsm1/lsm-test/lsmtest_tdb2.cc 99ea7f2dd9c7536c8fb9bdd329e4cfeb76899f3ddf6f48bdd3926e016922b715
-F ext/lsm1/lsm-test/lsmtest_tdb3.c 105ef644ad03c8d7f21f8d1f6514adaf30a7c26f4e21cccb3874b70a14985041
+F ext/lsm1/lsm-test/lsmtest_tdb3.c 91b7f16b7cf7d883552bcf5301c1ce59396d7c3ec73fb7e2c5f673341dfbd0d4
 F ext/lsm1/lsm-test/lsmtest_tdb4.c 47e8bb5eba266472d690fb8264f1855ebdba0ae5a0e541e35fcda61ebf1d277f
 F ext/lsm1/lsm-test/lsmtest_util.c 241622db5a332a09c8e6e7606b617d288a37b557f7d3bce0bb97809f67cc2806
 F ext/lsm1/lsm-test/lsmtest_win32.c 5605aac3bf3852dcc2509fb1d097f5f11556418c1cc9cf0fdd09f9af53c97fb4
@@ -1628,7 +1628,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 ca757c8665e27de884086b2aab2bd1db481e2d12f2afe136ec151bf5a0e65b91
-R 2ca591b3293b9c66e5b306432bda9b33
-U drh
-Z 053a65d3705e0f808b1537da8a1f9e80
+P d1ba200234f40b84327c7fc28c2584ed069da80e97578df71114d1a9ba9c559c
+R d19014236aca302457b221b50f1ef9da
+U dan
+Z 979eda1316a03decf28172c6405a8c04
index efc90297566e3a7a37454be9f688ee73bb026277..b5c089605942465c0ca79740427d7258f801eac6 100644 (file)
@@ -1 +1 @@
-d1ba200234f40b84327c7fc28c2584ed069da80e97578df71114d1a9ba9c559c
\ No newline at end of file
+2bce64c8864b616f9ab0063f64d0ceb2f83e53e110970c6b3b11003cba5c8804
\ No newline at end of file