Commit graph

177512 commits

Author SHA1 Message Date
Marko Mäkelä
22e5e64c0d MDEV-11623 merge fix: Use the correct flags in an error message 2017-05-29 14:37:24 +03:00
Jan Lindström
959195e195 Merge pull request #399 from grooverdan/10.2-MDEV-12924-readd-numa-innodb
MDEV-12924: re-add numa to innodb
2017-05-29 08:46:26 +03:00
Daniel Black
b53f6b9768 MDEV-12924: re-add numa to innodb
Commit 3a3b3d8ba8 overly purged the numa checks.

Re-add this.

Signed-off-by: Daniel Black <daniel.black@au.ibm.com>
2017-05-29 15:32:37 +10:00
Marko Mäkelä
73deafbc17 Remove dict_index_t::is_ngram
When MySQL 5.7 introduced fulltext parser plugins to InnoDB,
it hard-coded the plugin name "ngram" to mean something special.
Because -fsanitize=undefined was issuing warnings for the
assignment in row_merge_create_index() that the value is out of
range for Boolean, we remove this code that was not intended to
be used in MariaDB 10.2.

fts_check_token(): Remove the special logic for N-gram tokens.
2017-05-26 22:45:54 +03:00
Marko Mäkelä
c0dec39da0 fts_is_charset_cjk(): Do not call strcmp()
Remove a bogus reference to gb18030_chinese_ci, which was introduced
in MySQL 5.7. It is roughly equivalent to utf8mb4_unicode_ci, just
using a different internal encoding, and different collation.
2017-05-26 22:45:54 +03:00
Marko Mäkelä
e54d521b66 Remove some noise from ib::fatal() and ib::fatal_or_error()
Avoid the redundant output from ut_dbg_assertion_failed by directly
invoking abort().
2017-05-26 22:45:54 +03:00
Marko Mäkelä
2fd840011c Remove ut_allocator::m_oom_fatal
ut_allocator: Move m_oom_fatal into a template parameter oom_fatal,
to reduce the data and code size.
2017-05-26 22:45:53 +03:00
Marko Mäkelä
acea8b5bad Fix some integer type mismatch in innochecksum 2017-05-26 22:45:53 +03:00
Marko Mäkelä
3b68515bf2 Actually enable UNIV_DEBUG_VALGRIND 2017-05-26 22:45:53 +03:00
Marko Mäkelä
e32dc40c50 Remove an unused variable 2017-05-26 22:45:53 +03:00
Marko Mäkelä
4114d1d452 Fix WITH_INNODB_EXTRA_DEBUG 2017-05-26 22:45:53 +03:00
Marko Mäkelä
8c81f24d1b Merge 10.1 into 10.2 2017-05-26 22:45:46 +03:00
Marko Mäkelä
808f18c748 MDEV-12926 encryption.innodb_onlinealter_encryption, encryption.innodb-bad-key-change failed in buildbot with valgrind
row_merge_write(): Pass the correct (possibly encrypted) buffer
to os_file_write_int_fd().

This bug was introduced in commit 65e1399e64
which included a commit to merge changes from MySQL 5.6.36 to
MariaDB Server 10.0.
2017-05-26 19:13:21 +03:00
Marko Mäkelä
2f29fc3c1c 10.1 additions for MDEV-12052 Shutdown crash presumably due to master thread activity
btr_defragment_thread(): Create the thread in the same place as other
threads. Do not invoke btr_defragment_shutdown(), because
row_drop_tables_for_mysql_in_background() in the master thread can still
keep invoking btr_defragment_remove_table().

logs_empty_and_mark_files_at_shutdown(): Wait for btr_defragment_thread()
to exit.

innobase_start_or_create_for_mysql(), innobase_shutdown_for_mysql():
Skip encryption and scrubbing in innodb_read_only_mode.

