Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
10.0.22-galera
-
None
-
cat /etc/debian_version
7.9
root@node1:~# uname -a
Linux node1 3.2.0-4-amd64 #1 SMP Debian 3.2.68-1+deb7u3 x86_64 GNU/Linux
-
10.0.23
Description
An async slave node clearly leaks memory on some DDL statements coming from async master (also MariaDB 10).
Steps to reproduce:
– node4 is async master to node1, node1 and node2 are Galera cluster members. Run this simple query multiple times:
root@node4:~# mysqlslap --delimiter=";" --number-of-queries=100000 --create-schema=test --query="CREATE TABLE IF NOT EXISTS xxxx (id int)"
|
(...)
– the more times the above query is executed, the bigger memory usage difference between the nodes and the more clear the memory leak is:
node1 {root} ((none)) > select @@version,@@version_comment;
|
+------------------------------------+-------------------------------------------------------+
|
| @@version | @@version_comment |
|
+------------------------------------+-------------------------------------------------------+
|
| 10.0.22-MariaDB-1~wheezy-wsrep-log | mariadb.org binary distribution, wsrep_25.11.r21a2415 |
|
+------------------------------------+-------------------------------------------------------+
|
1 row in set (0.00 sec)
|
node1 {root} ((none)) > show status like 'ws%version';
|
+------------------------+------------+
|
| Variable_name | Value |
|
+------------------------+------------+
|
| wsrep_protocol_version | 7 |
|
| wsrep_provider_version | 3.9(rXXXX) |
|
+------------------------+------------+
|
2 rows in set (0.00 sec)
|
node1 {root} ((none)) > \! ps aux|egrep 'RSS|mysqld '|grep -v grep
|
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
|
mysql 10140 2.0 66.2 2946844 1365228 ? Sl Nov21 10:18 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --wsrep_provider=/usr/lib/galera/libgalera_smm.so --log-error=/var/
|
node1 {root} ((none)) > show global status like 'mem%';
|
+---------------+-----------+
|
| Variable_name | Value |
|
+---------------+-----------+
|
| Memory_used | 274914112 |
|
+---------------+-----------+
|
1 row in set (0.01 sec)
|
– normal cluster node:
node2 {root} ((none)) > \! ps aux|egrep 'RSS|mysqld '|grep -v grep
|
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
|
mysql 6781 0.4 26.9 1066696 270304 pts/1 Sl Nov19 16:29 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --wsrep_provider=/usr/lib/galera/libgalera_smm.so --log-error=/var/
|
node2 {root} ((none)) > show global status like 'mem%';
|
+---------------+-----------+
|
| Variable_name | Value |
|
+---------------+-----------+
|
| Memory_used | 274792608 |
|
+---------------+-----------+
|
1 row in set (0.00 sec)
|
– node1 shutdown sequence diagnostic output:
151122 0:50:06 [Note] Slave I/O thread killed while reading event
|
151122 0:50:06 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.000005', position 34245035
|
151122 0:50:06 [Note] WSREP: dtor state: CLOSED
|
151122 0:50:06 [Note] WSREP: mon: entered 240000 oooe fraction 0 oool fraction 0
|
151122 0:50:07 [Note] WSREP: mon: entered 240000 oooe fraction 0 oool fraction 0
|
151122 0:50:07 [Note] WSREP: mon: entered 241908 oooe fraction 0 oool fraction 0
|
151122 0:50:07 [Note] WSREP: cert index usage at exit 0
|
151122 0:50:07 [Note] WSREP: cert trx map usage at exit 96
|
151122 0:50:07 [Note] WSREP: deps set usage at exit 0
|
151122 0:50:07 [Note] WSREP: avg deps dist 1
|
151122 0:50:07 [Note] WSREP: avg cert interval 0
|
151122 0:50:07 [Note] WSREP: cert index size 2
|
151122 0:50:07 [Note] WSREP: Service thread queue flushed.
|
151122 0:50:07 [Note] WSREP: wsdb trx map usage 240001 conn query map usage 1
|
151122 0:50:07 [Note] WSREP: MemPool(LocalTrxHandle): hit ratio: 0.499799, misses: 240097, in use: 240001, in pool: 96
|
151122 0:50:08 [Note] WSREP: MemPool(SlaveTrxHandle): hit ratio: 0, misses: 0, in use: 0, in pool: 0
|
151122 0:50:08 [Note] WSREP: Shifting CLOSED -> DESTROYED (TO: 1008270)
|
151122 0:50:08 [Note] WSREP: Flushing memory map to disk...
|
151122 0:50:09 [Note] InnoDB: FTS optimize thread exiting.
|
151122 0:50:09 [Note] InnoDB: Starting shutdown...
|
151122 0:50:10 [Note] InnoDB: Shutdown completed; log sequence number 555064446
|
151122 0:50:10 [Note] /usr/sbin/mysqld: Shutdown complete
|
– note the "in use: 240001" structures above...
– node2 shutdown diagnostics:
151122 0:52:48 [Note] WSREP: dtor state: CLOSED
|
151122 0:52:48 [Note] WSREP: mon: entered 816552 oooe fraction 0 oool fraction 0
|
151122 0:52:48 [Note] WSREP: mon: entered 816552 oooe fraction 0 oool fraction 0
|
151122 0:52:48 [Note] WSREP: mon: entered 805542 oooe fraction 0 oool fraction 1.2414e-06
|
151122 0:52:48 [Note] WSREP: cert index usage at exit 0
|
151122 0:52:48 [Note] WSREP: cert trx map usage at exit 0
|
151122 0:52:48 [Note] WSREP: deps set usage at exit 0
|
151122 0:52:48 [Note] WSREP: avg deps dist 1
|
151122 0:52:48 [Note] WSREP: avg cert interval 0
|
151122 0:52:48 [Note] WSREP: cert index size 2
|
151122 0:52:48 [Note] WSREP: Service thread queue flushed.
|
151122 0:52:48 [Note] WSREP: wsdb trx map usage 0 conn query map usage 0
|
151122 0:52:48 [Note] WSREP: MemPool(LocalTrxHandle): hit ratio: 0, misses: 0, in use: 0, in pool: 0
|
151122 0:52:48 [Note] WSREP: MemPool(SlaveTrxHandle): hit ratio: 0.999226, misses: 632, in use: 0, in pool: 632
|
151122 0:52:48 [Note] WSREP: Shifting CLOSED -> DESTROYED (TO: 1008270)
|
I cannot reproduce the same leak on PXC 5.6.
Attachments
Issue Links
- causes
-
MDEV-8965 cluster node (async replication slave) high memory usage
- Closed