Commit graph

6629 commits

Author SHA1 Message Date
Marko Mäkelä
94e6a226a3 my_malloc(): Invoke TRASH_ALLOC even WITH_SAFEMALLOC=OFF 2019-02-01 10:43:09 +02:00
Andrei Elkin
5d48ea7d07 MDEV-10963 Fragmented BINLOG query
The problem was originally stated in
  http://bugs.mysql.com/bug.php?id=82212
The size of an base64-encoded Rows_log_event exceeds its
vanilla byte representation in 4/3 times.
When a binlogged event size is about 1GB mysqlbinlog generates
a BINLOG query that can't be send out due to its size.

It is fixed with fragmenting the BINLOG argument C-string into
(approximate) halves when the base64 encoded event is over 1GB size.
The mysqlbinlog in such case puts out

    SET @binlog_fragment_0='base64-encoded-fragment_0';
    SET @binlog_fragment_1='base64-encoded-fragment_1';
    BINLOG @binlog_fragment_0, @binlog_fragment_1;

to represent a big BINLOG.
For prompt memory release BINLOG handler is made to reset the BINLOG argument
user variables in the middle of processing, as if @binlog_fragment_{0,1} = NULL
is assigned.

Notice the 2 fragments are enough, though the client and server still may
need to tweak their @@max_allowed_packet to satisfy to the fragment
size (which they would have to do anyway with greater number of
fragments, should that be desired).

On the lower level the following changes are made:

Log_event::print_base64()
  remains to call encoder and store the encoded data into a cache but
  now *without* doing any formatting. The latter is left for time
  when the cache is copied to an output file (e.g mysqlbinlog output).
  No formatting behavior is also reflected by the change in the meaning
  of the last argument which specifies whether to cache the encoded data.

Rows_log_event::print_helper()
  is made to invoke a specialized fragmented cache-to-file copying function
  which is

copy_cache_to_file_wrapped()
  that takes care of fragmenting also optionally wraps encoded
  strings (fragments) into SQL stanzas.

my_b_copy_to_file()
  is refactored to into my_b_copy_all_to_file(). The former function
  is generalized
  to accepts more a limit argument to constraint the copying and does
  not reinitialize anymore the cache into reading mode.
  The limit does not do any effect on the fully read cache.
2019-01-24 20:44:50 +02:00
Marko Mäkelä
71eb762611 Merge 10.0 into 10.1 2019-01-17 06:40:24 +02:00
Daniel Black
19a7656fb1 safemalloc: warn, flush after fprintf
Corrects 94d722b6a4
2019-01-17 01:13:47 +04:00
Marko Mäkelä
59c82dde09 Merge 10.0 into 10.1 2018-11-07 08:08:45 +02:00
Marko Mäkelä
5f29fdecc0 Merge 5.5 into 10.0 2018-11-07 08:02:18 +02:00
Oleksandr Byelkin
b68d8a05d3 MDEV-17401: LOAD DATA from very big file into MyISAM table results in EOF error and corrupt index
my_read fixed as in higher versions.
my_pread made as my_read aware of partial read of huge chunks of files
MY_FULL_IO enabled for file operations
2018-11-02 18:01:49 +01:00
Sergei Golubchik
44f6f44593 Merge branch '10.0' into 10.1 2018-10-30 15:10:01 +01:00
Sergei Golubchik
37ab7e4596 Merge branch '5.5' into 10.0 2018-10-27 20:46:38 +02:00
Sergei Golubchik
f9e5195b40 Merge branch 'mysql/5.5' into 5.5 2018-10-23 15:59:24 +02:00
Andrei Elkin
5b735e8f09 MDEV-17133 dump thread reads from a past position
According to logs analysis the Dump thread attempted to read again data which
was already sent. The reason of regressed read turns out in an _my_b_cache_read()
early exit branch which missed to distinguish between total zero size read (e.g
ineffective read when Count argument is zero) from a case when the
requested amount of data is fully read out by sole accessing the cache's
file. In the latter case such then *effective* reading was not
reflected in the cache's state to screw the cache's state.

Fixed with a check introduced of whether the file reading was effective prior to
early exit. When this is the case conduct standard cache state change to
account the actual read size.

