summaryrefslogtreecommitdiff
path: root/storage/innobase/include/sync0policy.h
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-17441 - InnoDB transition to C++11 atomicsSergey Vojtovich2019-01-091-339/+183
| | | | | Simplified mutex code. MutexDebug uses OSMutex instead of atomic operations now.
* Merge 10.2 into 10.3Marko Mäkelä2018-11-301-2/+0
|\ | | | | | | | | | | Also, related to MDEV-15522, MDEV-17304, MDEV-17835, remove the Galera xtrabackup tests, because xtrabackup never worked with MariaDB Server 10.3 due to InnoDB redo log format changes.
| * Remove some unnecessary InnoDB #includeMarko Mäkelä2018-11-291-2/+0
| |
* | OS X warnings fixesSergey Vojtovich2018-05-211-2/+3
| |
* | Revert the following patch brought in by "Merge pull request #753 from ↵Sergei Petrunia2018-05-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | shinnok/10.3-macfixes" It caused compile failures: commit 6620fbd62a7465d2aa5010851aabdcd6ec31893f Author: Teodor Mircea Ionita <teodor@mariadb.org> Date: Thu May 10 12:23:35 2018 +0300 MDEV-15778: On macOS pthread_t is opaque, requires explicit cast On macOS pthread id is a pointer to struct _opaque_pthread_t type, requires explicit cast to ulint which in turn is size_t; Was failing with Clang 9.1.0 Debug build on macOS 10.13.4: sync0policy.h:53:4: error: cannot initialize a member subobject of type 'ulint' (aka 'unsigned long') with an rvalue of type 'os_thread_id_t' (aka '_opaque_pthread_t *') m_thread_id(os_thread_id_t(ULINT_UNDEFINED)) ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sync0policy.h:79:4: error: cannot initialize a parameter of type 'int64' (aka 'long long') with an rvalue of type 'os_thread_id_t' (aka '_opaque_pthread_t *') my_atomic_storelint(&m_thread_id, os_thread_get_curr_id());
* | MDEV-15778: On macOS pthread_t is opaque, requires explicit castTeodor Mircea Ionita2018-05-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | On macOS pthread id is a pointer to struct _opaque_pthread_t type, requires explicit cast to ulint which in turn is size_t; Was failing with Clang 9.1.0 Debug build on macOS 10.13.4: sync0policy.h:53:4: error: cannot initialize a member subobject of type 'ulint' (aka 'unsigned long') with an rvalue of type 'os_thread_id_t' (aka '_opaque_pthread_t *') m_thread_id(os_thread_id_t(ULINT_UNDEFINED)) ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sync0policy.h:79:4: error: cannot initialize a parameter of type 'int64' (aka 'long long') with an rvalue of type 'os_thread_id_t' (aka '_opaque_pthread_t *') my_atomic_storelint(&m_thread_id, os_thread_get_curr_id());
* | Fix many -Wunused-parameterMarko Mäkelä2018-05-011-14/+5
| | | | | | | | | | | | | | | | | | | | Remove unused InnoDB function parameters and functions. i_s_sys_virtual_fill_table(): Do not allocate heap memory. mtr_is_block_fix(): Replace with mtr_memo_contains(). mtr_is_page_fix(): Replace with mtr_memo_contains_page().
* | MDEV-15091 : Windows, 64bit: reenable and fix warning C4267 (conversion from ↵Vladislav Vaintroub2018-02-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | 'size_t' to 'type', possible loss of data) Handle string length as size_t, consistently (almost always:)) Change function prototypes to accept size_t, where in the past ulong or uint were used. change local/member variables to size_t when appropriate. This fix excludes rocksdb, spider,spider, sphinx and connect for now.
* | Merge bb-10.2-ext into 10.3Marko Mäkelä2018-01-241-8/+1
|\ \ | |/
| * Remove useless method LatchCounter::sum_deregister()Marko Mäkelä2018-01-221-8/+1
| |
* | IB: style changes [closes #306]Eugene Kosov2017-11-151-5/+1
| |
* | System Versioning pre0.12Aleksey Midenkov2017-11-071-1/+5
|\ \ | | | | | | | | | Merge remote-tracking branch 'origin/archive/2017-10-17' into 10.3
| * | IB, SQL: InnoDB partitioning [closes #118]Aleksey Midenkov2017-05-051-1/+5
| | | | | | | | | | | | * native InnoDB partitioning for BY SYSTEM_TIME partitions.
* | | Fix some warningsVladislav Vaintroub2017-10-271-2/+2
| | |
* | | fix a data race in debug build (#456)Eugene Kosov2017-10-061-6/+6
| |/ |/| | | | | | | fix a data race in debug build This particular one flooded TSAN report.
* | MDEV-13485 MTR tests fail massively with --innodb-sync-debugMarko Mäkelä2017-08-231-1/+1
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The parameter --innodb-sync-debug, which is disabled by default, aims to find potential deadlocks in InnoDB. When the parameter is enabled, lots of tests failed. Most of these failures were due to bogus diagnostics. But, as part of this fix, we are also fixing a bug in error handling code and removing dead code, and fixing cases where an uninitialized mutex was being locked and unlocked. dict_create_foreign_constraints_low(): Remove an extraneous mutex_exit() call that could cause corruption in an error handling path. Also, do not unnecessarily acquire dict_foreign_err_mutex. Its only purpose is to control concurrent access to dict_foreign_err_file. row_ins_foreign_trx_print(): Replace a redundant condition with a debug assertion. srv_dict_tmpfile, srv_dict_tmpfile_mutex: Remove. The temporary file is never being written to or read from. log_free_check(): Allow SYNC_FTS_CACHE (fts_cache_t::lock) to be held. ha_innobase::inplace_alter_table(), row_merge_insert_index_tuples(): Assert that no unexpected latches are being held. sync_latch_meta_init(): Properly initialize dict_operation_lock_key at SYNC_DICT_OPERATION. dict_sys->mutex is SYNC_DICT, and the now-removed SRV_DICT_TMPFILE was wrongly registered at SYNC_DICT_OPERATION. buf_block_init(): Correctly register buf_block_t::debug_latch. It was previously misleadingly reported as LATCH_ID_DICT_FOREIGN_ERR. latch_level_t: Correct the relative latching order of SYNC_IBUF_PESS_INSERT_MUTEX,SYNC_INDEX_TREE and SYNC_FILE_FORMAT_TAG,SYNC_DICT_OPERATION to avoid bogus failures. row_drop_table_for_mysql(): Avoid accessing btr_defragment_mutex if the defragmentation thread has not been started. This is the case during fts_drop_orphaned_tables() in recv_recovery_rollback_active(). fil_space_destroy_crypt_data(): Avoid acquiring fil_crypt_threads_mutex when it is uninitialized. We may have created crypt_data before the mutex was created, and the mutex creation would be skipped if InnoDB startup failed or --innodb-read-only was specified.
* MDEV-12271 Port MySQL 8.0 Bug#23150562 REMOVE UNIV_MUST_NOT_INLINE AND ↵Marko Mäkelä2017-03-171-3/+1
| | | | | | | | | | | | | | | | | | | | UNIV_NONINL Also, remove empty .ic files that were not removed by my MySQL commit. Problem: InnoDB used to support a compilation mode that allowed to choose whether the function definitions in .ic files are to be inlined or not. This stopped making sense when InnoDB moved to C++ in MySQL 5.6 (and ha_innodb.cc started to #include .ic files), and more so in MySQL 5.7 when inline methods and functions were introduced in .h files. Solution: Remove all references to UNIV_NONINL and UNIV_MUST_NOT_INLINE from all files, assuming that the symbols are never defined. Remove the files fut0fut.cc and ut0byte.cc which only mattered when UNIV_NONINL was defined.
* Fix many -Wconversion warnings.Marko Mäkelä2017-03-071-12/+13
| | | | | | | | | | | | | | | | | | | Define my_thread_id as an unsigned type, to avoid mismatch with ulonglong. Change some parameters to this type. Use size_t in a few more places. Declare many flag constants as unsigned to avoid sign mismatch when shifting bits or applying the unary ~ operator. When applying the unary ~ operator to enum constants, explictly cast the result to an unsigned type, because enum constants can be treated as signed. In InnoDB, change the source code line number parameters from ulint to unsigned type. Also, make some InnoDB functions return a narrower type (unsigned or uint32_t instead of ulint; bool instead of ibool).
* Merge InnoDB 5.7 from mysql-5.7.9.Jan Lindström2016-09-021-0/+550
Contains also MDEV-10547: Test multi_update_innodb fails with InnoDB 5.7 The failure happened because 5.7 has changed the signature of the bool handler::primary_key_is_clustered() const virtual function ("const" was added). InnoDB was using the old signature which caused the function not to be used. MDEV-10550: Parallel replication lock waits/deadlock handling does not work with InnoDB 5.7 Fixed mutexing problem on lock_trx_handle_wait. Note that rpl_parallel and rpl_optimistic_parallel tests still fail. MDEV-10156 : Group commit tests fail on 10.2 InnoDB (branch bb-10.2-jan) Reason: incorrect merge MDEV-10550: Parallel replication can't sync with master in InnoDB 5.7 (branch bb-10.2-jan) Reason: incorrect merge