Details
-
Bug
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
10.5.7
-
None
Description
If we start MariaDB 10.5 with Performance Schema and all memory instrumentation enabled:
openxs@ao756:~/dbs/maria10.5$ bin/mysqld_safe --no-defaults --port=3311 --socket=/tmp/mariadb105.sock --performance_schema=1 --performance-schema-instrument='memory/%=ON' &
|
[1] 14916
|
openxs@ao756:~/dbs/maria10.5$ 201011 13:51:40 mysqld_safe Logging to '/home/openxs/dbs/maria10.5/data/ao756.err'.
|
201011 13:51:41 mysqld_safe Starting mariadbd daemon with databases from /home/openxs/dbs/maria10.5/data
|
we can see negative values reported immediately after startup for memory/innodb/std event:
openxs@ao756:~/dbs/maria10.5$ bin/mysql --socket=/tmp/mariadb105.sock performance_schema
|
Reading table information for completion of table and column names
|
You can turn off this feature to get a quicker startup with -A
|
|
Welcome to the MariaDB monitor. Commands end with ; or \g.
|
Your MariaDB connection id is 3
|
Server version: 10.5.7-MariaDB Source distribution
|
|
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
|
|
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
|
|
MariaDB [performance_schema]> select * from memory_summary_by_thread_by_event_name where current_number_of_bytes_used <0\G
|
*************************** 1. row ***************************
|
THREAD_ID: 7
|
EVENT_NAME: memory/innodb/std
|
COUNT_ALLOC: 5
|
COUNT_FREE: 29
|
SUM_NUMBER_OF_BYTES_ALLOC: 728
|
SUM_NUMBER_OF_BYTES_FREE: 1496
|
LOW_COUNT_USED: -24
|
CURRENT_COUNT_USED: -24
|
HIGH_COUNT_USED: 1
|
LOW_NUMBER_OF_BYTES_USED: -768
|
CURRENT_NUMBER_OF_BYTES_USED: -768
|
HIGH_NUMBER_OF_BYTES_USED: 32
|
1 row in set (0,004 sec)
|
|
MariaDB [performance_schema]> select t.*, m.* from memory_summary_by_thread_by_event_name m join threads t on m.thread_id = t.thread_id where current_number_of_bytes_used <0\G
|
*************************** 1. row ***************************
|
THREAD_ID: 7
|
NAME: thread/innodb/thread_pool_thread
|
TYPE: BACKGROUND
|
PROCESSLIST_ID: NULL
|
PROCESSLIST_USER: NULL
|
PROCESSLIST_HOST: NULL
|
PROCESSLIST_DB: NULL
|
PROCESSLIST_COMMAND: NULL
|
PROCESSLIST_TIME: NULL
|
PROCESSLIST_STATE: NULL
|
PROCESSLIST_INFO: NULL
|
PARENT_THREAD_ID: NULL
|
ROLE: NULL
|
INSTRUMENTED: YES
|
HISTORY: YES
|
CONNECTION_TYPE: Error
|
THREAD_OS_ID: 15007
|
THREAD_ID: 7
|
EVENT_NAME: memory/innodb/std
|
COUNT_ALLOC: 5
|
COUNT_FREE: 29
|
SUM_NUMBER_OF_BYTES_ALLOC: 728
|
SUM_NUMBER_OF_BYTES_FREE: 1496
|
LOW_COUNT_USED: -24
|
CURRENT_COUNT_USED: -24
|
HIGH_COUNT_USED: 1
|
LOW_NUMBER_OF_BYTES_USED: -768
|
CURRENT_NUMBER_OF_BYTES_USED: -768
|
HIGH_NUMBER_OF_BYTES_USED: 32
|
1 row in set (0,005 sec)
|
Negative values (or COUNT_FREE > COUNT_ALLOC) should never happen in this table. Either server does something wrong while getting the results, or there is a bug in instrumentation or we really free some memory that was not allocated.
I do not see such results from a similar test with MySQL 5.7.30 for example (no wonder, InnoDB implementation is very different and allocation is attributed to MariaDB's unique thread/innodb/thread_pool_thread background thread).
Attachments
Issue Links
- is duplicated by
-
MDEV-25250 performance schema shows negative amount of memory allocated for global_system_variables
- Closed