mariadb/include
sysprg 26432e49d3 MDEV-17262: mysql crashed on galera while node rejoined cluster (#895)
This patch contains a fix for the MDEV-17262/17243 issues and
new mtr test.

These issues (MDEV-17262/17243) have two reasons:

1) After an intermediate commit, a transaction loses its status
of "transaction that registered in the MySQL for 2pc coordinator"
(in the InnoDB) due to the fact that since version 10.2 the
write_row() function (which located in the ha_innodb.cc) does
not call trx_register_for_2pc(m_prebuilt->trx) during the processing
of split transactions. It is necessary to restore this call inside
the write_row() when an intermediate commit was made (for a split
transaction).

Similarly, we need to set the flag of the started transaction
(m_prebuilt->sql_stat_start) after intermediate commit.

The table->file->extra(HA_EXTRA_FAKE_START_STMT) called from the
wsrep_load_data_split() function (which located in sql_load.cc)
will also do this, but it will be too late. As a result, the call
to the wsrep_append_keys() function from the InnoDB engine may be
lost or function may be called with invalid transaction identifier.

2) If a transaction with the LOAD DATA statement is divided into
logical mini-transactions (of the 10K rows) and binlog is rotated,
then in rare cases due to the wsrep handler re-registration at the
boundary of the split, the last portion of data may be lost. Since
splitting of the LOAD DATA into mini-transactions is technical,
I believe that we should not allow these mini-transactions to fall
into separate binlogs. Therefore, it is necessary to prohibit the
rotation of binlog in the middle of processing LOAD DATA statement.

https://jira.mariadb.org/browse/MDEV-17262 and
https://jira.mariadb.org/browse/MDEV-17243
2019-03-18 07:39:51 +02:00
..
atomic
mysql MDEV-17262: mysql crashed on galera while node rejoined cluster (#895) 2019-03-18 07:39:51 +02:00
big_endian.h MDEV-14267: correct FSF address 2018-10-30 19:45:09 +08:00
byte_order_generic.h MDEV-14267: correct FSF address 2018-10-30 19:45:09 +08:00
byte_order_generic_x86.h MDEV-14267: correct FSF address 2018-10-30 19:45:09 +08:00
byte_order_generic_x86_64.h MDEV-14267: correct FSF address 2018-10-30 19:45:09 +08:00
CMakeLists.txt
decimal.h
dur_prop.h
errmsg.h
ft_global.h
handler_ername.h
handler_state.h
hash.h Fix warning VS2017 15.7 update. 2018-05-09 23:04:18 +01:00
heap.h Merge remote-tracking branch 'origin/5.5-galera' into 10.0-galera 2018-05-07 13:49:14 +03:00
json_lib.h MDEV-17121 JSON_ARRAY_APPEND. 2018-09-11 14:37:45 +04:00
keycache.h
lf.h
little_endian.h MDEV-14267: correct FSF address 2018-10-30 19:45:09 +08:00
m_ctype.h Merge 10.1 into 10.2 2018-08-02 08:19:57 +03:00
m_string.h
ma_dyncol.h MDEV-7533: COLUMN_JSON() doesn't escape control characters in string values 2018-01-23 13:06:39 +01:00
maria.h Remove most 'register' use in C++ 2018-04-24 12:48:27 +03:00
my_alarm.h
my_alloc.h
my_atomic.h Merge branch '10.1' into 10.2 2018-09-14 08:47:22 +02:00
my_attribute.h
my_base.h MDEV-11415 Remove excessive undo logging during ALTER TABLE…ALGORITHM=COPY 2018-01-30 20:24:23 +02:00
my_bit.h Merge 10.1 into 10.2 2018-11-06 08:41:48 +02:00
my_bitmap.h
my_byteorder.h
my_check_opt.h
my_compare.h compilation error on windows 2018-02-06 14:51:44 +01:00
my_compiler.h
my_context.h
my_cpu.h MDEV-14267: correct FSF address 2018-10-30 19:45:09 +08:00
my_crypt.h
my_dbug.h Compilation speed (#546) 2018-01-14 20:50:45 +04:00
my_decimal_limits.h
my_default.h After-merge fix for commit 98eb9518db 2018-03-16 15:49:53 +02:00
my_dir.h
my_getopt.h
my_global.h Merge 10.1 into 10.2 2018-12-13 15:47:38 +02:00
my_handler_errors.h
my_libwrap.h
my_list.h
my_md5.h
my_net.h
my_nosys.h
my_pthread.h Merge 10.1 into 10.2 2019-03-07 17:52:27 +02:00
my_rdtsc.h
my_rnd.h
my_service_manager.h Merge branch '10.1' into 10.2 2018-09-14 08:47:22 +02:00
my_stacktrace.h
my_sys.h MDEV-18204 Fix rocksdb incremental backup 2019-02-18 18:59:05 +01:00
my_time.h Fixed wrong arguments to printf and related functions 2018-01-04 16:24:09 +02:00
my_tree.h
my_uctype.h
my_user.h
my_valgrind.h Merge 10.1 into 10.2 2019-02-03 17:22:05 +02:00
my_xml.h
myisam.h Remove most 'register' use in C++ 2018-04-24 12:48:27 +03:00
myisamchk.h
myisammrg.h
myisampack.h
mysql.h Merge 10.1 into 10.2 2019-02-03 17:22:05 +02:00
mysql.h.pp Merge 10.1 into 10.2 2019-02-03 17:22:05 +02:00
mysql_async.h
mysql_com.h Add PART_INDIRECT_KEY_FLAG 2018-06-19 16:23:34 +03:00
mysql_com_server.h
mysql_embed.h
mysql_time.h
mysql_version.h.in
mysqld_default_groups.h
mysys_err.h
pack.h
password.h
probes_mysql.d.base
probes_mysql.h
probes_mysql_nodtrace.h.in
queues.h
rijndael.h
service_versions.h Merge branch '10.1' into 10.2 2018-09-14 08:47:22 +02:00
sql_common.h Merge 10.1 into 10.2 2018-08-02 08:19:57 +03:00
ssl_compat.h MDEV-15596 10.2 doesn't work with openssl 1.1.1 2018-06-21 10:15:27 +02:00
sslopt-case.h
sslopt-longopts.h
sslopt-vars.h
t_ctype.h
thr_alarm.h
thr_lock.h
thr_timer.h
thread_pool_priv.h MDEV-14984 - regression in connect performance 2019-03-13 10:13:14 +04:00
typelib.h
violite.h
waiting_threads.h
welcome_copyright_notice.h Merge branch 'mysql/5.5' into 5.5 2018-01-18 17:54:48 +01:00
wqueue.h
wsrep.h cleanup: misc 2019-03-12 13:10:49 +01:00