Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						f698f07ff9 
					 
					
						
						
							
							mdbx: fix operation for unusual small/large system page size.  
						
						... 
						
						
						
						More for https://github.com/erthink/libmdbx/issues/157 
Change-Id: I4f2ed54b50653d0375538b82c48590d1037cd93b 
						
						
					 
					
						2021-01-29 21:19:58 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						6cfac546a1 
					 
					
						
						
							
							mdbx: fix mdbx_env_get_option(MDBX_opt_sync_bytes) to return number of bytes instead of pages.  
						
						... 
						
						
						
						Change-Id: I815887e82946d9644b05549ec253a52b566c8565 
						
						
					 
					
						2021-01-29 19:55:40 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						9c9f6faf38 
					 
					
						
						
							
							mdbx: fix madvise_threshold for large system pages.  
						
						... 
						
						
						
						Fixed https://github.com/erthink/libmdbx/issues/157 
Change-Id: I0e880591d236b6ba96a38d2a3fa953695d9c4df0 
						
						
					 
					
						2021-01-29 04:58:32 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						0a2f2e28b4 
					 
					
						
						
							
							mdbx: fix minor signed/unsigned comparison warnings.  
						
						... 
						
						
						
						Change-Id: Ice6f9759560d5eda514112e838d57e63207a7559 
						
						
					 
					
						2021-01-27 19:23:07 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						62b2e31bf4 
					 
					
						
						
							
							mdbx: fix auto-recovery weak->steady with the same boot-id (don't truncate DB to size from steady-meta).  
						
						... 
						
						
						
						Change-Id: Ib1c7f845bdf49fb9101b01aa868f8567172e5590 
						
						
					 
					
						2021-01-27 16:48:03 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						943bb552a2 
					 
					
						
						
							
							mdbx: fix GC-slot cleanup inside mdbx_update_gc() in extra rare complex cases.  
						
						... 
						
						
						
						More for 5f1b684719https://github.com/erthink/libmdbx/issues/123 
Change-Id: I1b78d6be2babf9ffdd0b77e7b1ee53d1313977bb 
						
						
					 
					
						2021-01-26 10:28:39 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						251eda6fb8 
					 
					
						
						
							
							mdbx: HNY!  
						
						... 
						
						
						
						Change-Id: I86c7028001b349e3d06b837dc8e2f7e60fb3b1a2 
						
						
					 
					
						2021-01-26 07:27:13 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						4fd23c4716 
					 
					
						
						
							
							mdbx: fix minor debug typo.  
						
						... 
						
						
						
						Change-Id: Ieffd3cea351681c1d5ccf93b12953eb0d8abb6b9 
						
						
					 
					
						2021-01-25 23:26:53 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						5f1b684719 
					 
					
						
						
							
							mdbx: fix regression MDBX_KEYEXISTS during mdbx_commit_ex() and overwriting GC records.  
						
						... 
						
						
						
						Fix regression related to https://github.com/erthink/libmdbx/issues/123  and https://github.com/erthink/libmdbx/issues/128 .
Related to https://github.com/erthink/libmdbx/issues/131 .
В lifo-режиме при фиксации транзакции, записи в GC могли быть перезаписаны (с утечкой страниц БД), либо могла возникать ошибка MDBX_KEYEXISTS, по следующему сценарию:
- В истории БД были две транзакции с огромным кол-вом retired pages, после которых в GC остались две соответствующие записи.
- В ходе очередной транзакции первая из огромных GC-записей попадает в переработку и образует огромный reclaimed list.
- При фиксации транзакции производится попытка разбить огромный reclaimed list на чанки размером в одну страницу. Для этого требуется много id для записей, которые в соответствии с lifo должны быть максимально близки к голове GC, т. е. получены путем переработки последних записей GC.
- В ходе переработки последних записей очередь доходит до второй огромной записи, при этом переработка прерывается, ибо иначе reclaimed list переполнится.
- Однако прерывание переработки внутри mdbx_update_gc() трактовалось как отсутствие записей в GC, поэтому список доступных просто добавлялись соответствующие id-шники.
- Если в списке доступных id-шников для помещения в GC были переработанные, то записи с id по всему списку удалялись - тогда вторая большая запись (и возможно предыдущие) удалялись, а содержащиеся в них номера страниц выпадали из оборота.
- Если же в списке доступных id-шников не было переработанных, то чистка не проводилась - тогда при последующая попытка помещения чанков reclaimed list в GC завершалась ошибкой MDBX_KEYEXISTS, которая и возвращалась из mdbx_commit_ex().
Change-Id: I3e5d40ef7950b7476da0513c6836fcba1de74879 
						
						
					 
					
						2021-01-25 23:23:08 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						ee22ffb878 
					 
					
						
						
							
							mdbx-tools: using walked pages count while output statistics if traversal enabled.  
						
						
						
						
					 
					
						2021-01-25 21:35:59 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						a9cb6a6a90 
					 
					
						
						
							
							mdbx: minor fix ASAN controls.  
						
						
						
						
					 
					
						2021-01-25 21:35:59 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						95ae324580 
					 
					
						
						
							
							mdbx: fix reclaimed-list allocation during nested txn start.  
						
						... 
						
						
						
						Change-Id: Ia70e01ed69a001249ce14b4930452a469d04b824 
						
						
					 
					
						2021-01-24 00:49:46 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						4ae2a107bf 
					 
					
						
						
							
							mdbx: add MDBX_opt_loose_limit runtime option.  
						
						... 
						
						
						
						More for https://github.com/erthink/libmdbx/issues/128 
Change-Id: I298bf1eef24575df72615ee07e93f5073405e8e0 
						
						
					 
					
						2021-01-22 23:52:03 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						dc34041600 
					 
					
						
						
							
							mdbx: alter defaults for MDBX_opt_rp_augment_limit and MDBX_opt_txn_dp_limit runtime options.  
						
						... 
						
						
						
						Change-Id: I08cdbfb18089a3fed4b32d931ca4423027a9939f 
						
						
					 
					
						2021-01-22 23:16:21 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						b1a2892038 
					 
					
						
						
							
							mdbx: fix minor Coverity warnings.  
						
						... 
						
						
						
						Change-Id: I0c5d23a36120b8d697887462a6ae86d66a435c3d 
						
						
					 
					
						2021-01-22 20:13:31 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						b82d1d5063 
					 
					
						
						
							
							mdbx: add MDBX_opt_spill_parent4child_denominator runtime option.  
						
						... 
						
						
						
						More for https://github.com/erthink/libmdbx/issues/128 
Change-Id: If1549c3855eb59c107eb115e6dbca515e81644f9 
						
						
					 
					
						2021-01-22 18:18:52 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						56aaad03bc 
					 
					
						
						
							
							mdbx: add MDBX_opt_spill_max_denominator and MDBX_opt_spill_min_denominator runtime options.  
						
						... 
						
						
						
						More for https://github.com/erthink/libmdbx/issues/128 
Change-Id: I6b1b00e30ac11e9c2e3d3d3a29cc73079b41d539 
						
						
					 
					
						2021-01-22 17:25:44 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						e0d4eaf819 
					 
					
						
						
							
							mdbx: minor refine mdbx_txn_merge().  
						
						
						
						
					 
					
						2021-01-21 22:45:34 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						1d58ad6d9b 
					 
					
						
						
							
							mdbx: fix Valgrind/ASAN controls.  
						
						... 
						
						
						
						Change-Id: Idf526cbdb8ce8e43600efebbd1d12a8306a58184 
						
						
					 
					
						2021-01-21 22:45:28 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						58e4eda1c6 
					 
					
						
						
							
							mdbx: fix spilled page list memleak.  
						
						... 
						
						
						
						Change-Id: I8b3b3664711943b0809be7bcc6580aafd4e4c286 
						
						
					 
					
						2021-01-21 22:45:28 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						d26ae6875b 
					 
					
						
						
							
							mdbx: fix assertion to avoid false-positive UB detection by CLANG/LLVM.  
						
						... 
						
						
						
						Assume this resolve https://github.com/erthink/libmdbx/issues/153 
Change-Id: I02ceba1063a338b6dedf17629b51b3466358b0b8 
						
						
					 
					
						2021-01-21 22:45:28 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						afe93137fc 
					 
					
						
						
							
							mdbx: fix minor assertions.  
						
						... 
						
						
						
						Change-Id: Ib3e2dcb2cb419f41717351b2ac2264ffed906014 
						
						
					 
					
						2021-01-21 22:45:28 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						bed14e60c2 
					 
					
						
						
							
							mdbx-cmake: add -fsanitize-undefined-trap-on-error to compile flags and ENABLE_UBSAN to config.h.  
						
						... 
						
						
						
						Change-Id: Ic18c0d59ccf32f9783a44de456893fbc8a0a7d32 
						
						
					 
					
						2021-01-21 22:45:23 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						730b9ea3fd 
					 
					
						
						
							
							mdbx: add MDBX_PNL_ASCENDING build option and dependency for MDBX_DATA_MAGIC.  
						
						... 
						
						
						
						Change-Id: I55283240b1dbbbc093927be5eaa5d42b87294f72 
						
						
					 
					
						2021-01-20 23:31:14 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						6bd0277020 
					 
					
						
						
							
							mdbx: minor fix mdbx_cursor_close().  
						
						... 
						
						
						
						Avoids reference to txn which could be already freed.
Change-Id: I4e1fadd9786ced1533bb8468d30e013455601228 
						
						
					 
					
						2021-01-20 09:55:11 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						7d09de489d 
					 
					
						
						
							
							mdbx: fix minor MSVC warnings.  
						
						... 
						
						
						
						Change-Id: I633b8847698dca25b6c395216744e157f6fb240d 
						
						
					 
					
						2021-01-20 09:55:11 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						0d09c2cda9 
					 
					
						
						
							
							mdbx: avoid overflow for dirty & leftover space inside mdbx_txn_info().  
						
						... 
						
						
						
						Change-Id: I36f4d62881e68f1bfe0d11fde2e849cdf1408ed2 
						
						
					 
					
						2021-01-20 02:07:44 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						42670aa64a 
					 
					
						
						
							
							mdbx: fix MSVC warnings aroung size_t and unsigned conversion.  
						
						... 
						
						
						
						Change-Id: I32bd3ee4fe02ac62cc121f33b2f84bf63c81cb75 
						
						
					 
					
						2021-01-20 01:39:21 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						6d7daf6401 
					 
					
						
						
							
							mdbx: fix audit for complex nested txn cases.  
						
						... 
						
						
						
						Change-Id: I2419cbe0e8d3167e77ac99f397b97edb22717833 
						
						
					 
					
						2021-01-19 23:53:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						f28da7c9e3 
					 
					
						
						
							
							mdbx: rework spilling, page-lists, commit & abort for nested transactions, etc (squashed).  
						
						... 
						
						
						
						Change-Id: I09e4744586342aeae4efcfb71f41a3248ee47758 
						
						
					 
					
						2021-01-19 23:53:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						7bae2a7cd2 
					 
					
						
						
							
							mdbx: provide MDBX_ENABLE_REFUND build option.  
						
						... 
						
						
						
						Change-Id: I0e4c94a22f3b0957176431709604a7595f85252a 
						
						
					 
					
						2021-01-19 23:53:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						7183f62e13 
					 
					
						
						
							
							mdbx: rework DBI_DIRTY and MDBX_TXN_DIRTY propagation.  
						
						... 
						
						
						
						Change-Id: Ief12ee320ce7c7142632bd1142d847aac314db0b 
						
						
					 
					
						2021-01-19 23:53:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						4afc30c79f 
					 
					
						
						
							
							mdbx: rework mdbx_page_alloc().  
						
						... 
						
						
						
						Change-Id: I5c6e2ef23abf79096dd699f9dfbecf97bfc4fe37 
						
						
					 
					
						2021-01-19 23:53:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						c6a8f0f9af 
					 
					
						
						
							
							mdbx-tools: minor refine mdbx_chk error output.  
						
						... 
						
						
						
						Change-Id: I4692a46c3e007fa2910ef67ec7fe21c7285e92eb 
						
						
					 
					
						2021-01-19 23:53:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						966d7027a3 
					 
					
						
						
							
							mdbx: minor fix bad_page() debug output.  
						
						... 
						
						
						
						Change-Id: I14531fdceaad054ad8c45bf9042fee73de1f9a36 
						
						
					 
					
						2021-01-19 23:53:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						dfc92d9f96 
					 
					
						
						
							
							mdbx: minor fix mdbx_page_new() debug output.  
						
						... 
						
						
						
						Change-Id: If60f972cc3271ca91feea923fb4f4be48d488b22 
						
						
					 
					
						2021-01-19 23:53:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						ac0f4e14a8 
					 
					
						
						
							
							mdbx: minor fix mdbx_page_new() debug output.  
						
						... 
						
						
						
						Change-Id: I2f386ec6276cab404607b5c3a79d8028d73dad62 
						
						
					 
					
						2021-01-19 23:53:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						ca597f4314 
					 
					
						
						
							
							mdbx: fix mdbx_page_flush() for possibility of memleack.  
						
						... 
						
						
						
						Change-Id: Ieab0c98fcd1020d49cce73234125ceb11a8f0b64 
						
						
					 
					
						2021-01-19 23:53:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						c1fef9b51d 
					 
					
						
						
							
							mdbx: fix mdbx_update_gc() for retired page list change case.  
						
						... 
						
						
						
						Change-Id: Ic454262edcda8881182a15d6a521b90990e5551d 
						
						
					 
					
						2021-01-19 23:53:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						b8bb4b4cc4 
					 
					
						
						
							
							mdbx: fix propagation child txn DBI-state to parent.  
						
						... 
						
						
						
						Change-Id: I7d92fa99131a937af1a1a75b38af57bc6787ab37 
						
						
					 
					
						2021-01-19 23:53:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						4425fb0b83 
					 
					
						
						
							
							mdbx: minor refine flags-reset inside mdbx_page_flush().  
						
						... 
						
						
						
						This produces little bit less code for most architectures.
Change-Id: I0440ec7b465ae2f12a8b09b0226f2c42bc52f7de 
						
						
					 
					
						2021-01-19 23:53:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						5bb254e629 
					 
					
						
						
							
							mdbx: allow fastpath-commit for pure nested txns with parent-spilled pages.  
						
						... 
						
						
						
						Change-Id: I471fd5e057c323e3701158761631e0a9999bf54a 
						
						
					 
					
						2021-01-19 23:53:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						8fce97dca9 
					 
					
						
						
							
							mdbx: fix mdbx_cursors_eot().  
						
						... 
						
						
						
						Change-Id: I6021ff019f25110db96f9ef351d31a1f48b76c18 
						
						
					 
					
						2021-01-19 23:53:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						f6ff075335 
					 
					
						
						
							
							mdbx: rework/speedup spill-pages list.  
						
						... 
						
						
						
						Change-Id: I97e63f8d4c82ae682e898e9b04edceb0b01d82a5 
						
						
					 
					
						2021-01-19 23:53:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						d64b81c673 
					 
					
						
						
							
							mdbx: remove senseless assertions from mdbx_refund_loose().  
						
						... 
						
						
						
						Change-Id: I028ae6bafb9358b61287fc0201c246baf160ca03 
						
						
					 
					
						2021-01-19 23:53:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						0ab263b329 
					 
					
						
						
							
							mdbx: purge deleted spilled pagenums on refund.  
						
						... 
						
						
						
						Change-Id: I325fbad82cbecb71c35dd1edd1a2abccb8108541 
						
						
					 
					
						2021-01-19 23:53:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						7bf147d8c2 
					 
					
						
						
							
							mdbx: fix assertion inside mdbx_txn_commit_ex() for nested spilled txn.  
						
						... 
						
						
						
						Change-Id: I54b37ea1b9591bdec9d8bd16d0f57280a1f9ee77 
						
						
					 
					
						2021-01-19 23:53:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						6ef7b2f588 
					 
					
						
						
							
							mdbx: fix assertion inside mdbx_txn_begin_ex() for nested txn with spilled parent.  
						
						... 
						
						
						
						Change-Id: Ie1f3cd3df6beb296a7bbdc72b39c1c4cb9105083 
						
						
					 
					
						2021-01-19 23:53:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						f0d79df9b9 
					 
					
						
						
							
							mdbx: fix mdbx_page_flush().  
						
						... 
						
						
						
						Change-Id: I467c2367f2e99ae50996d0859ae22f70c9649a2d 
						
						
					 
					
						2021-01-19 23:53:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						05958a708e 
					 
					
						
						
							
							mdbx: fix minor/potential mem-page leak inside mdbx_page_unspill().  
						
						... 
						
						
						
						Change-Id: I4398a4d81eda494e4de9d62d81e3936c6357b744 
						
						
					 
					
						2021-01-19 23:53:16 +03:00