srv_export_innodb_status(): Do not export encryption or scrubbing
statistics in innodb_read_only mode, because the threads will not
be running.
2017-05-26 15:19:40 +03:00
Marko Mäkelä
4abc2dd0c7 Merge 10.0 to 10.1 2017-05-26 15:11:23 +03:00
Marko Mäkelä
449a88e1c6 MDEV-12052 Shutdown crash presumably due to master thread activity
InnoDB shutdown assumes that once the server has entered
SRV_SHUTDOWN_FLUSH_PHASE, no change to persistent data is allowed.
It was possible for the master thread to wake up while shutdown
is executing in SRV_SHUTDOWN_FLUSH_PHASE or
even in SRV_SHUTDOWN_LAST_PHASE.

We do not yet know if further crashes at shutdown are possible.
Also, we do not know if all the observed crashes could be explained
by the race conditions that we are now fixing.

srv_shutdown_print_master_pending(): Remove a redundant ut_time() call.

srv_shutdown(): Renamed from srv_master_do_shutdown_tasks().

srv_master_thread(): Do not resume after shutdown has been initiated.
2017-05-26 15:08:35 +03:00
Elena Stepanova
6bc9949210 Updated list of unstable tests for 10.1.24 release 2017-05-24 20:38:40 +03:00
Sergei Golubchik
b430133bb9 MDEV-12844 numerous issues in MASTER_GTID_WAIT() 2017-05-24 11:59:05 +02:00
Sergei Golubchik
fc89f5fd40 MDEV-11335 Changing delay_key_write option for MyISAM table should not copy rows
Don't rebuild the table for ALTER TABLE delay_key_write changes.

After that, delay_key_write value in .frm may differ from the
value in .MYI. We'll do what .frm says.
2017-05-24 11:59:04 +02:00
Sergei Golubchik
c65dd3668b de-obfuscate sys_vars.delay_key_write_func test
Test fails, because of a bug: global delay_key_write is
cached in the THD and the cached value becomes out-of-date
when the global value changes.

This is fixed in MDEV-11335
2017-05-24 11:59:04 +02:00
Sergei Golubchik
ae76ff4524 compiler warning on Win64
cast pointer(64)->long(32)
2017-05-24 11:59:04 +02:00
Sergei Golubchik
ad807aebde MDEV-12612 mysqladmin --local flush... to use FLUSH LOCAL
Make `mysqladmin --local` use `FLUSH LOCAL` for all flush-* commands,
and only do `SET SQL_LOG_BIN=OFF` for create/drop/old_password/password.

Additionally, --local is ignored for all commands that never write
to binlog, so e.g. `mysqladmin --local version` no longer needs SUPER
2017-05-24 11:59:04 +02:00
Sergei Golubchik
7e0c8fc3fb MDEV-12389 ADD CHECK leaves an orphaned .par file 2017-05-24 11:59:04 +02:00
Sergei Golubchik
152aec019d MDEV-11650 plugins.cracklib_password_check, plugins.two_password_validations fail in buildbot with valgrind (Conditional jump or move depends on uninitialised value) 2017-05-24 11:59:04 +02:00
Sergei Golubchik
fdc1fd6f49 MDEV-11311 Create federated table does not work as expected.
FederatedX wasn't discovering prefix keys correctly.
Of course, as it had the HA_NO_PREFIX_CHAR_KEYS table_flag set...
2017-05-24 11:59:03 +02:00
Sergei Golubchik
54caaf6848 MDEV-10940 plugins.pam still fails in buildbot with valgrind
fixed valgrind warning in a debug output
2017-05-24 11:59:03 +02:00
Marko Mäkelä
7e0f40b333 MDEV-12625 total_index_blocks is uninitialized in ALTER TABLE…ALGORITHM=INPLACE of small tables
Before MDEV-6812, it did not matter that merge_files[].offset was
uninitialized when no files were created.

This problem was introduced in MDEV-6812. There could be a user-visible
impact that the progress reports spit into the error log are bogus.

