From: drh Date: Fri, 22 May 2020 18:09:51 +0000 (+0000) Subject: Merge the 3.32.0 release into the begin-concurrent branch. X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fcf3e8076dcd0055890695788baba6cfff0e7564;p=thirdparty%2Fsqlite.git Merge the 3.32.0 release into the begin-concurrent branch. FossilOrigin-Name: 79ad4ea2c8e7f4c90983d78a9a6ebb6a70a057124d708076a0bbf0db8696cdaa --- fcf3e8076dcd0055890695788baba6cfff0e7564 diff --cc manifest index 7672678b0d,e020405f88..3a7c131186 --- a/manifest +++ b/manifest @@@ -1,5 -1,5 +1,5 @@@ - C Merge\slatest\strunk\schanges\sinto\sthis\sbranch. - D 2020-05-18T15:41:31.047 -C Version\s3.32.0 -D 2020-05-22T17:46:16.912 ++C Merge\sthe\s3.32.0\srelease\sinto\sthe\sbegin-concurrent\sbranch. ++D 2020-05-22T18:09:51.467 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@@ -522,12 -517,12 +522,12 @@@ F src/os.c 669cc3839cc35d20f81faf0be1ab F src/os.h 48388821692e87da174ea198bf96b1b2d9d83be5dfc908f673ee21fafbe0d432 F src/os_common.h b2f4707a603e36811d9b1a13278bffd757857b85 F src/os_setup.h 0dbaea40a7d36bf311613d31342e0b99e2536586 -F src/os_unix.c 13f983da988b6460ef3c4c22099c67ab0938291e543644ac4d99eccc8ba604f1 +F src/os_unix.c 550f4daf483619ef8357d98e9caa7cc613d13369ed8ffef17994d5020c12879d - F src/os_win.c 317718e8f04c449e7d9e1eacac0d14e7508e4a77c9d4c3cb7382299bd24561b7 + F src/os_win.c e832e21e830c1f9409c9c54053939b6dcb14c1e92128b756204ce1e3e331d678 F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a -F src/pager.c 96436cb1920074d4ade120a1a8a9d0ae3f52df06651e21b7eccc5eae2f02b111 -F src/pager.h 8d1dc9a2c3fc5eb6eeed75f48a076f425e77706f8935f05817fa05a308f587b5 -F src/parse.y c8eff38606f443d5ba245263fa7abc05e4116d95656e050c4b78e9bfbf931add +F src/pager.c 779602d1afdf69599d7537217f3b8fe136e76fce4576694d51bbae8d8304cb6e +F src/pager.h 7fed31537daa2593ad18df5f4e00b2988a2e25d74de2ab525500a6e26673687d +F src/parse.y 0724899be1d00dc438d0acadbfc2baddd4132a47268f25676ac79d56c1ee7351 F src/pcache.c 385ff064bca69789d199a98e2169445dc16e4291fa807babd61d4890c3b34177 F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586 F src/pcache1.c 6596e10baf3d8f84cc1585d226cf1ab26564a5f5caf85a15757a281ff977d51a @@@ -607,10 -602,10 +607,10 @@@ F src/treeview.c 82c6391a3ba76215d4185f F src/trigger.c 4ada1037cc99777f647a882cdacbd1a4deb6567b69daf02946286401b88cdc04 F src/update.c 3199098455830fc2d8c8fc4ae3ec2ea513eef64339ae9a7048db62b21169bc7a F src/upsert.c 2920de71b20f04fe25eb00b655d086f0ba60ea133c59d7fa3325c49838818e78 - F src/utf.c 95fb6e03a5ca679045c5adccd05380f0addccabef5911abddcb06af069500ab7 + F src/utf.c d7a61c1dfdac3eb091d43341a674032dca5a34e122f78ef0b5bd2d5a31967dde F src/util.c 3b6cedf7a0c69bd6e1acce832873952d416212d6293b18d03064e07d7a9b5118 -F src/vacuum.c de9780b89fa4ee74c3534f60b94820e3179aca759ffc1338ee53cb4ea7693dd3 -F src/vdbe.c e3dba0dee25bc92e871c13cac655260912b3be4abcc85b439259c9934b208da3 +F src/vacuum.c 28f9a2430bf250c04bbf40a70d749e8c081c007b99602df61717d35b29b817ab +F src/vdbe.c 6c2fdb92f247c4174b00961142de873b21444362b0e27e579ee9e1eda2b18adc F src/vdbe.h 07b8c636a87df8b6e58f29d6badd7f10d5844353deff1d7c88ed1c2bfe3bbd35 F src/vdbeInt.h 571413068b5ac07e2ed8ca7a02fa529622fd5455ae6981498376e5e492d2e5ef F src/vdbeapi.c e467b75a710ea099f8d2d022abf601d2ccd05e28f63b44b12d93000b6a75f4a8 @@@ -622,8 -617,8 +622,8 @@@ F src/vdbetrace.c fa3bf238002f0bbbdfb66 F src/vdbevtab.c ee5b4c902fdda2230f9503ac7b84c6d614c91e8f6f4dc1633e2e8dfef8ffb144 F src/vtab.c 7b452592ed2ee95dedb1f323d557cebede5a6f3b4558b21a5dca527e6ae9b12c F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9 - F src/wal.c 64575942847dcf6738a7495d7cb3cf6362d11061e02efc24619d6dc857065c8b -F src/wal.c 17ea0a319d3ead17ef3b16aa30f10f2626056893effea7e609a20a6661ffec1b -F src/wal.h c3aa7825bfa2fe0d85bef2db94655f99870a285778baa36307c0a16da32b226a ++F src/wal.c 6eabe9d187bb2948e66a9a2c47ef23807edcc9be47f5c487f674924f8da965d0 +F src/wal.h 7ffe787437f20a098af347011967a6d3bb8e5c3dc645e6be59eff44d2b2c5297 F src/walker.c 7c429c694abd12413a5c17aec9f47cfe9eba6807e6b0a32df883e8e3a14835ed F src/where.c 9546c82056e8cdb27291f98cf1adca5d271240b399bb97b32f77fc2bea6146c9 F src/whereInt.h 6b874aa15f94e43a2cec1080be64d955b04deeafeac90ffb5d6975c0d511be3c @@@ -1880,7 -1866,10 +1880,7 @@@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a9 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 - P 92f71a88c4aea990710b94f6f35c8c9a02cfdbc2f5ae01cbf62c40d2d35d6c5b 69e149f76853d196c8855fedfc98848b60fb116ac36bc08824b1a122469f8ece - R 2e5f0444a93b64a3f5a86b35ce7e88f9 - U dan - Z 4c7736516308fe5db5aed5dbb5d6d1a9 -P ce36b6d1331edba5a921fef32553e2470a79bdb1f62d2cfd81190691c83d5b06 -R b5a877f3e2a7ab538bc565ffd2aae787 -T +bgcolor * #d0c0ff -T +sym-release * -T +sym-version-3.32.0 * ++P 9e4a7b3ed8c699c59524cc3c0d20c05f8e33e220cfa901f3b9300f75a7276673 5998789c9c744bce92e4cff7636bba800a75574243d6977e1fc8281e360f8d5a ++R 7c0fd20907d89d4097cc874f1911bd1e + U drh -Z 4af13806b6e302c99aeddae94a54c013 ++Z 55ef1af90713530210965594653ec2e5 diff --cc manifest.uuid index adc70d4a45,d9fa627cdb..f5c6b937d4 --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - 9e4a7b3ed8c699c59524cc3c0d20c05f8e33e220cfa901f3b9300f75a7276673 -5998789c9c744bce92e4cff7636bba800a75574243d6977e1fc8281e360f8d5a ++79ad4ea2c8e7f4c90983d78a9a6ebb6a70a057124d708076a0bbf0db8696cdaa diff --cc src/wal.c index 887fb266a5,63dee82330..041dfe974d --- a/src/wal.c +++ b/src/wal.c @@@ -2181,33 -2194,6 +2180,33 @@@ static int walIndexLoadHdr(Wal *pWal, W return 1; /* Checksum does not match */ } + return 0; +} + +/* +** Try to read the wal-index header. Return 0 on success and 1 if +** there is a problem. +** +** The wal-index is in shared memory. Another thread or process might +** be writing the header at the same time this procedure is trying to +** read it, which might result in inconsistency. A dirty read is detected +** by verifying that both copies of the header are the same and also by +** a checksum on the header. +** +** If and only if the read is consistent and the header is different from +** pWal->hdr, then pWal->hdr is updated to the content of the new header +** and *pChanged is set to 1. +** +** If the checksum cannot be verified return non-zero. If the header +** is read successfully and the checksum verified, return zero. +*/ - static int walIndexTryHdr(Wal *pWal, int *pChanged){ ++static SQLITE_NO_TSAN int walIndexTryHdr(Wal *pWal, int *pChanged){ + WalIndexHdr h1; /* Copy of the header content */ + + if( walIndexLoadHdr(pWal, &h1) ){ + return 1; + } + if( memcmp(&pWal->hdr, &h1, sizeof(WalIndexHdr)) ){ *pChanged = 1; memcpy(&pWal->hdr, &h1, sizeof(WalIndexHdr));