mariadb/storage/innobase/include
Kristian Nielsen f8f5ed2280 Revert: MDEV-22351 InnoDB may recover wrong information after RESET MASTER
This commit can cause the wrong (old) binlog position to be recovered by
mariabackup --prepare. It implements that the value of the FIL_PAGE_LSN is
compared to determine which binlog position is the last one and should be
recoved. However, it is not guaranteed that the FIL_PAGE_LSN order matches the
commit order, as is assumed by the code. This is because the page LSN could be
modified by an unrelated update of the page after the commit.

In one example, the recovery first encountered this in trx_rseg_mem_restore():

  lsn=27282754  binlog position (./master-bin.000001, 472908)

and then later:

  lsn=27282699  binlog position (./master-bin.000001, 477164)

The last one 477164 is the correct position. However, because the LSN
encountered for the first one is higher, that position is recovered instead.
This results in too old binlog position, and a newly provisioned slave will
start replicating too early and get duplicate key error or similar.

Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
2023-11-03 09:13:51 +01:00
..
btr0btr.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
btr0btr.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
btr0bulk.h Merge 10.3 into 10.4 2021-04-14 10:33:59 +03:00
btr0cur.h Merge 10.3 into 10.4 2022-10-05 20:30:57 +03:00
btr0cur.inl Merge branch '10.2' into 10.3 2022-01-29 15:41:05 +01:00
btr0defragment.h Merge 10.3 into 10.4 2020-10-01 13:41:36 +03:00
btr0pcur.h MDEV-27927 row_sel_try_search_shortcut_for_mysql() does not latch a page, violating read view isolation 2022-10-05 17:35:21 +03:00
btr0pcur.inl MDEV-27927 row_sel_try_search_shortcut_for_mysql() does not latch a page, violating read view isolation 2022-10-05 17:35:21 +03:00
btr0scrub.h MDEV-25998 fixup: Avoid a hang 2021-07-27 10:44:01 +03:00
btr0sea.h MDEV-28462 Race condition between instant alter and AHI access 2022-11-22 15:24:44 +05:30
btr0sea.inl MDEV-27700 ASAN: Heap_use_after_free in btr_search_drop_page_hash_index() 2022-08-22 16:29:46 +05:30
btr0types.h Merge 10.3 into 10.4 2020-03-30 14:50:23 +03:00
buf0block_hint.h MDEV-23693 Failing assertion: my_atomic_load32_explicit(&lock->lock_word, MY_MEMORY_ORDER_RELAXED) == X_LOCK_DECR 2020-10-27 18:30:00 +05:30
buf0buddy.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
buf0buddy.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
buf0buf.h Apply clang-tidy to remove empty constructors / destructors 2023-02-09 16:09:08 +02:00
buf0buf.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
buf0checksum.h
buf0dblwr.h
buf0dump.h
buf0flu.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
buf0flu.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
buf0lru.h Merge 10.2 into 10.3 2020-05-15 19:11:57 +03:00
buf0rea.h
buf0types.h Merge 10.3 into 10.4 2020-03-30 14:50:23 +03:00
data0data.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
data0data.inl Merge branch '10.2' into 10.3 2022-01-29 15:41:05 +01:00
data0type.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
data0type.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
data0types.h
db0err.h Merge 10.3 into 10.4 2022-06-09 11:53:46 +03:00
dict0boot.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
dict0boot.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
dict0crea.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
dict0crea.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
dict0defrag_bg.h
dict0dict.h Merge 10.3 into 10.4 2022-06-27 10:14:37 +03:00
dict0dict.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
dict0load.h Merge 10.3 into 10.4 2020-03-16 16:24:36 +02:00
dict0mem.h Merge 10.3 into 10.4 2023-01-03 16:10:02 +02:00
dict0mem.inl Merge branch '10.2' into 10.3 2022-01-29 15:41:05 +01:00
dict0pagecompress.h MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
dict0pagecompress.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
dict0priv.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
dict0priv.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
dict0stats.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
dict0stats.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
dict0stats_bg.h
dict0types.h Apply clang-tidy to remove empty constructors / destructors 2023-02-09 16:09:08 +02:00
dyn0buf.h MDEV-24188: Merge 10.2 into 10.3 2020-11-13 20:41:48 +02:00
dyn0types.h
eval0eval.h MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
eval0eval.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
eval0proc.h MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
eval0proc.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
fil0crypt.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
fil0crypt.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
fil0fil.h Merge 10.3 into 10.4 2022-09-20 12:38:25 +03:00
fil0fil.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
fil0pagecompress.h Merge 10.3 into 10.4 2021-08-18 16:51:52 +03:00
fsp0file.h MDEV-19951 use override keyword across the InnoDB 2019-07-04 16:28:27 +03:00
fsp0fsp.h Merge 10.3 into 10.4 2022-12-13 11:37:33 +02:00
fsp0fsp.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
fsp0pagecompress.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
fsp0pagecompress.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
fsp0space.h
fsp0sysspace.h MDEV-19951 use override keyword across the InnoDB 2019-07-04 16:28:27 +03:00
fsp0types.h
fts0ast.h Merge 10.1 into 10.2 2020-10-21 14:02:04 +03:00
fts0blex.h
fts0fts.h Merge 10.3 into 10.4 2023-01-03 16:10:02 +02:00
fts0opt.h Merge 10.1 to 10.2 2019-10-25 17:33:39 +03:00
fts0pars.h
fts0plugin.h
fts0priv.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
fts0priv.inl MDEV-18867 fixup: Remove DBUG injection 2023-11-02 15:27:52 +02:00
fts0tlex.h
fts0tokenize.h
fts0types.h MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
fts0types.inl Merge branch '10.2' into 10.3 2022-01-29 15:41:05 +01:00
fts0vlc.h MDEV-19522 InnoDB commit fails when FTS_DOC_ID value is greater than 4294967295 2021-10-21 12:56:59 +03:00
fut0fut.h MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
fut0lst.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
fut0lst.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
gis0geo.h InnoDB: Remove unused get_wkb_of_default_point() 2019-12-03 07:45:04 +02:00
gis0rtree.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
gis0rtree.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
gis0type.h Merge 10.3 into 10.4 2020-05-13 12:52:57 +03:00
ha0ha.h MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
ha0ha.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
ha0storage.h MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
ha0storage.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
ha_prototypes.h MDEV-23328 Server hang due to Galera lock conflict resolution 2021-10-29 10:00:17 +03:00
handler0alter.h Merge branch '10.2' into 10.3 2020-05-04 16:47:11 +02:00
hash0hash.h MDEV-27992 DELETE fails to delete record after blocking is released 2022-03-07 16:42:05 +03:00
hash0hash.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
ib0mutex.h Apply clang-tidy to remove empty constructors / destructors 2023-02-09 16:09:08 +02:00
ibuf0ibuf.h Merge 10.3 into 10.4 2022-11-08 16:04:01 +02:00
ibuf0ibuf.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
ibuf0types.h
lock0iter.h
lock0lock.h MDEV-28422 Page split breaks a gap lock 2022-04-27 13:38:08 +03:00
lock0lock.inl MDEV-27992 DELETE fails to delete record after blocking is released 2022-03-07 16:42:05 +03:00
lock0prdt.h
lock0priv.h MDEV-27992 DELETE fails to delete record after blocking is released 2022-03-07 16:42:05 +03:00
lock0priv.inl MDEV-27992 DELETE fails to delete record after blocking is released 2022-03-07 16:42:05 +03:00
lock0types.h MDEV-10962 Deadlock with 3 concurrent DELETEs by unique key 2023-07-06 15:06:10 +03:00
log0crypt.h Merge 10.3 into 10.4 2019-07-02 21:44:58 +03:00
log0log.h MDEV-18200 MariaBackup full backup failed with InnoDB: Failing assertion: success 2023-09-26 08:55:52 +10:00
log0log.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
log0recv.h Merge 10.3 into 10.4 2020-07-31 18:09:32 +03:00
log0types.h
mach0data.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
mach0data.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
mem0mem.h Merge branch '10.2' into 10.3 2022-01-29 15:41:05 +01:00
mem0mem.inl Merge branch '10.2' into 10.3 2022-01-29 15:41:05 +01:00
mtr0log.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
mtr0log.inl Merge branch '10.2' into 10.3 2022-01-29 15:41:05 +01:00
mtr0mtr.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
mtr0mtr.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
mtr0types.h Merge 10.3 into 10.4 2020-07-20 15:34:59 +03:00
os0api.h
os0event.h
os0file.h MDEV-30968 mariadb-backup does not copy Aria logs if aria_log_dir_path is used 2023-04-21 19:08:35 +04:00
os0file.inl Merge branch '10.2' into 10.3 2022-01-29 15:41:05 +01:00
os0proc.h Merge 10.3 into 10.4 2022-09-20 12:38:25 +03:00
os0thread.h
page0cur.h Merge branch '10.2' into 10.3 2022-01-29 15:41:05 +01:00
page0cur.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
page0page.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
page0page.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
page0types.h Merge 10.3 into 10.4 2020-05-05 20:33:10 +03:00
page0zip.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
page0zip.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
pars0grm.h MDEV-21254 Remove unused keywords from the InnoDB SQL parser 2019-12-09 12:32:04 +02:00
pars0opt.h
pars0pars.h Merge 10.2 into 10.3 2021-08-18 12:26:58 +03:00
pars0sym.h
pars0types.h
que0que.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
que0que.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
que0types.h
read0types.h
rem0cmp.h MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
rem0cmp.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
rem0rec.h Apply clang-tidy to remove empty constructors / destructors 2023-02-09 16:09:08 +02:00
rem0rec.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
rem0types.h Merge branch '10.2' into 10.3 2020-05-04 16:47:11 +02:00
row0ext.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
row0ext.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
row0ftsort.h MDEV-32578 row_merge_fts_doc_tokenize() handles parser plugin inconsistently 2023-10-27 13:13:49 +03:00
row0import.h
row0ins.h MDEV-25004 Missing row in FTS_DOC_ID_INDEX during DELETE HISTORY 2022-12-27 00:02:02 +03:00
row0log.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
row0log.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
row0merge.h Merge 10.2 into 10.3 2021-04-13 10:26:01 +03:00
row0mysql.h Apply clang-tidy to remove empty constructors / destructors 2023-02-09 16:09:08 +02:00
row0purge.h
row0quiesce.h
row0row.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
row0row.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
row0sel.h Merge branch '10.2' into 10.3 2022-01-29 15:41:05 +01:00
row0sel.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
row0types.h Merge 10.3 into 10.4 2020-03-30 14:50:23 +03:00
row0uins.h
row0umod.h
row0undo.h
row0upd.h Merge 10.3 into 10.4 2023-01-03 16:10:02 +02:00
row0upd.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
row0vers.h Merge branch '10.2' into 10.3 2020-05-04 16:47:11 +02:00
srv0conc.h
srv0mon.h Merge branch '10.3' into 10.4 2022-05-18 01:25:30 +02:00
srv0mon.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
srv0srv.h MDEV-29050 mariabackup issues error messages during InnoDB tablespaces export on partial backup preparing 2023-03-27 20:15:10 +03:00
srv0start.h Merge 10.2 into 10.3 2020-06-05 16:51:26 +03:00
sync0arr.h Merge branch '10.2' into 10.3 2022-01-29 15:41:05 +01:00
sync0arr.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
sync0debug.h
sync0policy.h Merge branch '10.2' into 10.3 2022-01-29 15:41:05 +01:00
sync0rw.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
sync0rw.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
sync0sync.h Merge 10.3 into 10.4 2022-04-21 11:33:59 +03:00
sync0types.h Apply clang-tidy to remove empty constructors / destructors 2023-02-09 16:09:08 +02:00
trx0i_s.h Merge 10.2 into 10.3 2021-07-27 10:47:17 +03:00
trx0purge.h Apply clang-tidy to remove empty constructors / destructors 2023-02-09 16:09:08 +02:00
trx0purge.inl Merge branch '10.2' into 10.3 2022-01-29 15:41:05 +01:00
trx0rec.h MDEV-29666 InnoDB fails to purge secondary index records when indexed virtual columns exist 2022-10-05 09:30:33 +03:00
trx0rec.inl Merge branch '10.2' into 10.3 2022-01-29 15:41:05 +01:00
trx0roll.h MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
trx0rseg.h Merge branch '10.2' into 10.3 2022-01-29 15:41:05 +01:00
trx0rseg.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
trx0sys.h Revert: MDEV-22351 InnoDB may recover wrong information after RESET MASTER 2023-11-03 09:13:51 +01:00
trx0trx.h Merge 10.3 into 10.4 2022-03-07 16:46:00 +03:00
trx0trx.inl Merge branch '10.2' into 10.3 2022-01-29 15:41:05 +01:00
trx0types.h Merge 10.2 into 10.3 2021-06-21 09:07:40 +03:00
trx0undo.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
trx0undo.inl Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
trx0xa.h
univ.i Merge 10.3 into 10.4 2022-09-20 12:38:25 +03:00
ut0byte.h MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
ut0byte.inl Merge branch '10.2' into 10.3 2022-01-29 15:41:05 +01:00
ut0counter.h
ut0crc32.h
ut0dbg.h Merge 10.2 into 10.3 2019-05-29 11:32:46 +03:00
ut0list.h MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
ut0list.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
ut0lst.h Do not use C++11 before MariaDB 10.4 2022-10-14 11:54:05 +03:00
ut0mem.h MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
ut0mem.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
ut0mutex.h Apply clang-tidy to remove empty constructors / destructors 2023-02-09 16:09:08 +02:00
ut0new.h Apply clang-tidy to remove empty constructors / destructors 2023-02-09 16:09:08 +02:00
ut0pool.h Merge 10.2 into 10.3 2020-08-21 19:18:34 +03:00
ut0rbt.h
ut0rnd.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
ut0rnd.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
ut0sort.h
ut0stage.h
ut0ut.h Apply clang-tidy to remove empty constructors / destructors 2023-02-09 16:09:08 +02:00
ut0ut.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
ut0vec.h MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
ut0vec.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
ut0wqueue.h MDEV-26865 fts_optimize_thread cannot keep up with workload 2021-10-21 12:56:59 +03:00