Notice the bug can show up also as an error to read binlog event e.g
through BINLOG_GTID_POS() (of MDEV-16886).
2018-10-21 17:50:19 +03:00
Varun Gupta
3c5f6aa21c MDEV-17020: Assertion `length > 0' failed in ptr_compare upon ORDER BY with bad conversion
This assert is hit when we do filesort using the priority queue and try to insert elements in
the queue. The compare function used for the priority queue should handle the case for zerolength
sortkey.
2018-10-15 09:26:32 -07:00
Sergei Golubchik
1fc5a6f30c Merge branch '10.0' into 10.1 2018-09-23 12:58:11 +02:00
Marko Mäkelä
acc97298e5 Merge 5.5 into 10.0 2018-09-21 14:41:11 +03:00
Eugene Kosov
5b25dc6fa4 MDEV-17248 Improve ASAN memory pool instrumentation
alloc_root(): unpoison only requested amount of bytes instead of a
possible bigger aligned-sized buffer.
2018-09-21 10:17:37 +03:00
Marc Alff
bac287c315 Bug#27788907 SOME FILE OPERATIONS IN MF_IOCACHE2.C ARE NOT INSTRUMENTED
MySQL bug number 90264

Contribution by Yura Sorokin.

Problem:

File mysys/mf_iocache2.c contains non instrumented file io operations.
This causes inaccurate statistics in PERFORMANCE_SCHEMA.

Solution:

Use the instrumentation apis (mysql_file_tell instead of my_tell, etc).
2018-08-20 13:32:37 +02:00
Oleksandr Byelkin
cb5952b506 Merge branch '10.0' into bb-10.1-merge-sanja 2018-07-25 22:24:40 +02:00
Sergei Golubchik
bd5cf02bbe MDEV-11741 handler::ha_reset(): Assertion `bitmap_is_set_all(&table->s->all_set)' failed or server crash in mi_reset or buffer overrun or unexpected ER_CANT_REMOVE_ALL_FIELDS
MEMORY table could be renamed into a non-extistent database.

rename() is documented to return ENOENT when the source file does not
exist OR when the target directory not exist. Nonexistent source .frm
file is ok (table can still exist in the engine), nonexistent target
directory is not.

Make my_rename to use ENOTDIR for the latter case. Make RENAME TABLE
issue an appropriate error ("unknown database" instead of "unknown table")
2018-07-19 11:35:38 +02:00
Aditya A
c54271723c Bug #26275510 BUNDLED ZLIB DOESN'T INCLUDE FIXES FOR SOME VULNERABILITIES
Upgrading the zlib lib to 1.2.11
2018-07-09 17:25:49 +05:30
Vicențiu Ciorbaru
6e55236c0a Merge branch '10.0-galera' into 10.1 2018-06-12 19:39:37 +03:00
Jan Lindström
e1ffb66449 Merge tag 'mariadb-10.0.35' into 10.0-galera 2018-05-07 17:20:39 +03:00
Jan Lindström
648cf7176c Merge remote-tracking branch 'origin/5.5-galera' into 10.0-galera 2018-05-07 13:49:14 +03:00
Jan Lindström
a5001a2ad7 Merge tag 'mariadb-5.5.60' into 5.5-galera 2018-04-24 13:34:57 +03:00
Marko Mäkelä
9c34a4124d Merge 10.0 into 10.1 2018-04-24 09:26:40 +03:00
Sergei Golubchik
587568b72a Merge branch '5.5' into 10.0 2018-04-20 14:33:24 +02:00
Sergei Golubchik
1a019d0801 Merge branch 'mysql/5.5' into 5.5 2018-04-19 22:31:26 +02:00
Daniel Black
88ac368fea defaults-group-suffix in print_defaults
Also clarify which --{no-,}default* options, must be first.

Sample output:
$  client/mysql --help
client/mysql  Ver 15.1 Distrib 5.5.59-MariaDB, for Linux (x86_64) using readline 5.1
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Usage: client/mysql [OPTIONS] [database]

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
The following groups are read: mysql client client-server client-mariadb
The following options may be given as the first argument:
--print-defaults          Print the program argument list and exit.
--no-defaults             Don't read default options from any option file.
The following specify which files/groups are read (specified before other options):
--defaults-file=#         Only read default options from the given file #.
--defaults-extra-file=#   Read this file after the global files are read.
--defaults-group-suffix=# Additionally read default groups with # appended as a suffix.

