Commit graph

177873 commits

Author SHA1 Message Date
Nirbhay Choubey
bf256392e6 Support for server error messages in Hindi. 2017-08-03 15:40:23 +04:00
Sergei Petrunia
488f46f3de MDEV-13153: Assertion ... failed on partitioned RocksDB table
ha_partition creates temporary ha_XXX objects for its partitions when
performing DDL operations. The objects were created on a MEM_ROOT and
never deleted.
This works as long as ha_XXX objects free all data ha_XXX::close() and
don't rely on a proper destructor invocation. Unfortunately, ha_rocksdb
includes String members which need to be delete'd properly.

Fixed the bug by having ha_partition::~ha_partition delete these temporary
objects.
2017-07-28 13:22:28 +00:00
Alexander Barkov
8c0129dc32 MDEV-13396 Unexpected "alter routine comand defined" during CREATE OR REPLACE PROCEDURE 2017-07-28 12:30:30 +04:00
Sergei Petrunia
2a1035b004 MDEV-13351: Server crashes in st_select_lex::set_explain_type upon UNION with window function
Make st_select_lex::set_explain_type() take into account that JOIN_TABs
it is traversing may be also post-join aggregation JOIN_TABs (which
have pos_in_table_list=NULL, etc).
2017-07-21 20:09:19 +03:00
Sergei Petrunia
e2afdb1ee4 MDEV-13344: Server crashes in in AGGR_OP::put_record on subquery
Add a testcase
2017-07-21 19:06:01 +03:00
Sergei Petrunia
17fc288b30 MDEV-13352: Server crashes in st_join_table::remove_duplicates
Do not run the window function computation step when the select
produces no rows (zero_result_cause!=NULL).
This may cause reads from uninitialized memory.

We still need to run the window function computation step when
the output includes just one row  (for example
SELECT MAX(col), RANK() OVER (...) FROM t1 WHERE 1=0).

This fix also resolves an issue with queries with window functions
producing an output row where should be none, like in
SELECT ROW_NUMBER() FROM t1 WHERE 1=0.

Updated a few test results in the existing tests to reflect this.
2017-07-21 13:53:58 +03:00
Alexander Kuleshov
bc75c57cfc update .gitignore
during build on 10.2 following files are generated:

  * scripts/galera_new_cluster
  * scripts/galera_recovery
  * support-files/mariadb.service
  * support-files/mariadb.pp

and they are untracked for git. Let's add them to .gitignore
2017-07-17 22:24:24 +04:00
Vladislav Vaintroub
013595f56f MDEV-13332 mariabackup from 10.2.x crashes with --ftwrl-* options
Fixed null pointer dereference in parsing "show full processlist" output
with atoi().