row_merge_build_indexes(): Initialize merge_files[i].offset.
2017-05-23 18:37:55 +03:00
Daniel Bartholomew
fde86fc1ed bump the VERSION 2017-05-23 09:21:28 -04:00
Vladislav Vaintroub
70630e3c92 Workaround dependency problems (constant rebuilds) in Visual Studio generator 2017-05-23 09:01:36 +00:00
Vladislav Vaintroub
a1b6128ded MDEV-11264 Fix DeviceIoControl() usage in innodb.
As documented in MSDN, DeviceIoControl() needs valid (not NULL) OVERLAPPED
parameter, for files  opened with for OVERLAPPED access.
2017-05-23 08:53:12 +00:00
Marko Mäkelä
8f643e2063 Merge 10.1 into 10.2 2017-05-23 11:09:47 +03:00
Marko Mäkelä
b61700c221 Merge 10.0 into 10.1 2017-05-23 08:59:03 +03:00
Daniel Bartholomew
3aecedb2f8 bump the VERSION 2017-05-23 00:11:17 -04:00
Vladislav Vaintroub
70df2bef7a Merge branch 'bb-10.1-wlad' into 10.1 2017-05-22 13:49:37 +00:00
Rasmus Johansson
2c69c428a7 Changing maturity to stable
Additional tests have been done and conclusion was to update maturity to stable
2017-05-22 13:33:37 +03:00
Marko Mäkelä
70505dd45b Merge 10.1 into 10.2 2017-05-22 09:46:51 +03:00
Vladislav Vaintroub
ee4eda40b9 MDEV-12832 : remove libarchive support from mariabackup,
due to different packaging issues.

