maria:bb-10.2-monty

Last commit made on 2019-06-03
Get this branch:
git clone -b bb-10.2-monty https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.2-monty
Repository:
lp:maria

Recent commits

f23ce96... by Monty <email address hidden> on 2019-06-02

Fixed bug in online alter table when not compiled with performance schema

os_file_write_func() and os_file_read_no_error_handling_func() returned
different result values depending on if UNIV_PFS_IO was defined or not.

Other things:
- Added some comments about return values for some functions

1dc803c... by Monty <email address hidden> on 2019-06-02

Supress some valgrind warnings

16101bd... by Monty <email address hidden> on 2019-06-02

Fixed compiler warning

Wrong compiler warning from GCC:
‘snprintf’ output 2 or more bytes (assuming 4001)
into a destination of size 4000

596e81d... by Monty <email address hidden> on 2019-06-02

Ensure that tests and programs can restore variables

- --default-character-set can now be disabled in mysqldump
- --skip-resolve can be be disabled in mysqld
- mysql_client_test now resets global variables it changes
- mtr couldn't handle [mysqldump] in config files (wrong regexp used)

87d40a7... by Vladislav Vaintroub on 2019-06-02

Fix plugin linking on Windows

c9b49a4... by Vlad Lesin on 2019-05-24

MDEV-18207: ASAN heap-use-after-free in _ma_get_status upon concurrent operations with sequence

The issue is that two MARIA_HA instances shares the same MARIA_STATUS_INFO
object during UNION execution, so the second MARIA_HA instance state pointer
MARIA_HA::state points to the MARIA_HA::state_save of the first MARIA instance.

This happens in
thr_multi_lock(...) {
...
 for (first_lock=data, pos= data+1 ; pos < end ; pos++)
 {
...
  if (pos[0]->lock == pos[-1]->lock && pos[0]->lock->copy_status)
   (pos[0]->lock->copy_status)((*pos)->status_param,
                 (*first_lock)->status_param);
...
 }
...
}

Usually the state is restored from ha_maria::external_lock(...):

\#0 _ma_update_status (param=0x6290000e6270) at ./storage/maria/ma_state.c:309
\#1 0x00005555577ccb15 in _ma_update_status_with_lock (info=0x6290000e6270) at ./storage/maria/ma_state.c:361
\#2 0x00005555577c7dcc in maria_lock_database (info=0x6290000e6270, lock_type=2) at ./storage/maria/ma_locking.c:66
\#3 0x0000555557802ccd in ha_maria::external_lock (this=0x61d0001b1308, thd=0x62a000048270, lock_type=2) at ./storage/maria/ha_maria.cc:2727

But _ma_update_status() does not take into account the case when
MARIA_HA::status points to the MARIA_HA::state_save of the other MARIA_HA
instance.

The fix is to restore MARIA_HA::state in ha_maria::external_lock() after
maria_lock_database() call for transactional tables.

9d142a8... by Marko Mäkelä on 2019-05-30

Define page_id_t in buf0types.h

80a142f... by Sergey Vojtovich on 2019-05-30

Lintian complains about script-not-executable

Removed #! sequence from non-executable script.

4adf52a... by Faustin on 2019-05-22

Add missing script header

1d0c274... by Marko Mäkelä on 2019-05-29

MDEV-19541: Suppress an error also on Windows