From 1d40237bc8b1c6ec71dfe763329e1aceacf022fa Mon Sep 17 00:00:00 2001 From: drh <> Date: Fri, 12 Apr 2024 13:05:36 +0000 Subject: [PATCH] Add assert() statements to help verify the overflow page cache. FossilOrigin-Name: 0ebc65481f4a3e7974558adea51c620a025bc0e76c0a139e549b56c5abe0cabb --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/btree.c | 4 ++++ 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/manifest b/manifest index 070fa270cd..17af620303 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C New\sassert()\sstatements\sto\sverify\sthe\scorrectness\sof\sthe\sBTCF_AtLast\sflag\non\sbtree\scursors. -D 2024-04-12T12:32:09.806 +C Add\sassert()\sstatements\sto\shelp\sverify\sthe\soverflow\spage\scache. +D 2024-04-12T13:05:36.039 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -689,7 +689,7 @@ F src/auth.c 19b7ccacae3dfba23fc6f1d0af68134fa216e9040e53b0681b4715445ea030b4 F src/backup.c 5c97e8023aab1ce14a42387eb3ae00ba5a0644569e3476f38661fa6f824c3523 F src/bitvec.c 9eac5f42c11914d5ef00a75605bb205e934f435c579687f985f1f8b0995c8645 F src/btmutex.c 79a43670447eacc651519a429f6ece9fd638563cf95b469d6891185ddae2b522 -F src/btree.c b489280734e3c085774ecc86a07f5ad5b805d86e2cb28650c3b3e141673993d6 +F src/btree.c 8c2d32661d9b3333b5e2192a9baf0f34aaf50224c7e0130bdb96a1e5dee9009c F src/btree.h 55066f513eb095db935169dab1dc2f7c7a747ef223c533f5d4ad4dfed346cbd0 F src/btreeInt.h 98aadb6dcb77b012cab2574d6a728fad56b337fc946839b9898c4b4c969e30b6 F src/build.c 02f5b25ca854c83b5015cb02b8c9ab236c60b1795528675aee8a5070e58da52a @@ -2184,8 +2184,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 0cf4d835dae260b01178e94e77be6b8a130f2031e898ef79ceba8df6c2bba58f -R 3352218b957f71135e62b28b93e477b6 +P 4efecd6167de71500c90b63155eba1b8567c90e9d1e282fbea54130f9ee21813 +R 733b2640d8dc44517728193a890baeff U drh -Z 55f6b761ddb19ac9081b9562cfbe54ea +Z 6194d89088ab528754e159fb92573073 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 01cbdd4cd6..621be8e4f9 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -4efecd6167de71500c90b63155eba1b8567c90e9d1e282fbea54130f9ee21813 \ No newline at end of file +0ebc65481f4a3e7974558adea51c620a025bc0e76c0a139e549b56c5abe0cabb \ No newline at end of file diff --git a/src/btree.c b/src/btree.c index 91c9e4fb57..756ec942c3 100644 --- a/src/btree.c +++ b/src/btree.c @@ -5143,6 +5143,10 @@ static int accessPayload( memset(pCur->aOverflow, 0, nOvfl*sizeof(Pgno)); pCur->curFlags |= BTCF_ValidOvfl; }else{ + /* Sanity check the validity of the overflow page cache */ + assert( pCur->aOverflow[0]==nextPage || pCur->aOverflow[0]==0 ); + assert( pCur->aOverflow[0]!=0 || pCur->aOverflow[offset/ovflSize]==0 ); + /* If the overflow page-list cache has been allocated and the ** entry for the first required overflow page is valid, skip ** directly to it. -- 2.47.2