tests running from build directory:
TEST: print defaults ignored as not first
$ sql/mysqld  --no-defaults --print-defaults --lc-messages-dir=${PWD}/sql/share

TEST: no startup occurs as --print-defaults specified
$ sql/mysqld  --print-defaults --lc-messages-dir=${PWD}/sql/share
sql/mysqld would have been started with the following arguments:
--lc-messages-dir=/home/dan/repos/build-mariadb-5.5/sql/share

TEST: default args can't be anywhere
$ client/mysql --user=bob  --defaults-file=/etc/my.cnf
client/mysql: unknown variable 'defaults-file=/etc/my.cnf'
$ client/mysql --user=bob  --defaults-group-suffix=.group
client/mysql: unknown variable 'defaults-group-suffix=.group'

/etc/my.cnf:
[client-server.group]
socket=/var/lib/mysql-multi/group/mysqld.sock
user=bob

/etc/my.other.cnf:
socket=/var/lib/mysql-other/mysqld.sock

TEST: defaults file read and suffix also applied
$  client/mysql  --defaults-file=/etc/my.other.cnf  --defaults-group-suffix=.group
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql-other/mysqld.sock' (2)

TEST: defaults extra file
$ client/mysql  --defaults-extra-file=/etc/my.other.cnf  --defaults-group-suffix=.group
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql-other/mysqld.sock' (2)
2018-04-13 14:56:50 +04:00
Vicențiu Ciorbaru
4c89cff558 Merge branch '10.0' into 10.1 2018-04-07 17:11:22 +03:00
Vicențiu Ciorbaru
6a72b9096a Merge branch '5.5' into 10.0 2018-04-03 18:08:30 +03:00
Sergei Golubchik
df6197c8b9 compiler warning
warning: format '%p' expects argument of type 'void *', but argument 4 has type 'long int'
2018-04-03 16:19:10 +02:00
Sergey Vojtovich
0a534348c7 MDEV-14265 - RPMLint warning: shared-lib-calls-exit
Eliminated last exit() call from libmysqld.
2018-03-16 13:26:52 +04:00
Daniel Black
4ec7b84077 MDEV-8743: use O_CLOEXEC MYSQL_LOG::open / TC_LOG_MMAP::open
For galera compatibility, the main thing is to ensure the FD 1, 2 are
not opened with O_CLOEXEC otherwise galera sst errors don't appear in
the error.log

Files without O_CLOEXEC from the test below:
0 -> /dev/pts/9
1 -> /tmp/error.log (intended)
2 -> /tmp/error.log (intended)
5 -> /tmp/datadir
6 -> /tmp/datadir/aria_log.00000001
(Innodb temp files)
8 -> /tmp/ibIIrhFL (deleted)
9 -> /tmp/ibfx1vai (deleted)
10 -> /tmp/ibAQUKFO (deleted)
11 -> /tmp/ibWBQSHR (deleted)
15 -> /tmp/ibEXEcfo (deleted)

20 -> /tmp/datadir/mysql/host.MYD
22 -> /tmp/datadir/mysql/user.MYD
... (rest of MYD files)

Test for this and the previous commit.

 sql/mysqld --skip-networking --datadir=/tmp/datadir --log-bin=/tmp/datadir/mysqlbin --socket /tmp/s.sock --lc-messages-dir=${PWD}/sql/share --verbose --log-error=/tmp/error.log --general-log-file=/tmp/general.log --general-log=1 --slow-query-log-file=/tmp/slow.log --slow-query-log=1
180302 10:56:41 [Note] sql/mysqld (mysqld 5.5.60-MariaDB-wsrep) starting as process 26056 ...

