Commit graph

176609 commits

Author SHA1 Message Date
Sergei Petrunia
23f9bb966b MDEV-12285: MariaRocks: "[ERROR] mysqld: Deadlock ..." messages in server stderr
The mssages are caused by log_warnings=2.
Set log_warnings=1 for the rocksdb test suite.
2017-03-16 21:28:42 +03:00
Vicențiu Ciorbaru
49de95679d Revert "Make rocksdb build as a deb package too"
This reverts commit 38919f68a1.

Temporary revert to be able to see other failures until builders are
updated.
2017-03-16 09:50:26 +02:00
Sergei Petrunia
17d7cc731e MDEV-12277: rocksdb.rocksdb fails with Sort Aborted error in server stderr
Add a suppression
2017-03-16 09:46:01 +03:00
Sergei Petrunia
c5a20553c0 More testsuite fixes
- Disable rocksdb.show_enge
- Disable rocksdb.rpl_row_not_found

- Run rocksdb.blind_delete_without_tx_api only with binlog_format=row
  (like its .cnf file specifies)
2017-03-16 01:12:01 +03:00
Vicențiu Ciorbaru
38919f68a1 Make rocksdb build as a deb package too 2017-03-15 23:20:20 +02:00
Sergei Petrunia
adb7470742 Disable rocksdb.rpl_row_triggers, rocksdb.trx_info_rpl
These are not expected to work yet.
2017-03-15 23:44:16 +03:00
Sergei Petrunia
6dc2d581d4 Make rocksdb.rocksdb_range pass: MariaDB doesnt support ICP over reverse index scans atm 2017-03-15 23:36:20 +03:00
Sergei Petrunia
c010f06380 MariaRocks: Run rocksdb testsuite with @@rocksdb_flush_log_at_trx_commit=0
The default value of 1 causes many tests to time out (primary reason is
that many tests populate tables with one-row INSERT statements that
run with autocommit=1).
2017-03-15 23:20:28 +03:00
Sergei Petrunia
bf578ff920 Add missing source include/have_rocksdb.inc 2017-03-15 16:02:37 +00:00
Sergei Petrunia
20c085a4b7 MariaRocks: disable rocksdb.mysqldump2 also (needs --print-ordering-key) 2017-03-14 12:23:36 +03:00
Sergei Petrunia
1a3065b51a MariaRocks: make rocksdb.issue495 declare it uses partitioning 2017-03-14 12:23:08 +03:00
Vicențiu Ciorbaru
3eb8bc7408 Make rocksdb not be compiled on x86 architectures 2017-03-14 01:01:11 +02:00
Sergei Petrunia
57672a85e3 MariaRocks: make partition.test work on any platform 2017-03-13 22:04:07 +00:00
Sergei Petrunia
69387c68b5 MariaRocks: update results for innodb_i_s_tables_disabled 2017-03-13 10:34:38 +03:00
Sergei Petrunia
b4ea125252 MariaRocks: disable tests that are known to fail 2017-03-13 10:34:19 +03:00
Sergei Petrunia
17aa495b64 MariaRocks: attempt to get to compile on Windows
\include\mysql/psi/psi.h(1267): error C2061: syntax error:
identifier 'pthread_t' (compiling source file D:\win32-debug\build\src
\storage\rocksdb\rdb_psi.cc)\include\mysql/psi/psi.h(1267):
error C2061: syntax error: identifier 'pthread_t' (compiling source
file D:\win32-debug\build\src\storage\rocksdb\rdb_psi.cc)
2017-03-12 22:52:52 +03:00
Sergei Petrunia
11789a4fbe MariaRocks: Only call pthread_setname_np on platforms that support it
This is a second such fix, the first was wiped out in a merge.
2017-03-12 17:39:45 +03:00
Sergei Petrunia
a72abc8c30 Fix compile on windows 2017-03-12 16:08:26 +03:00
Sergei Petrunia
ec01aa5d6b MariaRocks: fix compilation in Windows: don't use __PRETTY_FUNCTION__ where it is not available 2017-03-12 15:59:46 +03:00
Sergei Petrunia
d49bbf12a2 MariaRocks: post-merge fixes: trivial updates to a few test results 2017-03-12 12:17:48 +03:00
Sergei Petrunia
5b30c7896e Merge branch '10.2' of github.com:MariaDB/server into bb-10.2-mariarocks 2017-03-11 20:12:15 +00:00
Sergei Petrunia
5c1c2f67ec Merge branch 'merge-myrocks' of github.com:MariaDB/mergetrees into bb-10.2-mariarocks
Manually resolved a few conflicts
2017-03-11 20:00:08 +00:00
Otto Kekäläinen
eded6243bc MDEV-12096: Fix ln syntax in debian/rules for libmariadb3 symlink creation
Compatibility links ended up looking like this:
libmysqlclient.so.18 -> /tmp/buildd/mariadb-10.2-10.2.0/debian/tmp/usr/lib/i386-linux-gnu/libmariadb.so.3

