- 24 Jul, 2019 9 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The FTS optimizer thread made a false assumption that time(NULL) is monotonic. The system clock can be adjusted to the past, for example if the hardware clock was drifting to the future, and it was adjusted by NTP. fts_slot_t::interval_time: Replace with the constant FTS_OPTIMIZE_INTERVAL_IN_SECS. fts_slot_t::last_run, fts_slot_t::completed: Clarify the documentation. fts_optimize_get_time_limit(): Remove a type cast, and add a FIXME comment about domain mismatch. fts_optimize_compact(), fts_optimize_words(): Limit the time also when the current time has been moved to the past. fts_optimize_table_bk(): Check for wrap-around. fts_optimize_how_many(): Check for wrap-around, and remove the failing assertions. fts_is_sync_needed(): Remove a redundant call to time(NULL).
-
Marko Mäkelä authored
lock_t::requested_time: Document what the field is used for. lock_t::wait_time: Document that the field is only used for diagnostics and may be garbage if the system time is being adjusted. srv_slot_t::suspend_time: Document that this is duplicating trx_lock_t::wait_started. lock_table_print(), lock_rec_print(): Declare in static scope. Add a parameter for the current time. lock_deadlock_check_and_resolve(), lock_deadlock_lock_print(), lock_deadlock_joining_trx_print(): Add a parameter for the current time.
-
Marko Mäkelä authored
srv_slot_t::suspend_time, os_aio_slot_t::reservation_time, sync_cell_t::reservation_time: Explain what could happen if the system time has is being adjusted. fts_sync_t::start_time: Document that the field is mostly unused.
-
Marko Mäkelä authored
This affects the function has_higher_priority() for internal or recovered transactions.
-
Marko Mäkelä authored
Replace ut_usectime() with my_interval_timer(), which is equivalent, but monotonically counting nanoseconds instead of counting the microseconds of real time. os_event_wait_time_low(): Use my_hrtime() instead of ut_usectime(). FIXME: Set a clock attribute on the condition variable that allows a monotonic clock to be chosen as the time base, so that the wait is immune to adjustments of the system clock.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Use microsecond_interval_timer() or my_interval_timer() [in nanoseconds] instead.
-
Marko Mäkelä authored
-
- 23 Jul, 2019 6 commits
-
-
Elena Stepanova authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
This is motivated by PS-5221 in percona/percona-server@2817c561fce9e20a83b13272ac45fd333467715d The coarser-precision ut_time() will still refer to the system clock, meaning that bad things can happen if the real time clock is adjusted backwards.
-
Laurynas Biveinis authored
Valgrind started supporting CRC32 instruction starting with version 3.6.1, released in 2011. Thus remove the fallback to software implementation in case running under Valgrind.
-
Marko Mäkelä authored
There is one directly applicable change to InnoDB: commit 739f5239 in the 5.5 branch will be merged before the next MariaDB releases. Another potentially applicable change will be tracked separately as MDEV-20126. Thus, here we only update the InnoDB version number and do not change anything else.
-
Marko Mäkelä authored
This is follow-up to d36c107a
-
- 22 Jul, 2019 1 commit
-
-
Marko Mäkelä authored
This is a regression due to MDEV-16515 that affects some versions in the MariaDB 10.1 server series starting with 10.1.35, and possibly all versions starting with 10.2.17, 10.3.8, and 10.4.0. The idea of MDEV-16515 is to allow DROP TABLE to be interrupted, in case it was stuck due to some concurrent activity. We already made some cases of internal DROP TABLE immune to kill in MDEV-18237, MDEV-16647, MDEV-17470. We must include the cleanup of CREATE TABLE...SELECT in the list of such internal DROP TABLE. ha_innobase::delete_table(): Pass create_failed=true if the current SQL statement is CREATE, so that the table will be dropped. row_drop_table_for_mysql(): If create_failed=true, do not allow the operation to be interrupted.
-
- 19 Jul, 2019 1 commit
-
-
Marko Mäkelä authored
-
- 18 Jul, 2019 7 commits
-
-
Marko Mäkelä authored
The results are nondeterministic on MariaDB Server 10.1.
-
Marko Mäkelä authored
-
Eugene Kosov authored
row_merge_read_clustered_index(): make buf always equals to merge_buf[i]
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
- 15 Jul, 2019 1 commit
-
-
Sujatha authored
MDEV-11154: Write_on_release_cache(log_event.cc) function will not write "COMMIT", if use "mysqlbinlog ... | mysql ..." Problem: ======= Executing command, "mysqlbinlog --read-from-remote-server --host='xx.xx.xx.xx' --port=3306 --user=xxx --password=xxx --database=mysql --to-last-log mysql-bin.000001 --start-position=1098699 --stop-never |mysql -uxxx -pxxx", we found that last data read from remote couldn't commit. Analysis: ======== The purpose of 'Write_on_release_cache' is that the contents of the Cache will automatically be written to a dedicated result file on destruction. Flush operation on the result file is controlled by a flag 'FLUSH_F'. Events which require force flush upon their destruction will have to enable this 'Write_on_release_cache::FLUSH_F'. At present the 'FLUSH_F' flag is defined as an enum as shown below. enum flag { FLUSH_F }; Since 'FLUSH_F' is the first member without initialization it get the default value '0'. Because of this the following flush condition never succeeds. if (m_flags & FLUSH_F) fflush(m_file); At present the file gets flushed only during my_fclose(result_file) operation. When continuous streaming is enabled through --stop-never option it never gets flushed and hence events are not replicated. Fix: === Initialize the enum value to non zero value.
-
- 11 Jul, 2019 2 commits
-
-
Thirunarayanan Balathandayuthapani authored
Problem: ======= Checksum fields can have value as zero. In that case, InnoDB falsely consider that page should be all zeroes. It leads to wrong detection of page corruption. Solution: ======== Remove the condition that checks if checksum fields are zero then page should be all zeroes.
-
Anel Husakovic authored
-
- 10 Jul, 2019 4 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
that was lost in c5427172 remove zlib/libxml2 workaround in CONNECT
-
Sergei Golubchik authored
also get rid of chown: cannot access ‘/var/lib/mysql’: No such file or directory before someone reports a bug that MariaDB server or backup RPM install assumes mysql datadir exists followup for bee24fe1
-
Sachin authored
MDEV-17588 replicate-do filters cause errors when creating filtered-out tables on master with syntax unsupported on slave Add only test case for MDEV , because MDEV-19653 already fixed the issue.
-
- 09 Jul, 2019 1 commit
-
-
Varun Gupta authored
MDEV-17963: Assertion `field_pos < field_count' failed in Protocol_text::store, Assertion `field_handlers == 0 || field_pos < field_count' The problem was that sp_head::MULTI_RESULTS was not set correctly for ANALYZE statement with SELECT ... INTO variable. This is a follow up fix for MDEV-7023
-
- 08 Jul, 2019 1 commit
-
-
Eugene Kosov authored
This was caused by 7f2cfa8f
-
- 06 Jul, 2019 1 commit
-
-
HF authored
-
- 05 Jul, 2019 3 commits
-
-
HF authored
-
Alexander Barkov authored
Adding tests for MDEV-17857 Assertion `tmp != ((long long) 0x8000000000000000LL)' failed in TIME_from_longlong_datetime_packed upon SELECT with GROUP BY (they were forgotten in the previous commit)
-
Alexander Barkov authored
MDEV-17857 Assertion `tmp != ((long long) 0x8000000000000000LL)' failed in TIME_from_longlong_datetime_packed upon SELECT with GROUP BY
-
- 04 Jul, 2019 3 commits
-
-
Sergei Golubchik authored
mysqld_safe shouldn't try to mkdir or chown if --dry-run
-
Sergei Golubchik authored
-
Sergei Golubchik authored
MDEV-19481 mariadb-10.3.15-linux-systemd-x86_64/bin/mysqld: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' and 'GLIBCXX_3.4.21' not found don't ignore LIBSYSTEMD_LDFLAGS when trying out systemd (and put them in LIBSYSTEMD, because MYSQLD_LINK_FLAGS has stuff like -lmtmalloc and is used only for mysqld, not for, say, explain_filename-t) LIBSYSTEMD_LDFLAGS come from libsystemd.pc via pkg-config
-