$ cd /proc/26056
$ ls -la --sort=none fd
total 0
dr-x------. 2 dan dan  0 Mar  2 10:57 .
dr-xr-xr-x. 9 dan dan  0 Mar  2 10:56 ..
lrwx------. 1 dan dan 64 Mar  2 10:57 0 -> /dev/pts/9
l-wx------. 1 dan dan 64 Mar  2 10:57 1 -> /tmp/error.log
l-wx------. 1 dan dan 64 Mar  2 10:57 2 -> /tmp/error.log
lrwx------. 1 dan dan 64 Mar  2 10:57 3 -> /tmp/datadir/mysqlbin.index
lrwx------. 1 dan dan 64 Mar  2 10:57 4 -> /tmp/datadir/aria_log_control
lr-x------. 1 dan dan 64 Mar  2 10:57 5 -> /tmp/datadir
lrwx------. 1 dan dan 64 Mar  2 10:57 6 -> /tmp/datadir/aria_log.00000001
lrwx------. 1 dan dan 64 Mar  2 10:57 7 -> /tmp/datadir/ibdata1
lrwx------. 1 dan dan 64 Mar  2 10:57 8 -> /tmp/ibIIrhFL (deleted)
lrwx------. 1 dan dan 64 Mar  2 10:57 9 -> /tmp/ibfx1vai (deleted)
lrwx------. 1 dan dan 64 Mar  2 10:57 10 -> /tmp/ibAQUKFO (deleted)
lrwx------. 1 dan dan 64 Mar  2 10:57 11 -> /tmp/ibWBQSHR (deleted)
lrwx------. 1 dan dan 64 Mar  2 10:57 12 -> /tmp/datadir/ib_logfile0
lrwx------. 1 dan dan 64 Mar  2 10:57 13 -> /tmp/datadir/ib_logfile1
l-wx------. 1 dan dan 64 Mar  2 10:57 14 -> /tmp/slow.log
lrwx------. 1 dan dan 64 Mar  2 10:57 15 -> /tmp/ibEXEcfo (deleted)
l-wx------. 1 dan dan 64 Mar  2 10:57 16 -> /tmp/general.log
lrwx------. 1 dan dan 64 Mar  2 10:57 17 -> socket:[1897356]
lrwx------. 1 dan dan 64 Mar  2 10:57 18 -> socket:[45335]
l-wx------. 1 dan dan 64 Mar  2 10:57 19 -> /tmp/datadir/mysqlbin.000004
lrwx------. 1 dan dan 64 Mar  2 10:57 20 -> /tmp/datadir/mysql/host.MYD
lrwx------. 1 dan dan 64 Mar  2 10:57 21 -> /tmp/datadir/mysql/host.MYI
lrwx------. 1 dan dan 64 Mar  2 10:57 22 -> /tmp/datadir/mysql/user.MYD
lrwx------. 1 dan dan 64 Mar  2 10:57 23 -> /tmp/datadir/mysql/user.MYI
lrwx------. 1 dan dan 64 Mar  2 10:57 24 -> /tmp/datadir/mysql/db.MYD
lrwx------. 1 dan dan 64 Mar  2 10:57 25 -> /tmp/datadir/mysql/db.MYI
lrwx------. 1 dan dan 64 Mar  2 10:57 26 -> /tmp/datadir/mysql/proxies_priv.MYD
lrwx------. 1 dan dan 64 Mar  2 10:57 27 -> /tmp/datadir/mysql/proxies_priv.MYI
lrwx------. 1 dan dan 64 Mar  2 10:57 28 -> /tmp/datadir/mysql/tables_priv.MYD
lrwx------. 1 dan dan 64 Mar  2 10:57 29 -> /tmp/datadir/mysql/tables_priv.MYI
lrwx------. 1 dan dan 64 Mar  2 10:57 30 -> /tmp/datadir/mysql/columns_priv.MYD
lrwx------. 1 dan dan 64 Mar  2 10:57 31 -> /tmp/datadir/mysql/columns_priv.MYI
lrwx------. 1 dan dan 64 Mar  2 10:57 32 -> /tmp/datadir/mysql/procs_priv.MYD
lrwx------. 1 dan dan 64 Mar  2 10:57 33 -> /tmp/datadir/mysql/procs_priv.MYI
lrwx------. 1 dan dan 64 Mar  2 10:57 34 -> /tmp/datadir/mysql/servers.MYD
lrwx------. 1 dan dan 64 Mar  2 10:57 35 -> /tmp/datadir/mysql/servers.MYI
lrwx------. 1 dan dan 64 Mar  2 10:57 36 -> /tmp/datadir/mysql/event.MYD
lrwx------. 1 dan dan 64 Mar  2 10:57 37 -> /tmp/datadir/mysql/event.MYI

O_CLOEXEC files are those with flags 02000000

/usr/include/bits/fcntl-linux.h:# define __O_CLOEXEC   02000000
/usr/include/bits/fcntl-linux.h:# define O_CLOEXEC      __O_CLOEXEC     /* Set close_on_exec.  */