Also, Percona thinks that tar support has  many limitations
and should be removed as well( see discussion  in
https://bugs.launchpad.net/percona-xtrabackup/+bug/1681721)

there is an alternative streaming format xbstream that is supported and
does not have these limitations.
2017-05-21 22:19:06 +00:00
Jan Lindström
90c52e5291 MDEV-12615: InnoDB page compression method snappy mostly does not compress pages
Snappy compression method require that output buffer
used for compression is bigger than input buffer.
Similarly lzo require additional work memory buffer.
Increase the allocated buffer accordingly.

buf_tmp_buffer_t: removed unnecessary lzo_mem, crypt_buf_free and
comp_buf_free.

buf_pool_reserve_tmp_slot: use alligned_alloc and if snappy
available allocate size based on snappy_max_compressed_length and
if lzo is available increase buffer by LZO1X_1_15_MEM_COMPRESS.

fil_compress_page: Remove unneeded lzo mem (we use same buffer)
and if output buffer is not yet allocated allocate based similarly
as above.

Decompression does not require additional work area.

    Modify test to use same test as other compression method tests.
2017-05-20 21:51:34 +03:00
Marko Mäkelä
f880200974 After-merge fix: Correct the 32-bit XtraDB result diff. 2017-05-20 17:47:07 +03:00
Marko Mäkelä
fe291c687d After-merge fix: Correct the XtraDB result diff. 2017-05-20 08:43:30 +03:00
Marko Mäkelä
45fe62b8d6 Clean up a test
Changed global parameters will be reset by server restart.
There is no need to save and restore the original values.
2017-05-20 08:41:34 +03:00
Marko Mäkelä
a4d4a5fe82 After-merge fix for MDEV-11638
In commit 360a4a0372
some debug assertions were introduced to the page flushing code
in XtraDB. Add these assertions to InnoDB as well, and adjust
the InnoDB shutdown so that these assertions will not fail.

logs_empty_and_mark_files_at_shutdown(): Advance
srv_shutdown_state from the first phase SRV_SHUTDOWN_CLEANUP
only after no page-dirtying activity is possible
(well, except by srv_master_do_shutdown_tasks(), which will be
fixed separately in MDEV-12052).

rotate_thread_t::should_shutdown(): Already exit the key rotation
threads at the first phase of shutdown (SRV_SHUTDOWN_CLEANUP).

page_cleaner_sleep_if_needed(): Do not sleep during shutdown.
This change is originally from XtraDB.
2017-05-20 08:41:34 +03:00
Marko Mäkelä
65e1399e64 Merge 10.0 into 10.1
Significantly reduce the amount of InnoDB, XtraDB and Mariabackup
code changes by defining pfs_os_file_t as something that is
transparently compatible with os_file_t.
2017-05-20 08:41:20 +03:00
Sergei Golubchik
725e47bfb5 Merge branch '5.5' into 10.0 2017-05-20 00:59:40 +02:00
Sergei Golubchik
eb30230359 compilation warnings in Connect 2017-05-19 22:27:26 +02:00
Marko Mäkelä
7edadde72e Remove bogus __attribute__((nonnull))
These were reported when running tests after compiling the debug server
with -O3 -fsanitize=undefined in GCC 7.1.0.
2017-05-19 22:58:59 +03:00
Marko Mäkelä
9756440fb5 Fix a compilation warning introduced by MDEV-11782
log_crypt(): Do not cast byte* to uint32_t*, because it may break
strict aliasing rules. Instead, cast in the opposite direction.
2017-05-19 22:58:59 +03:00
Marko Mäkelä
6f54d04eb9 Remove unnecessary conversions from integer to double 2017-05-19 22:58:59 +03:00
Marko Mäkelä
907cbadb6f Fix some -Wimplicit-fallthrough warnings in InnoDB
buf_read_ahead_linear(): Do not display a message if the tablespace
is being deleted.

dtype_print(): Add a missing break statement.
2017-05-19 22:58:59 +03:00
Marko Mäkelä
0bfa3dff8b MDEV-12698 innodb.innodb_stats_del_mark test failure
In my merge of the MySQL fix for Oracle Bug#23333990 / WL#9513
I overlooked some subsequent revisions to the test, and I also
failed to notice that the test is actually always failing.

Oracle introduced the parameter innodb_stats_include_delete_marked
but failed to consistently take it into account in FOREIGN KEY
constraints that involve CASCADE or SET NULL.

When innodb_stats_include_delete_marked=ON, obviously the purge of
delete-marked records should update the statistics as well.

One more omission was that statistics were never updated on ROLLBACK.
We are fixing that as well, properly taking into account the
parameter innodb_stats_include_delete_marked.

dict_stats_analyze_index_level(): Simplify an expression.
(Using the ternary operator with a constant operand is unnecessary
obfuscation.)

page_scan_method_t: Revert the change done by Oracle. Instead,
examine srv_stats_include_delete_marked directly where it is needed.

dict_stats_update_if_needed(): Renamed from
row_update_statistics_if_needed().

row_update_for_mysql_using_upd_graph(): Assert that the table statistics
are initialized, as guaranteed by ha_innobase::open(). Update the
statistics in a consistent way, both for FOREIGN KEY triggers and
for the main table. If FOREIGN KEY constraints exist, do not dereference
a freed pointer, but cache the proper value of node->is_delete so that
it matches prebuilt->table.

row_purge_record_func(): Update statistics if
innodb_stats_include_delete_marked=ON.

row_undo_ins(): Update statistics (on ROLLBACK of a fresh INSERT).
This is independent of the parameter; the record is not delete-marked.

row_undo_mod(): Update statistics on the ROLLBACK of updating key columns,
or (if innodb_stats_include_delete_marked=OFF) updating delete-marks.

innodb.innodb_stats_persistent: Renamed and extended from
innodb.innodb_stats_del_mark. Reduced the unnecessarily large dataset
from 262,144 to 32 rows. Test both values of the configuration
parameter innodb_stats_include_delete_marked.
Test that purge is updating the statistics.

innodb_fts.innodb_fts_multiple_index: Adjust the result. The test
is performing a ROLLBACK of an INSERT, which now affects the statistics.

include/wait_all_purged.inc: Moved from innodb.innodb_truncate_debug
to its own file.
2017-05-19 22:56:39 +03:00