This change fixes ln syntax to create links with correct target paths.
2017-03-11 10:54:51 +02:00
Sergei Petrunia
65d01da29c Copy of
commit ba00e640f658ad8d0a4dff09a497a51b8a4de935
Author: Herman Lee <herman@fb.com>
Date:   Wed Feb 22 06:30:06 2017 -0800

    Improve add_index_alter_cardinality test

    Summary:
    Split add_index_inplace_cardinality test out and add a debug_sync point
    to it so that the flush of the memtable occurs while the alter is
    running.
    Closes https://github.com/facebook/mysql-5.6/pull/539

    Reviewed By: alxyang

    Differential Revision: D4597887

    Pulled By: hermanlee

    fbshipit-source-id: faedda2
2017-03-11 07:17:42 +03:00
Oleksandr Byelkin
eb574697c0 fix test for windows 64 2017-03-10 22:44:52 +01:00
Vladislav Vaintroub
f2fe5cb282 Fix several compile warnings on Windows 2017-03-10 19:07:07 +00:00
Vladislav Vaintroub
7c512138a1 Revert MySQL commit that disables writing on Windows while flush is in progress
Reason : after running sysbench tests (rw,update_no_index), in all cases
the throughout was considerably (approx 15%) better with the patch removed.

Reverted commit info
commit 8dc03bee3ade2edcc53a3a257346f4a0a9f0b44c
Author: Yasufumi Kinoshita <yasufumi.kinoshita@oracle.com>
Date:   Wed Nov 20 17:02:24 2013 +0900

Bug #17824101 : WL#7050 CAUSES RW PERFORMANCE REGRESSION AT SOME WINDOWS ENVIRONMENT
2017-03-10 19:07:07 +00:00
Sergei Petrunia
fd39f25ca7 MariaRocks: fix compilation on Oracle Linux Server 7.3.
#define __STDC_FORMAT_MACROS. Unfortunately there is no single location
that would be #includ'ed before everything else. Have to put the #define
into each .cc file
2017-03-10 14:05:17 +03:00
Marko Mäkelä
a20340cf85 Hard-code innodb_page_size as the undo log page size.
InnoDB undo logs currently always use the innodb_page_size,
whether they are stored in the system tablespace, in a
dedicated undo tablespace, or in the temporary tablespace.
Remove redundant page_size parameters.

TrxUndoRsegsIterator::set_next(): return bool instead of page_size.
2017-03-10 08:15:25 +02:00
Marko Mäkelä
0ef91c8958 Simplify InnoDB transaction system initialization.
trx_rseg_mem_create(): Remove the parameter rseg_array.
Update trx_sys->rseg_array directly.
2017-03-10 08:15:25 +02:00
Marko Mäkelä
1417839810 InnoDB purge_sys cleanup.
TrxUndoRsegsIterator::m_purge_sys: Remove. There is only one purge_sys.

purge_sys_t: Renamed from trx_purge_t. Define a constructor and
destructor. Allocate rseg_iter, purge_queue inline.

purge_sys->trx: Remove. Use purge_sys->sess->trx instead.

purge_sys->view_active: Remove. Access to purge_sys->view is always
protected by purge_sys->latch.

trx_purge_sys_create(): Replaced by purge_sys_t::purge_sys_t().

trx_purge_sys_close(): Replaced by purge_sys_t::~purge_sys_t().
2017-03-10 08:15:25 +02:00
Vladislav Vaintroub
9928dbe5f6 Add SRV_ALL_O_DIRECT_FSYNC to switch(srv_flush_method) in log0log.c.
Also in log_checkpoint(), where fil_flush_file_spaces() was
not done on Windows, it is not done.
2017-03-09 22:47:29 +01:00
Vladislav Vaintroub
a98009ab02 MDEV-12201 innodb_flush_method are not available on Windows
Remove srv_win_file_flush_method