$ find fdinfo/ -type f -ls -exec cat {} \; | more
  1924720      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/0
pos:    0
flags:  0100002
mnt_id: 25
  1924721      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/1
pos:    9954
flags:  0102001
mnt_id: 82
  1924722      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/2
pos:    10951
flags:  0102001
mnt_id: 82
  1924723      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/3
pos:    116
flags:  02100002
mnt_id: 82
  1924724      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/4
pos:    52
flags:  0100002
mnt_id: 82
lock:   1: POSIX  ADVISORY  WRITE 26056 00:2c:1866365 0 EOF
  1924725      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/5
pos:    0
flags:  0100000
mnt_id: 82
  1924726      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/6
pos:    16384
flags:  0100002
mnt_id: 82
  1924727      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/7
pos:    0
flags:  02100002
mnt_id: 82
lock:   1: POSIX  ADVISORY  WRITE 26056 00:2c:1866491 0 EOF
  1924728      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/8
pos:    0
flags:  0100002
mnt_id: 82
  1924729      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/9
pos:    0
flags:  0100002
mnt_id: 82
  1924730      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/10
pos:    0
flags:  0100002
mnt_id: 82
  1924731      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/11
pos:    0
flags:  0100002
mnt_id: 82
  1924732      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/12
pos:    0
flags:  02100002
mnt_id: 82
lock:   1: POSIX  ADVISORY  WRITE 26056 00:2c:1866492 0 EOF
  1924733      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/13
pos:    0
flags:  02100002
mnt_id: 82
lock:   1: POSIX  ADVISORY  WRITE 26056 00:2c:1866493 0 EOF
  1924734      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/14
pos:    763
flags:  02102001
mnt_id: 82
  1924735      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/15
pos:    0
flags:  0100002
mnt_id: 82
  1924736      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/16
pos:    473
flags:  02102001
mnt_id: 82
  1924737      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/17
pos:    0
flags:  02000002
mnt_id: 9
  1924738      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/18
pos:    0
flags:  02
mnt_id: 9
  1924739      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/19
pos:    245
flags:  02100001
mnt_id: 82
  1924740      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/20
pos:    0
flags:  0100002
mnt_id: 82
  1924741      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/21
pos:    503
flags:  0500002
mnt_id: 82
  1924742      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/22
pos:    324
flags:  0100002
mnt_id: 82
  1924743      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/23
pos:    642
flags:  0500002
mnt_id: 82
  1924744      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/24
pos:    880
flags:  0100002
mnt_id: 82
  1924745      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/25
pos:    581
flags:  0500002
mnt_id: 82
  1924746      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/26
pos:    1386
flags:  0100002
mnt_id: 82
  1924747      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/27
pos:    498
flags:  0500002
mnt_id: 82
  1924748      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/28
pos:    0
flags:  0100002
mnt_id: 82
  1924749      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/29
pos:    513
flags:  0500002
mnt_id: 82
  1924750      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/30
pos:    0
flags:  0100002
mnt_id: 82
  1924751      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/31
pos:    494
flags:  0500002
mnt_id: 82
  1924752      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/32
pos:    0
flags:  0100002
mnt_id: 82
  1924753      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/33
pos:    535
flags:  0500002
mnt_id: 82
  1924754      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/34
pos:    0
flags:  0100002
mnt_id: 82
  1924755      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/35
pos:    396
flags:  0500002
mnt_id: 82
  1924756      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/36
pos:    0
flags:  0100002
mnt_id: 82
  1924757      0 -r--------   1  dan      dan             0 Mar  2 10:57 fdinfo/37
pos:    517
flags:  0500002
mnt_id: 82
2018-03-02 10:58:05 +11:00
Sergei Golubchik
60dfe12be3 MDEV-14868 MariaDB server crashes after using ROLLBACK TO when encrypt_tmp_files=ON
Fix reinit_io_cache(WRITE_CACHE) with non-zero seek_offset.
Run encryption.tempfiles with and without binlog checksums.
2018-02-08 22:54:37 +01:00
Marko Mäkelä
871f2a6ee2 Merge 10.0 into 10.1 2018-02-08 13:29:08 +02:00
Oleksandr Byelkin
b6455479e5 MDEV-15230: column_json breaks cyrillic in 10.1.31
Use unsigned comparison.
2018-02-07 18:14:45 +01:00
Marko Mäkelä
8812a2f858 Merge 10.0 into 10.1 2018-02-03 12:53:30 +02:00
Vicențiu Ciorbaru
0765caa073 Merge remote-tracking branch 'origin/5.5' into 10.0 2018-02-02 18:14:35 +01:00
Sergei Golubchik
29031fe391 my_addr_resolve fixes
* use a longer timeout, 10ms is not always enough
* stop waiting as long as the data is read, do not unconditionally
  wait for timeout every time
