MDEV-7399: Add support for INFORMATION_SCHEMA.INNODB_MUTEXES
MDEV-7618: Improve semaphore instrumentation
Introduced two new information schema tables to monitor mutex waits
and semaphore waits. Added a new configuration variable
innodb_intrument_semaphores to add thread_id, file name and
line of current holder of mutex/rw_lock.
This problem affects only debug builds on PPC64.
There are at least two race conditions around
rw_lock_debug_mutex_enter and rw_lock_debug_mutex_exit:
- rw_lock_debug_waiters was loaded/stored without setting
appropriate locks/memory barriers.
- there is a gap between calls to os_event_reset() and
os_event_wait() and in such case we're supposed to pass
return value of the former to the latter.
Fixed by replacing self-cooked spinlocks with system mutexes.
These days system mutexes offer much better performance. OTOH
performance is not that critical for debug builds.
support ha_innodb.so as a dynamic plugin.
* remove obsolete *,innodb_plugin.rdiff files
* s/--plugin-load=/--plugin-load-add=/
* MYSQL_PLUGIN_IMPORT glob_hostname[]
* use my_error instead of push_warning_printf(ER_DEFAULT)
* don't use tdc_size and tc_size in a module
update test cases (XtraDB is 5.6.14, InnoDB is 5.6.10)
* copy new tests over
* disable some tests for (old) InnoDB
* delete XtraDB tests that no longer apply
small compatibility changes:
* s/HTON_EXTENDED_KEYS/HTON_SUPPORTS_EXTENDED_KEYS/
* revert unnecessary InnoDB changes to make it a bit closer to the upstream
fix XtraDB to compile on Windows (both as a static and a dynamic plugin)
disable XtraDB on Windows (deadlocks) and where no atomic ops are available (e.g. CentOS 5)
storage/innobase/handler/ha_innodb.cc:
revert few unnecessary changes to make it a bit closer to the original InnoDB
storage/innobase/include/univ.i:
correct the version to match what it was merged from
include/my_sys.h:
Move generic file parsing functions out to shared code, as they are used in several places.
mysys/mf_iocache2.c:
Move generic file parsing functions out to shared code, as they are used in several places.
sql/log_event.cc:
Fix XtraDB build with embedded server.
XtraDB needs access to replication stuff, which is missing in embedded server.
Solved by defining wrapper function for this which is compiled differently for normal and
embedded case.
sql/log_event.h:
Fix XtraDB build with embedded server.
XtraDB needs access to replication stuff, which is missing in embedded server.
Solved by defining wrapper function for this which is compiled differently for normal and
embedded case.
sql/slave.cc:
Move generic file parsing functions out to shared code, as they are used in several places.
Fixes to get the test suite to run without failures.
mysql-test/r/information_schema.result:
Additional variables available now.
Sort output to avoid depending on engine order.
mysql-test/r/information_schema_all_engines.result:
More variables now.
mysql-test/r/innodb-autoinc.result:
Avoid picking up pbxt variables in result
mysql-test/r/innodb-index.result:
Save state to not corrupt following testcases.
Suppress an expected warning.
mysql-test/r/innodb-zip.result:
Work around a problem with dependency on zlib version
mysql-test/r/innodb.result:
Checksums have changed in Maria.
Save and restore server state to not corrupt following testcases.
mysql-test/r/innodb_bug36169.result:
Save and restore server state to not corrupt following testcases.
mysql-test/r/innodb_xtradb_bug317074.result:
Save and restore server state to not corrupt following testcases.
mysql-test/r/row-checksum-old.result:
Update result file
mysql-test/r/row-checksum.result:
Update result file
mysql-test/t/information_schema.test:
Sort output to avoid depending on engine order.
mysql-test/t/innodb-analyze.test:
Save and restore server state to not corrupt following testcases.
mysql-test/t/innodb-autoinc.test:
Save and restore server state to not corrupt following testcases.
mysql-test/t/innodb-index.test:
Save state to not corrupt following testcases.
Suppress an expected warning.
mysql-test/t/innodb-zip.test:
Work around a problem with dependency on zlib version
mysql-test/t/innodb.test:
Save and restore server state to not corrupt following testcases.
Update --replace statements for new mysql-test-run
mysql-test/t/innodb_bug34300.test:
Save and restore server state to not corrupt following testcases.
mysql-test/t/innodb_bug36169.test:
Save and restore server state to not corrupt following testcases.
mysql-test/t/innodb_bug36172.test:
Save and restore server state to not corrupt following testcases.
mysql-test/t/innodb_xtradb_bug317074.test:
Save and restore server state to not corrupt following testcases.
mysql-test/t/partition_innodb.test:
Fix regexps to work with new SHOW INNODB STATUS output.
mysys/thr_mutex.c:
Initialize mutex deadlock detection lazily.
This allows to test XtraDB, which initializes huge amounts of mutexes without using any but a few of them.
storage/xtradb/ibuf/ibuf0ibuf.c:
Fix problem where value of INNODB_IBUF_MAX_SIZE would depend on the alignment of memory
allocated by the buffer pool.
storage/xtradb/include/sync0rw.h:
Fix XtraDB to compile without GCC atomic operation intrinsics (performance may suffer
when they are not available though).
storage/xtradb/include/sync0rw.ic:
Fix XtraDB to compile without GCC atomic operation intrinsics (performance may suffer
when they are not available though).
storage/xtradb/include/univ.i:
Fix for MariaDB
storage/xtradb/setup.sh:
Remove no longer needed file from XtraDB.
storage/xtradb/srv/srv0start.c:
Fix for MariaDB