- Rename srv_unix_file_flush_method to srv_file_flush_method, and
  rename constants to remove UNIX from them, i.e SRV_UNIX_FSYNC=>SRV_FSYNC

- Add SRV_ALL_O_DIRECT_FSYNC corresponding to current Windows default
(no buffering for either log or data, flush on both log and data)

- change os_file_open on Windows to behave identically to Unix wrt
O_DIRECT and O_DSYNC settings. map O_DIRECT to FILE_FLAG_NO_BUFFERING and
O_DSYNC to FILE_FLAG_WRITE_THROUGH

- remove various #ifdef _WIN32
2017-03-09 19:19:38 +00:00
Oleksandr Byelkin
8e05953dad MDEV-11363: Assertion `!derived->first_sel ect()->first_inner_unit() || derived->first_select()->first_inner_unit()->first_select()-> exclude_from_table_unique_test' failed in TABLE_LIST::set_check_materialized()
Do not try to materialize derived table which already merged (irreversebly).
2017-03-09 19:24:17 +01:00
Marko Mäkelä
70a0500d3c Remove some InnoDB purge definitions from trx0types.h. 2017-03-09 17:35:09 +02:00
Marko Mäkelä
7a30d86e9d Simplify InnoDB startup.
InnoDB needs to collect transactions from the persistent data files
in trx_rseg_array_init() before trx_lists_init_at_db_start() is
executed. But there is no need to create purge_sys->purge_queue
separately from purge_sys.

trx_sys_init_at_db_start(): Change the return type to void.
Remove the direct call to trx_rseg_array_init(). It will be called
by trx_lists_init_at_db_start(), which we are calling.
Initialize the purge system read view.

trx_lists_init_at_db_start(): Call trx_purge_sys_create(), which will
invoke trx_rseg_array_init() to read the undo log segments.

trx_purge_sys_create(): Remove the parameters. Do not initialize
the purge system read view, because trx_sys->rw_trx_list has not
been recovered yet. The purge_sys->view will be initialized at
the end of trx_sys_init_at_db_start().

trx_rseg_array_init(): Remove the parameter. Use purge_sys->purge_queue
directly.

innobase_start_or_create_for_mysql(): Remove the local variable
purge_queue. Do not call trx_purge_sys_create(), because it will be
called by trx_sys_init_at_db_start().
2017-03-09 17:28:06 +02:00
Marko Mäkelä
15bdfeeba8 Remove trx_sys_t::pending_purge_rseg_array.
In MySQL 5.7, there is some redundant code for supposedly handling
an upgrade from an earlier version of InnoDB.

An upgrade of InnoDB between major versions should include a
slow shutdown (innodb_fast_shutdown=0) of the previous version.

A comment in trx_lists_init_at_db_start() confused clean shutdown
and slow shutdown. A clean shutdown does not necessarily guarantee
that there are no active transactions. A slow shutdown guarantees
that.

Because there was no code to handle rollback of recovered transactions
that happened to use the rollback segment slots that MySQL 5.7.2
repurposed for temporary undo logs, the upgrade is not working in all
cases, and we may as well remove the code to handle purging.

trx_sys_t::pending_purge_rseg_array: Remove.

trx_undo_get_undo_rec_low(): Define as static. Remove the parameter
is_redo_rseg.

trx_undo_get_undo_rec(), trx_rseg_get_on_id(): Remove the parameter
is_redo_rseg.

trx_rseg_mem_free(): Remove the second parameter.

trx_sys_get_nth_rseg(): Replace with trx_rseg_get_on_id().

trx_rseg_schedule_pending_purge(): Remove.
2017-03-09 15:58:33 +02:00
Oleksandr Byelkin
24cbc8dae3 MDEV-11966: Impossible to execute prepared ANALYZE SELECT
Prepare os ANALYZE now respond as EXPLAIN.
2017-03-09 11:04:51 +01:00
Marko Mäkelä
5ff6694d70 enum btr_latch_mode: Incorporate some flags.
This fixes some GCC 6.3.0 warnings and makes the code a little
more debugging-friendly.
2017-03-09 10:30:36 +02:00
Vladislav Vaintroub
e88f6f4761 MDEV-12125 Use FIND_PACKAGE(OpenSSL) to find openssl 2017-03-08 22:30:03 +00:00
Marko Mäkelä
29a980cf5c MDEV-11688 follow-up: More robust shutdown after aborted startup.
After starting MariaDB 10.2 with an invalid value of
--innodb-flush-method= (the empty string), shutdown would
attempt to dereference some NULL pointers. This was probably broken
in commit 81b7fe9d38 which implemented
shutdown after aborted startup.

logs_empty_and_mark_files_at_shutdown(): Allow shutdown even if
lock_sys, log_sys, or fil_system is NULL.

os_aio_free(): Tolerate os_aio_segment_wait_events==NULL.

innobase_start_or_create_for_mysql(): Do not invoke
srv_init_abort() before initializing all mutexes for the temporary files.

innodb_shutdown(): Tolerate buf_pool_ptr==NULL.
2017-03-08 22:36:10 +02:00
Marko Mäkelä
5da6bd7b95 MDEV-11027 InnoDB log recovery is too noisy
Provide more useful progress reporting of crash recovery.

recv_sys_t::progress_time: The time of the last report.

recv_sys_t::report(ib_time_t): Determine whether progress should
be reported.

recv_scan_print_counter: Remove.

log_group_read_log_seg(): After after each I/O request, invoke
recv_sys_t::report() and report progress if needed.

recv_apply_hashed_log_recs(): Change the return type back to void
(DB_SUCCESS was always returned), and rename the parameter to last_batch.
At the start of each batch, if there are pages to be recovered,
issue a message.
2017-03-08 14:55:11 +02:00
Oleksandr Byelkin
0b1abc2f0f MDEV-10704: Assertion `field->field->table == table_arg' failed in fill_record(THD*, TABLE*, List<Item>&, List<Item>&, bool, bool)
the bug test suite
2017-03-08 12:11:49 +01:00
Daniel Black
8c3b98fe5a Whitespace correction to avoid compile warning
Introduced 2f63e2e2a

