- 23 Jan, 2020 3 commits
-
-
Eugene Kosov authored
os_file_flush_data_func(): fix builds on POSIX OSs where fdatasync() is not avaiable log_t::files::flush_data_only(): rename from fdatasync() log_t::files::fsync(): removed and replaced with flush_data_only(). It will flush everything we need for using redo log files.
-
Vladislav Vaintroub authored
MDEV-21551 : Assertion `m_active_threads.size() >= m_long_tasks_count + m_waiting_task_count' failed" Happened when running innodb_fts.sync_ddl m_long_task_count could be wrongly reset to 0, if m_task_queue is empty.
-
Thirunarayanan Balathandayuthapani authored
dict_table_t::parse_name(): Properly calculate the *tbl_name_len. A failure was easily repeatable during the test innodb.innodb-alter-debug for the table name test.① ("test/@2460"). The UTF-8 representation of the U+2460 is only 3 bytes "\xe2\x91\xa0" while the filename-safe encoded counterpart of it in dict_table_t::name is 5 bytes "@2460". This bug, introduced by commit ea37b144 (MDEV-16678), could cause a purge task to hang.
-
- 22 Jan, 2020 8 commits
-
-
Vladislav Vaintroub authored
While waiting for mutex, thread_pool_generic::wait_begin(), current task can be marked long-running. This is done by periodic mantainence task, that runs in parallel. Fix to recheck is_long_task() after the mutex acquisition.
-
Eugene Kosov authored
I found that memcpy_aligned was used incorrectly at redo log and decided to put assertions in aligned functions. And found even more incorrect cases. Given the amount discovered of bugs, I left assertions to prevent future bugs. my_assume_aligned(): instead of MY_ASSUME_ALIGNED macro
-
Marko Mäkelä authored
-
Varun Gupta authored
Made the test order_by_pack_big stable
-
Marko Mäkelä authored
An assertion added in commit c20bf8fd includes a sign mismatch. Make the affected data members unsigned.
-
Marko Mäkelä authored
Since commit f52bf920 the type Sql_sort is non-trivial, because it includes a data member Bounds_checked_array<SORT_FIELD> local_sortorder. There still is no vtable, so memset() is safe to invoke, but we must add a cast to silence a warning in GCC 8 or later.
-
Varun Gupta authored
MDEV-21541: main.sum_distinct-big fails with Assertion `m_buffer_end == __null || end <= m_buffer_end' For Merge_chuck structures first set the start and end positions of the buffer and then adjust the end positions of the buffer if the records are dynamic in nature.
-
Alexander Barkov authored
- Adding a way to define I_S columns without DEFAULT. - Fixing all ENUM columns in I_S.INNODB* table definitions to have no DEFAULT.
-
- 21 Jan, 2020 6 commits
-
-
Vladislav Vaintroub authored
maybe_wake_or_create_thread() A task that is executed,could be counted as waiting (after wait_begin() before wait_end()) or as long-running (callback runs for a long time). If task is both marked waiting and long running, then calculation of current concurrency (# of executing tasks - # of long tasks - #of waiting tasks) is wrong, as task is counted twice. Thus current concurrency could go negative, but with unsigned arithmetic it will become a huge number. As a result, maybe_wake_or_create_thread() would neither wake or create a thread, when it should. Which may result in a deadlock.
-
Vladislav Vaintroub authored
Someone tried -DBUILD_SHARED_LIBS:BOOL=ON. This did not work well
-
Marko Mäkelä authored
-
Vladislav Vaintroub authored
threadpool has to know about long waits, to be able to create or wakeup new threads, or it can become slow, if it just relies on maintainence timer.
-
Varun Gupta authored
-
Marko Mäkelä authored
The merge commit ded128aa failed to adjust commit 9d18b624 in debian/rules. We must adjust the build path, which is derived from the package name, which contains the major version number.
-
- 20 Jan, 2020 10 commits
-
-
Varun Gupta authored
This task deals with packing the non-sorted fields (or addon fields). This would lead to efficient usage of the memory allocated for the sort buffer. The changes brought by this feature are 1) Sort buffers would have records of variable length 2) Each record in the sort buffer would be stored like <sort_key1><sort_key2>....<addon_length><null_bytes><field1><field2>.... addon_length is the extra bytes that are required to store the variable length of addon field across different records. 3) Changes in rr_unpack_from_buffer and rr_from_tempfile to take into account the variable length of records. Ported WL#1509 Pack values of non-sorted fields in the sort buffer from MySQL by Tor Didriksen
-
Marko Mäkelä authored
-
Marko Mäkelä authored
This was forgotten in e9de6386
-
Marko Mäkelä authored
-
Jan Lindström authored
Add mutex protection while we calculate required slave thread change and create them. Add error handling.
-
Marko Mäkelä authored
The MDEV-17062 fix in commit c4195305 was omitted.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Igor Babaev authored
row_search_idx_cond_check with rowid_filter upon concurrent access to table This bug has nothing to do with the concurrent access to table. Rather it concerns queries for which the optimizer decides to employ a rowid filter when accessing an InnoDB table by a secondary index, but later when calling test_if_skip_sort_order() changes its mind to access the table by the primary key. Currently usage of rowid filters is not supported in InnoDB if the table is accessed by the primary key. So in this case usage of a rowid filter to access the table must be prohibited.
-
- 19 Jan, 2020 2 commits
-
-
Sergei Petrunia authored
-
Sergei Golubchik authored
followup for 9d18b624 strangely enough it only failed upgrade test on eoan
-
- 18 Jan, 2020 4 commits
-
-
Igor Babaev authored
This bug could happen when both optimizer switches 'mrr' and 'mrr_sort_keys' are enabled and the optimizer decided to use a rowid filter when accessing an InnoDB table by a secondary key. With the above setting any access by a secondary is converted to the rndpos access. In InnoDB the rndpos access uses the primary key. Currently usage of a rowid filter within InnoDB engine is not supported if the table is accessed by the primary key. Do not use pushed rowid filter if the table is accessed actually by the primary key. Use the rowid filter outside the egine code instead.
-
Eugene Kosov authored
log_group_max_size: is not needed because redo log do not use fil_io() now
-
Marko Mäkelä authored
-
Jan Lindström authored
-
- 17 Jan, 2020 7 commits
-
-
Sergei Golubchik authored
Make chown error non-fatal. Just print a warning.
-
Sergei Golubchik authored
don't let mysql_install_db set SUID bit for auth_pam_tool in rpm/deb packages - instead package files with correct permissions and only fix the ownership of auth_pam_tool_dir (which can only be done after mysql user is created, so in post-install). keep old mysql_install_db behavior for bintars
-
Sergei Golubchik authored
if my_realpath() fails, don't return the error code, get_defaults_options() returns a number of options consumed, not 0=ok/1=error. instead, ignore the error from my_realpath. If it fails it internally falls back to my_load_path, which restores 10.4- behavior
-
Sergei Golubchik authored
-
Sergei Petrunia authored
-
Marko Mäkelä authored
-
Nikša Skeledžija authored
- Fixed a warning visible in optimized build related to calling memcpy with length parameters larger than ptrdiff_t max. rb#23333 approved by Annamalai Gurusami <annamalai.gurusami@oracle.com>
-