mirror of
				https://github.com/isar/libmdbx.git
				synced 2025-10-31 03:29:01 +08:00 
			
		
		
		
	mdbx: fix mdbx_update_gc() for retired page list change case.
				
					
				
			Change-Id: Ic454262edcda8881182a15d6a521b90990e5551d
This commit is contained in:
		| @@ -7615,7 +7615,7 @@ retry_noaccount: | ||||
|                          txn->mt_txnid, txn->mt_dbs[FREE_DBI].md_root, i); | ||||
|         for (; i; i--) | ||||
|           mdbx_debug_extra_print(" %" PRIaPGNO, txn->tw.retired_pages[i]); | ||||
|         mdbx_debug_extra_print("%s", "\n"); | ||||
|         mdbx_debug_extra_print("%s\n", "."); | ||||
|       } | ||||
|       if (unlikely(amount != MDBX_PNL_SIZE(txn->tw.reclaimed_pglist))) { | ||||
|         mdbx_trace("%s.reclaimed-list changed %u -> %u, retry", dbg_prefix_mode, | ||||
| @@ -7988,6 +7988,13 @@ retry_noaccount: | ||||
|         mdbx_notice("%s", "** restart: reclaimed-slots changed"); | ||||
|         goto retry; | ||||
|       } | ||||
|       if (unlikely(retired_stored != MDBX_PNL_SIZE(txn->tw.retired_pages))) { | ||||
|         mdbx_tassert(txn, | ||||
|                      retired_stored < MDBX_PNL_SIZE(txn->tw.retired_pages)); | ||||
|         mdbx_notice("** restart: retired-list growth (%u -> %u)", | ||||
|                     retired_stored, MDBX_PNL_SIZE(txn->tw.retired_pages)); | ||||
|         goto retry; | ||||
|       } | ||||
|  | ||||
|       pgno_t *dst = data.iov_base; | ||||
|       *dst++ = chunk; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user