2018-02-02 11:42:07 +01:00
Sergei Golubchik
d4df7bc9b1 Merge branch 'github/10.0' into 10.1 2018-02-02 10:09:44 +01:00
Jan Lindström
c7e5feb259 Merge tag 'mariadb-10.0.34' into 10.0-galera
Conflicts:
	storage/innobase/lock/lock0lock.cc
	storage/xtradb/lock/lock0lock.cc
	storage/xtradb/lock/lock0wait.cc
	support-files/mysql.server.sh
2018-02-01 14:09:48 +02:00
Vicențiu Ciorbaru
7a63ffab71 Fix an out of scope bzero 2018-01-30 21:13:24 +02:00
Vicențiu Ciorbaru
d833bb65d5 Merge remote-tracking branch '5.5' into 10.0 2018-01-24 12:29:31 +02:00
Oleksandr Byelkin
a4663af05c MDEV-7533: COLUMN_JSON() doesn't escape control characters in string values
escape all charecters less or equal 0x1F (control symbols)
(shorter sequence are not used to make code simple, long encoding is always legal according to the rfc4627)
2018-01-23 13:06:39 +01:00
Sergei Golubchik
dc28b6d180 improve ASAN instrumentation: MEM_ROOT
more complete TRASH-ing of memroots
2018-01-22 11:39:54 +01:00
Sergei Golubchik
22ae3843db Correct TRASH() macro usage
TRASH was mapped to TRASH_FREE and was supposed to be used for memory
that should not be accessed anymore, while TRASH_ALLOC() is to be
used for uninitialized but to-be-used memory.

But sometimes TRASH() was used in the latter sense.

Remove TRASH() macro, always use explicit TRASH_ALLOC() or TRASH_FREE().
2018-01-22 11:39:54 +01:00
Jan Lindström
ff979674e6 Merge tag 'mariadb-5.5.59' into 5.5-galera 2018-01-19 19:22:00 +02:00
Vicențiu Ciorbaru
26e5f9dda1 MDEV-14229: Stack trace is not resolved for shared objects
Resolving a stacktrace including functions in dynamic libraries requires
us to look inside the libraries for the symbols. Addr2line needs to be
started with the correct binary for each address on the stack. To do this,
figure out which library it is using dladdr, then if the addr2line
binary was started with a different binary, fork it again with the
correct one.

We only have one addr2line process running at any point during the
stacktrace resolving step. The maximum number of forks for addr2line should
generally be around 6.

One for server stacktrace code, one for plugin code, one when going back
into server code, one for pthread library, one for libc, one for the
_start function in the server. More can come up if plugin calls server
function which goes back to a plugin, etc.
2018-01-19 16:11:34 +02:00
Sergei Golubchik
2d52d3c1bf Merge branch 'mysql/5.5' into 5.5 2018-01-18 17:54:48 +01:00
Sergei Golubchik
d8001106c9 MDEV-14469 build with cmake -DMYSQL_MAINTAINER_MODE=ON fails: 'readdir_r' is deprecated
1. test readdir_r() availability under -Werror
2. don't protect readdir() with mutexes, it's not needed for the way
   we use readdir()
2018-01-15 15:57:04 +01:00
Sergei Golubchik
943c62a5d4 Backport 4bb49d84a9, correct handling on defaults[-extra]-file is SST scripts
(from 10.1 to 10.0-galera)

This conflicted signficantly with 7d550c76be
which added --defaults-group-suffix support.

Took the approach of 4bb49d84a9 and adapted the
--defaults-group-suffix handling to be consistent.

The following changes as follows:

SST scripts now use $MY_PRINT_DEFAULTS rather than the lowercase for
consistency and this include all required --default arguements.

Backport/merge by Daniel Black <daniel@linux.vnet.ibm.com>
2018-01-14 22:48:02 +11:00