Compiler error was:

sql/log_event.cc: In function ‘size_t log_event_print_value(IO_CACHE*, const uchar*, uint, uint, char*, size_t)’:
sql/log_event.cc:2897:7: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
       if (!ptr)
       ^~
sql/log_event.cc:2900:9: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
         int32 i32= uint2korr(ptr);
         ^~~~~

Added in 950abd526

Error was:

sql/item_sum.cc:3478:5: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
     if ((!args[i]->fixed &&
     ^~
/sql/item_sum.cc:3482:7: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
       with_subselect|= args[i]->with_subselect;
       ^~~~~~~~~~~~~~

Signed-off-by: Daniel Black <daniel.black@au.ibm.com>
2017-03-08 11:31:20 +04:00
Igor Babaev
2d948ebd19 Fixed bug mdev-12185.
The bug was caused by a wrong order of statements in With_clause::print().
As a result any view definition containing WITH clause with several
CTE specifications was put the frm file in a syntactically incorrect
form.
2017-03-07 21:12:59 -08:00
Vladislav Vaintroub
3b30031d03 MDEV-12202 Do not package embedded in MSI
Also get rid of example ini files, they do not provide any value,
just confusion
2017-03-07 21:22:25 +00:00
Marko Mäkelä
2bca41265c Remove MLOG_COMP_REC_SEC_DELETE_MARK.
The InnoDB redo log record type MLOG_COMP_REC_SEC_DELETE_MARK has
been unused for a long time, and it has never been written after
WL#8845 introduced the redo log format identifier in MySQL 5.7.9
or MariaDB Server 10.2.2. Thus, removing the record type does not
constitute any functional change.
2017-03-07 19:07:41 +02:00
Marko Mäkelä
89d80c1b0b Fix many -Wconversion warnings.
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).
2017-03-07 19:07:27 +02:00
Daniel Black
d2f5e62422 travis: add gcc-4.8 2017-03-07 20:51:08 +04:00
Daniel Black
f2c1e06a94 Travis: Revert to optional MYSQL_{BUILD_CC,BUILD_CXX,COMPILER_LAUNCHER}
To facilitate multiple build types in Travis, the environment variable
MYSQL_{BUILD_CC,BUILD_CXX} will be passed to cmake if used. This will
fallback to $CC/$CXX otherwise.

Added MYSQL_COMPILER_LAUNCHER (usually ccache) which isn't supported
until cmake-3.4, which isn't in travis (trusty), but hopefully a later
version can use it or in CI systems other than travis.

Signed-off-by: Daniel Black <daniel.black@au.ibm.com>
2017-03-07 20:51:08 +04:00