Some  Innodb background thread has NULL in 'Time' column,
thus  backup would crash with when atoi is applied to null pointer.
2017-07-17 17:05:06 +00:00
Sergei Golubchik
1b3cf18e4e CONNECT: accessed p[i] outside of the loop
this failed json.test on fulltest2 builder
2017-07-15 19:36:43 +02:00
Sergei Golubchik
95dcfeded4 deb packages didn't build
because they compile with -Werror=format-security
2017-07-13 19:19:43 +02:00
Sergei Golubchik
b9aab7d9e3 Merge branch 'connect/10.2' into 10.2 2017-07-13 10:33:24 +02:00
Sergei Golubchik
a76c05bba0 Require either OpenSSL 1.0 or 1.1 on Debian 2017-07-13 09:14:17 +02:00
Sergei Golubchik
7fc75c420a fix compilation with OpenSSL 1.1 2017-07-13 09:14:17 +02:00
Vicențiu Ciorbaru
1d730ac42d Rename mariadb-backup-10.2.files to mariadb-backup-10.2.install
.files extension is not used by debian packaging, .install is.
2017-07-12 21:41:29 +03:00
Varun Gupta
9b4d281ecd MDEV-13826: Floating point exception in Filesort_tracker::print_json_members(Json_writer*)
Whenever Filesort_tracker has r_loops=0, r_ouptut_rows would be 0, so we should add the value zero
to the member "r_output_rows" explicitly
2017-07-12 19:46:44 +05:30
Daniel Bartholomew
52a5bfa078 bump the VERSION 2017-07-12 09:42:21 -04:00
Daniel Black
3904014ed3 MDEV-13288: Travis dependency cracklib-runtime 2017-07-11 13:27:34 +04:00
Elena Stepanova
5ff2db7f67 Follow-up for MDEV-13089 (identifier quoting in partitioning)
Adjust results for storage_engine tests
2017-07-10 00:05:45 +03:00
Elena Stepanova
4df726e180 storage_engine subsuites should also be disabled for XtraDB 2017-07-10 00:05:06 +03:00
Elena Stepanova
3af125e082 Updated list of unstable tests for 10.2.7 2017-07-09 20:42:29 +03:00
Elena Stepanova
93e32d725c Follow-up for MDEV-13089 (identifier quoting in partitioning)
Adjust results for tests in non-default suites
2017-07-09 20:38:57 +03:00
Elena Stepanova
970719cb15 MDEV-12785 MTR complains "Can't exec mariadb_config"
Adjust search paths for mariadb_config and make further assignment
conditional
2017-07-09 20:36:19 +03:00
Sergei Golubchik
51256b603a fixes for lower_case_table_names=2 2017-07-09 11:43:42 +02:00
Sergei Golubchik
c9801135c1 Merge branch '10.1' into 10.2 2017-07-08 09:56:28 +02:00
Sergei Golubchik
5789934fda compilation warning 2017-07-07 20:13:44 +02:00
Marko Mäkelä
42f657cd2f MDEV-13267 At startup with crash recovery: mtr_t::commit_checkpoint(lsn_t, bool): Assertion `!recv_no_log_write' failed
This is a bogus debug assertion failure that should be possible
starting with MariaDB 10.2.2 (which merged WL#7142 via MySQL 5.7.9).

While generating page-change redo log records is strictly out of the
question during tat certain parts of crash recovery, the
fil_names_clear() is only emitting informational MLOG_FILE_NAME
and MLOG_CHECKPOINT records to guarantee that if the server is killed
during or soon after the crash recovery, subsequent crash recovery
will be possible.

The metadata buffer that fil_names_clear() is flushing to the redo log
is being filled by recv_init_crash_recovery_spaces(), right before
starting to apply redo log, by invoking fil_names_dirty() on every
discovered tablespace for which there are changes to apply.

When it comes to Mariabackup (xtrabackup --prepare), it is strictly out
of the question to generate any redo log whatsoever, because that could
break the restore of incremental backups by causing LSN deviation.
So, the fil_names_dirty() call must be skipped when restoring backups.

recv_recovery_from_checkpoint_start(): Do not invoke fil_names_clear()
when restoring a backup.

mtr_t::commit_checkpoint(): Remove the failing assertion. The only
caller is fil_names_clear(), and it must be called by
recv_recovery_from_checkpoint_start() for normal server startup to be
crash-safe. The debug assertion in mtr_t::commit() will still
catch rogue redo log writes.
2017-07-07 18:40:57 +03:00
Sergei Golubchik
9e11e055ce Merge branch '10.0' into 10.1 2017-07-07 11:30:03 +02:00
Marko Mäkelä
f20693c231 Remove a reference to a non-existent include directory 2017-07-07 11:57:39 +03:00
Daniel Black
3b862aaa10 travis: Debian build - minimise packages, enable ccache
Even disabling the ccache on the Debian build didn't always prevent
the Travis build running out of space.

As an alternative strategy, the number of alternative compilers has been
reduced to save space. This additional space has been partially reused
by the ccache.

Debian build specific packages have been removed from other builds.
2017-07-07 08:27:33 +04:00
Sergei Golubchik
6b99859fff after-merge fix for a7ed4644a6
(10.0+ changes, as specified in the MDEV)

and remove unused variable (compiler warning)
2017-07-06 23:47:38 +02:00
Sergei Golubchik
89dc445a55 Merge branch '5.5' into 10.0 2017-07-06 23:47:33 +02:00
Sergei Golubchik
4d21313549 coverity medium warnings 2017-07-06 23:46:28 +02:00
Marko Mäkelä
c89c49427d Reduce a test so that it fails less frequently on buildbot
There is an inherent race condition between Mariabackup and the
MariaDB server when the InnoDB redo log is being copied. It is
possible that the tail of the circular redo log is overwriting
the head of the log before Mariabackup gets a chance to read it.
So, we reduce the test to generate less redo log. Also, enable
the test on all supported innodb_page_size.
2017-07-06 23:14:39 +03:00
Marko Mäkelä
d902d43ce7 Merge 10.1 into 10.2 2017-07-06 20:28:08 +03:00
Marko Mäkelä
99d52c45cb Mariabackup: Copy all of the redo log correctly
xtrabackup_copy_log(), xtrabackup_copy_logfile():
Change the Boolean parameter to an enum, with the values
COPY_FIRST, COPY_ONLINE, COPY_LAST.

xtrabackup_copy_log(): Return the latest scanned LSN,
which may be less than the last copied LSN. Remove some
dead code that was duplicating some logic that in 10.2
has been moved to log_group_read_log_seg().

log_copying_thread(): Correct the termination condition.

stop_backup_threads(): Shut down the threads that were
created during backup.
2017-07-06 20:17:46 +03:00
Sergei Golubchik
f305a7ce4b bugfix: long partition names 2017-07-06 19:09:47 +02:00
Marko Mäkelä
d7b21a49c2 Mariabackup: Remove unused parameters and fix some memory leaks
Use GET_STR instead of GET_STR_ALLOC, so that the memory will
cannot be leaked. For some reason, calling my_cleanup_options()
on xb_server_options or xb_client_options would not work.
2017-07-06 19:14:44 +03:00
Vladislav Vaintroub
60e6170893 mysqltest - increase size of the "die message".
This reduces the probability having output of external utilities
(e.g mariabackup) truncated.
2017-07-06 14:15:32 +00:00
Vladislav Vaintroub
6f1f911497 MDEV-12445 : Rocksdb does not shutdown worker threads and aborts in memleak check on server shutdown
Disable memory leak check in debug server, if rocksdb is loaded.
There is some subtle bug somewhere in 3rd party code we cannot
do much about.

The bug is manifested as follows

Rocksdb does not shutdown worker threads, when plugin is shut down. Thus
OS does not unload the library since there are some active threads using
this library's code. Thus global destructors in the library do not run,
and there is still some memory allocated when server exits.

The workaround disables server's memory leak check, if rocksdb engine was
loaded.
2017-07-06 11:36:17 +00:00
Vladislav Vaintroub
53d6325db0 Fix assertion in rocksb.
Use thd_query_safe() to read query from a different connection.
2017-07-06 11:35:54 +00:00
Marko Mäkelä
2b5c9bc2c8 MDEV-13247 innodb_log_compressed_pages=OFF breaks crash recovery of ROW_FORMAT=COMPRESSED tables
The option innodb_log_compressed_pages was contributed by
Facebook to MySQL 5.6. It was disabled in the 5.6.10 GA release
due to problems that were fixed in 5.6.11, which is when the
option was enabled.

The option was set to innodb_log_compressed_pages=ON by default
(disabling the feature), because safety was considered more
important than speed. The option innodb_log_compressed_pages=OFF
can *CORRUPT* ROW_FORMAT=COMPRESSED tables on crash recovery
if the zlib deflate function is behaving differently (producing
a different amount of compressed data) from how it behaved
when the redo log records were written (prior to the crash recovery).

In MDEV-6935, the default value was changed to
innodb_log_compressed_pages=OFF. This is inherently unsafe, because
there are very many different environments where MariaDB can be
running, using different zlib versions. While zlib can decompress
data just fine, there are no guarantees that different versions will
always compress the same data to the exactly same size. To avoid
problems related to zlib upgrades or version mismatch, we must
use a safe default setting.

This will reduce the write performance for users of
ROW_FORMAT=COMPRESSED tables. If you configure
innodb_log_compressed_pages=ON, please make sure that you will
always cleanly shut down InnoDB before upgrading the server
or zlib.
2017-07-06 14:18:53 +03:00
Sergey Vojtovich
4e08cdf52a Fixed build failure on Windows 2017-07-06 10:39:21 +04:00
Fredrik Fornwall
7e6a600d13 Remove obsolete synonyms for access bits
Replace S_IREAD, S_IWRITE and S_IEXEC with more modern equivalents.
Fixes building for Android.
2017-07-06 09:52:12 +04:00
Marko Mäkelä
0ff62ad808 InnoDB: Remove a redundant condition and an outdated comment
Since MariaDB 10.2.2, temporary table metadata is not written
to the InnoDB data dictionary tables. Therefore,
the DICT_TF2_TEMPORARY flag cannot be set in SYS_TABLES,
except if there exist orphan temporary tables that were created
before MariaDB 10.2.2.

trx_resurrect_table_locks(): Do not skip temporary tables.
If a resurrect transaction modified a temporary table that was
created before MariaDB 10.2.2, that table would be treated
internally as a persistent table. It is safer to resurrect
locks than to skip the table, because the table would be modified
on transaction rollback.
2017-07-06 02:14:33 +03:00
Elena Stepanova
ec76945dac MDEV-13248 binlog.binlog_parallel_replication_marks_row fails in buildbot
The test did not handle correctly possible difference in system
timezone. The fix is to remove non-functional setting of local
time_zone and instead allow timestamp replacement to work with
any date/time
2017-07-06 00:45:43 +03:00
Marko Mäkelä
72a2de92a1 Avoid a hang when InnoDB startup is aborted during redo log apply
buf_flush_page_cleaner_coordinator: In the first loop, use an
appropriate termination condition, waiting for !recv_writer_thread_active.

logs_empty_and_mark_files_at_shutdown(): Signal recv_sys->flush_start
in case the recv_writer_thread was never started, or
buf_flush_page_cleaner_coordinator failed to notice its termination.

innobase_start_or_create_for_mysql(): Remove a redundant, unreachable
condition, and properly release resources when aborting startup due to
recv_sys->found_corrupt_log.
2017-07-05 22:09:28 +03:00
Sergei Golubchik
f6633bf058 Merge branch '10.1' into 10.2 2017-07-05 19:08:55 +02:00
Eugene Kosov
4693f01f57 Fix warning discovered by ASAN
Patch submitted by Eugene Kosov <claprix@yandex.ru>,
comments added by commiter.

Signed-off-by: Vicențiu Ciorbaru <vicentiu@mariadb.org>
2017-07-05 18:28:38 +03:00
Sergei Golubchik
fc5932a1b7 update libmariadb 2017-07-05 17:15:59 +02:00
Sergei Golubchik
1ea3c93fda MDEV-9144 JSON data type
for compatibility with MySQL, add 'JSON' as an alias for 'TEXT'
2017-07-05 17:15:59 +02:00