1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +03:00

Merge 10.11 into 11.4

This commit is contained in:
Marko Mäkelä
2025-03-28 13:55:21 +02:00
679 changed files with 8065 additions and 5646 deletions

View File

@ -31,7 +31,7 @@ ENDIF()
# in RPM's: # in RPM's:
#set(CPACK_RPM_SPEC_MORE_DEFINE "%define __spec_install_post /bin/true") #set(CPACK_RPM_SPEC_MORE_DEFINE "%define __spec_install_post /bin/true")
FOREACH(p CMP0022 CMP0046 CMP0040 CMP0048 CMP0054 CMP0067 CMP0074 CMP0075 CMP0069 CMP0135) FOREACH(p CMP0022 CMP0046 CMP0040 CMP0048 CMP0054 CMP0056 CMP0067 CMP0074 CMP0075 CMP0069 CMP0135)
IF(POLICY ${p}) IF(POLICY ${p})
CMAKE_POLICY(SET ${p} NEW) CMAKE_POLICY(SET ${p} NEW)
ENDIF() ENDIF()
@ -247,7 +247,7 @@ ENDIF()
OPTION(WITH_MSAN "Enable memory sanitizer" OFF) OPTION(WITH_MSAN "Enable memory sanitizer" OFF)
IF (WITH_MSAN) IF (WITH_MSAN)
MY_CHECK_AND_SET_COMPILER_FLAG("-fsanitize=memory -fsanitize-memory-track-origins -U_FORTIFY_SOURCE" DEBUG RELWITHDEBINFO) MY_CHECK_AND_SET_COMPILER_FLAG("-fsanitize=memory -fsanitize-memory-track-origins -U_FORTIFY_SOURCE")
IF(NOT (have_C__fsanitize_memory__fsanitize_memory_track_origins__U_FORTIFY_SOURCE IF(NOT (have_C__fsanitize_memory__fsanitize_memory_track_origins__U_FORTIFY_SOURCE
AND have_CXX__fsanitize_memory__fsanitize_memory_track_origins__U_FORTIFY_SOURCE)) AND have_CXX__fsanitize_memory__fsanitize_memory_track_origins__U_FORTIFY_SOURCE))
MESSAGE(FATAL_ERROR "Compiler doesn't support -fsanitize=memory flags") MESSAGE(FATAL_ERROR "Compiler doesn't support -fsanitize=memory flags")
@ -257,7 +257,7 @@ IF (WITH_MSAN)
MESSAGE(FATAL_ERROR "C++ Compiler requires support for -stdlib=libc++") MESSAGE(FATAL_ERROR "C++ Compiler requires support for -stdlib=libc++")
ENDIF() ENDIF()
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
MY_CHECK_AND_SET_LINKER_FLAG("-fsanitize=memory" DEBUG RELWITHDEBINFO) MY_CHECK_AND_SET_LINKER_FLAG("-fsanitize=memory")
IF(NOT HAVE_LINK_FLAG__fsanitize_memory) IF(NOT HAVE_LINK_FLAG__fsanitize_memory)
MESSAGE(FATAL_ERROR "Linker doesn't support -fsanitize=memory flags") MESSAGE(FATAL_ERROR "Linker doesn't support -fsanitize=memory flags")
ENDIF() ENDIF()

View File

@ -2219,6 +2219,13 @@ generate_stats(conclusions *con, option_string *eng, stats *sptr)
stats *ptr; stats *ptr;
unsigned int x; unsigned int x;
if (eng && eng->string)
con->engine= eng->string;
/* Early return when iterations is 0 to avoid accessing uninitialized sptr */
if (iterations == 0)
return;
con->min_timing= sptr->timing; con->min_timing= sptr->timing;
con->max_timing= sptr->timing; con->max_timing= sptr->timing;
con->min_rows= sptr->rows; con->min_rows= sptr->rows;
@ -2239,11 +2246,6 @@ generate_stats(conclusions *con, option_string *eng, stats *sptr)
con->min_timing= ptr->timing; con->min_timing= ptr->timing;
} }
con->avg_timing= con->avg_timing/iterations; con->avg_timing= con->avg_timing/iterations;
if (eng && eng->string)
con->engine= eng->string;
else
con->engine= NULL;
} }
void void

View File

@ -6801,7 +6801,7 @@ int read_line()
my_bool have_slash= FALSE; my_bool have_slash= FALSE;
enum {R_NORMAL, R_Q, R_SLASH_IN_Q, enum {R_NORMAL, R_Q, R_SLASH_IN_Q,
R_COMMENT, R_LINE_START} state= R_LINE_START; R_COMMENT, R_LINE_START, R_CSTYLE_COMMENT} state= R_LINE_START;
DBUG_ENTER("read_line"); DBUG_ENTER("read_line");
*p= 0; *p= 0;
@ -6888,9 +6888,23 @@ int read_line()
state= R_Q; state= R_Q;
} }
} }
else if (c == '*' && last_char == '/')
{
state= R_CSTYLE_COMMENT;
break;
}
have_slash= is_escape_char(c, last_quote); have_slash= is_escape_char(c, last_quote);
break; break;
case R_CSTYLE_COMMENT:
if (c == '!')
// Got the hint introducer '/*!'. Switch to normal processing of
// next following characters
state= R_NORMAL;
else if (c == '/' && last_char == '*')
state= R_NORMAL;
break;
case R_COMMENT: case R_COMMENT:
if (c == '\n') if (c == '\n')
{ {

View File

@ -282,6 +282,7 @@ STRING(APPEND CMAKE_CXX_STANDARD_LIBRARIES " ws2_32.lib synchronization.lib")
# System checks # System checks
SET(SIGNAL_WITH_VIO_CLOSE 1) # Something that runtime team needs SET(SIGNAL_WITH_VIO_CLOSE 1) # Something that runtime team needs
SET(HAVE_UNACCESSIBLE_AFTER_MEM_DECOMMIT 1)
# IPv6 constants appeared in Vista SDK first. We need to define them in any case if they are # IPv6 constants appeared in Vista SDK first. We need to define them in any case if they are
# not in headers, to handle dual mode sockets correctly. # not in headers, to handle dual mode sockets correctly.

View File

@ -456,6 +456,11 @@
/* This should mean case insensitive file system */ /* This should mean case insensitive file system */
#cmakedefine FN_NO_CASE_SENSE 1 #cmakedefine FN_NO_CASE_SENSE 1
/* Whether an anonymous private mapping is unaccessible after
madvise(MADV_DONTNEED) or madvise(MADV_FREE) or similar has been invoked;
this is the case with Microsoft Windows VirtualFree(MEM_DECOMMIT) */
#cmakedefine HAVE_UNACCESSIBLE_AFTER_MEM_DECOMMIT 1
#cmakedefine HAVE_CHARSET_armscii8 1 #cmakedefine HAVE_CHARSET_armscii8 1
#cmakedefine HAVE_CHARSET_ascii 1 #cmakedefine HAVE_CHARSET_ascii 1
#cmakedefine HAVE_CHARSET_big5 1 #cmakedefine HAVE_CHARSET_big5 1

View File

@ -44,8 +44,8 @@ Street, Fifth Floor, Boston, MA 02110-1335 USA
#include <string.h> #include <string.h>
#include <mysql.h> #include <mysql.h>
#include <my_dir.h> #include <my_dir.h>
#include <ut0mem.h>
#include <os0file.h> #include <os0file.h>
#include "buf0buf.h"
#include <srv0start.h> #include <srv0start.h>
#include <algorithm> #include <algorithm>
#include <mysqld.h> #include <mysqld.h>
@ -594,8 +594,9 @@ static struct my_option ibx_long_options[] =
"--apply-log.", "--apply-log.",
(uchar*) &ibx_xtrabackup_use_memory, (uchar*) &ibx_xtrabackup_use_memory,
(uchar*) &ibx_xtrabackup_use_memory, (uchar*) &ibx_xtrabackup_use_memory,
0, GET_LL, REQUIRED_ARG, 100*1024*1024L, 1024*1024L, LONGLONG_MAX, 0, 0, GET_LL, REQUIRED_ARG, 96 << 20,
1024*1024L, 0}, innodb_buffer_pool_extent_size, SIZE_T_MAX, 0,
innodb_buffer_pool_extent_size, 0},
{"innodb-force-recovery", OPT_INNODB_FORCE_RECOVERY, {"innodb-force-recovery", OPT_INNODB_FORCE_RECOVERY,
"This option starts up the embedded InnoDB instance in crash " "This option starts up the embedded InnoDB instance in crash "

View File

@ -1417,8 +1417,9 @@ struct my_option xb_client_options[]= {
"The value is used in place of innodb_buffer_pool_size. " "The value is used in place of innodb_buffer_pool_size. "
"This option is only relevant when the --prepare option is specified.", "This option is only relevant when the --prepare option is specified.",
(G_PTR *) &xtrabackup_use_memory, (G_PTR *) &xtrabackup_use_memory, 0, (G_PTR *) &xtrabackup_use_memory, (G_PTR *) &xtrabackup_use_memory, 0,
GET_LL, REQUIRED_ARG, 100 * 1024 * 1024L, 1024 * 1024L, LONGLONG_MAX, 0, GET_ULL, REQUIRED_ARG, 96 << 20, innodb_buffer_pool_extent_size,
1024 * 1024L, 0}, size_t(-ssize_t(innodb_buffer_pool_extent_size)),
0, innodb_buffer_pool_extent_size, 0},
{"throttle", OPT_XTRA_THROTTLE, {"throttle", OPT_XTRA_THROTTLE,
"limit count of IO operations (pairs of read&write) per second to IOS " "limit count of IO operations (pairs of read&write) per second to IOS "
"values (for '--backup')", "values (for '--backup')",
@ -2483,7 +2484,7 @@ static bool innodb_init_param()
} }
srv_sys_space.normalize_size(); srv_sys_space.normalize_size();
srv_lock_table_size = 5 * (srv_buf_pool_size >> srv_page_size_shift); srv_lock_table_size = 5 * buf_pool.curr_size();
/* -------------- Log files ---------------------------*/ /* -------------- Log files ---------------------------*/
@ -2505,11 +2506,8 @@ static bool innodb_init_param()
srv_adaptive_flushing = FALSE; srv_adaptive_flushing = FALSE;
/* We set srv_pool_size here in units of 1 kB. InnoDB internally buf_pool.size_in_bytes_max = size_t(xtrabackup_use_memory);
changes the value so that it becomes the number of database pages. */ buf_pool.size_in_bytes_requested = buf_pool.size_in_bytes_max;
srv_buf_pool_size = (ulint) xtrabackup_use_memory;
srv_buf_pool_chunk_unit = srv_buf_pool_size;
srv_n_read_io_threads = (uint) innobase_read_io_threads; srv_n_read_io_threads = (uint) innobase_read_io_threads;
srv_n_write_io_threads = (uint) innobase_write_io_threads; srv_n_write_io_threads = (uint) innobase_write_io_threads;
@ -6272,9 +6270,22 @@ xtrabackup_apply_delta(
buf + FSP_HEADER_OFFSET + FSP_SIZE); buf + FSP_HEADER_OFFSET + FSP_SIZE);
if (mach_read_from_4(buf if (mach_read_from_4(buf
+ FIL_PAGE_SPACE_ID)) { + FIL_PAGE_SPACE_ID)) {
#ifdef _WIN32
os_offset_t last_page =
os_file_get_size(dst_file) /
page_size;
/* os_file_set_size() would
shrink the size of the file */
if (last_page < n_pages &&
!os_file_set_size(
dst_path, dst_file,
n_pages * page_size))
#else
if (!os_file_set_size( if (!os_file_set_size(
dst_path, dst_file, dst_path, dst_file,
n_pages * page_size)) n_pages * page_size))
#endif /* _WIN32 */
goto error; goto error;
} else if (fil_space_t* space } else if (fil_space_t* space
= fil_system.sys_space) { = fil_system.sys_space) {

View File

@ -97,7 +97,12 @@ static inline void MY_RELAX_CPU(void)
/* Changed from __ppc_get_timebase for musl and clang compatibility */ /* Changed from __ppc_get_timebase for musl and clang compatibility */
__builtin_ppc_get_timebase(); __builtin_ppc_get_timebase();
#elif defined __GNUC__ && defined __riscv #elif defined __GNUC__ && defined __riscv
__builtin_riscv_pause(); /* The GCC-only __builtin_riscv_pause() or the pause instruction is
encoded like a fence instruction with special parameters. On RISC-V
implementations that do not support arch=+zihintpause this
instruction could be interpreted as a more expensive memory fence;
it should not be an illegal instruction. */
__asm__ volatile(".long 0x0100000f" ::: "memory");
#elif defined __GNUC__ #elif defined __GNUC__
/* Mainly, prevent the compiler from optimizing away delay loops */ /* Mainly, prevent the compiler from optimizing away delay loops */
__asm__ __volatile__ ("":::"memory"); __asm__ __volatile__ ("":::"memory");

View File

@ -173,9 +173,13 @@ extern void my_free(void *ptr);
extern void *my_memdup(PSI_memory_key key, const void *from,size_t length,myf MyFlags); extern void *my_memdup(PSI_memory_key key, const void *from,size_t length,myf MyFlags);
extern char *my_strdup(PSI_memory_key key, const char *from,myf MyFlags); extern char *my_strdup(PSI_memory_key key, const char *from,myf MyFlags);
extern char *my_strndup(PSI_memory_key key, const char *from, size_t length, myf MyFlags); extern char *my_strndup(PSI_memory_key key, const char *from, size_t length, myf MyFlags);
extern my_bool my_use_large_pages;
int my_init_large_pages(my_bool super_large_pages); int my_init_large_pages(void);
uchar *my_large_malloc(size_t *size, myf my_flags); uchar *my_large_malloc(size_t *size, myf my_flags);
#if defined _WIN32 || defined HAVE_MMAP
char *my_large_virtual_alloc(size_t *size);
#endif
void my_large_free(void *ptr, size_t size); void my_large_free(void *ptr, size_t size);
void my_large_page_truncate(size_t *size); void my_large_page_truncate(size_t *size);

35
include/my_virtual_mem.h Normal file
View File

@ -0,0 +1,35 @@
/* Copyright (c) 2025, MariaDB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
#pragma once
/*
Functionality for handling virtual memory
(reserve, commit, decommit, release)
*/
#include <stddef.h> /*size_t*/
#ifdef __cplusplus
extern "C" {
#endif
char *my_virtual_mem_reserve(size_t *size);
char *my_virtual_mem_commit(char *ptr, size_t size);
void my_virtual_mem_decommit(char *ptr, size_t size);
void my_virtual_mem_release(char *ptr, size_t size);
#ifdef __cplusplus
}
#endif

View File

@ -1,6 +1,6 @@
# We use this --source include to mark a test as taking long to run. # We use this --source include to mark a test as taking long to run.
# We can use this to schedule such test early (to not be left with # We can use this to schedule such test early (to not be left with
# only one or two long tests running, and rests of works idle), or to # only one or two long tests running, and rests of workers idle), or to
# run a quick test skipping long-running test cases. # run a quick test skipping long-running test cases.
--source include/no_valgrind_without_big.inc --source include/no_valgrind_without_big.inc

View File

@ -2,6 +2,7 @@
# Tests BACKUP STAGE locking # Tests BACKUP STAGE locking
######################################################################## ########################################################################
--source include/long_test.inc
--source include/have_innodb.inc --source include/have_innodb.inc
--source include/have_metadata_lock_info.inc --source include/have_metadata_lock_info.inc
--source include/not_embedded.inc --source include/not_embedded.inc

View File

@ -776,7 +776,7 @@ SELECT ST_DISTANCE_SPHERE(1, 1, NULL);
ST_DISTANCE_SPHERE(1, 1, NULL) ST_DISTANCE_SPHERE(1, 1, NULL)
NULL NULL
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(1 0)'), ST_GEOMFROMTEXT('LINESTRING(0 0, 1 1)')) as result; SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(1 0)'), ST_GEOMFROMTEXT('LINESTRING(0 0, 1 1)')) as result;
ERROR HY000: Internal error: st_distance_sphere ERROR HY000: Calling geometry function st_distance_sphere with unsupported types of arguments.
# Test Points and radius # Test Points and radius
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)')) as result; SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)')) as result;
result result
@ -788,9 +788,9 @@ SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(
result result
0.024682056391766436 0.024682056391766436
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), 0) as result; SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), 0) as result;
ERROR HY000: Internal error: Radius must be greater than zero. ERROR HY000: Calling geometry function st_distance_sphere with unsupported types of arguments.
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), -1) as result; SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), -1) as result;
ERROR HY000: Internal error: Radius must be greater than zero. ERROR HY000: Calling geometry function st_distance_sphere with unsupported types of arguments.
# Test longitude/lattitude # Test longitude/lattitude
SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 1)'), ST_GEOMFROMTEXT('POINT(1 2)')), 10) as result; SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 1)'), ST_GEOMFROMTEXT('POINT(1 2)')), 10) as result;
result result
@ -843,7 +843,7 @@ SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_G
result result
0.04933028646581131 0.04933028646581131
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )'),0) as result; SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )'),0) as result;
ERROR HY000: Internal error: Radius must be greater than zero. ERROR HY000: Calling geometry function st_distance_sphere with unsupported types of arguments.
set @pt1 = ST_GeomFromText('POINT(190 -30)'); set @pt1 = ST_GeomFromText('POINT(190 -30)');
set @pt2 = ST_GeomFromText('POINT(-30 50)'); set @pt2 = ST_GeomFromText('POINT(-30 50)');
SELECT ST_Distance_Sphere(@pt1, @pt2); SELECT ST_Distance_Sphere(@pt1, @pt2);

View File

@ -422,7 +422,7 @@ SELECT ST_DISTANCE_SPHERE(1, 1, 3);
# Return NULL if radius is NULL # Return NULL if radius is NULL
SELECT ST_DISTANCE_SPHERE(1, 1, NULL); SELECT ST_DISTANCE_SPHERE(1, 1, NULL);
# Wrong geometry # Wrong geometry
--error ER_INTERNAL_ERROR --error ER_GIS_UNSUPPORTED_ARGUMENT
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(1 0)'), ST_GEOMFROMTEXT('LINESTRING(0 0, 1 1)')) as result; SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(1 0)'), ST_GEOMFROMTEXT('LINESTRING(0 0, 1 1)')) as result;
--echo # Test Points and radius --echo # Test Points and radius
@ -430,9 +430,9 @@ SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(
# make bb x86 happy # make bb x86 happy
SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(-1 -1)'), ST_GEOMFROMTEXT('POINT(-2 -2)')), 10) as result; SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(-1 -1)'), ST_GEOMFROMTEXT('POINT(-2 -2)')), 10) as result;
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), 1) as result; SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), 1) as result;
--error ER_INTERNAL_ERROR --error ER_GIS_UNSUPPORTED_ARGUMENT
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), 0) as result; SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), 0) as result;
--error ER_INTERNAL_ERROR --error ER_GIS_UNSUPPORTED_ARGUMENT
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), -1) as result; SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), -1) as result;
--echo # Test longitude/lattitude --echo # Test longitude/lattitude
# make bb x86 happy # make bb x86 happy
@ -456,7 +456,7 @@ SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_G
SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )')), 10) as result; SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )')), 10) as result;
# make bb x86 happy # make bb x86 happy
SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )'),1), 17) as result; SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )'),1), 17) as result;
--error ER_INTERNAL_ERROR --error ER_GIS_UNSUPPORTED_ARGUMENT
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )'),0) as result; SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )'),0) as result;
# Longitude out of range [-180,180] # Longitude out of range [-180,180]

View File

@ -5501,4 +5501,9 @@ MULTIPOLYGON(POLYGON(LINESTRING(POINT(4, 3), POINT(4, 4), POINT(3, 4), POINT(4,
) AS t; ) AS t;
ST_SRID(g1) ST_SRID(ST_GeomFromWKB(g1, 4326)) ST_SRID(ST_GeomFromWKB(g1)) ST_AsText(g1) ST_SRID(ST_PointFromWKB(g2, 4326)) ST_SRID(g2) ST_SRID(ST_LineStringFromWKB(g3, 3)) ST_SRID(ST_PolygonFromWKB(g4, 4)) ST_SRID(ST_MultiPointFromWKB(g5, 5)) ST_SRID(ST_MultiLineStringFromWKB(g6, 6)) ST_SRID(ST_MultiPolygonFromWKB(g7, 7)) ST_SRID(g1) ST_SRID(ST_GeomFromWKB(g1, 4326)) ST_SRID(ST_GeomFromWKB(g1)) ST_AsText(g1) ST_SRID(ST_PointFromWKB(g2, 4326)) ST_SRID(g2) ST_SRID(ST_LineStringFromWKB(g3, 3)) ST_SRID(ST_PolygonFromWKB(g4, 4)) ST_SRID(ST_MultiPointFromWKB(g5, 5)) ST_SRID(ST_MultiLineStringFromWKB(g6, 6)) ST_SRID(ST_MultiPolygonFromWKB(g7, 7))
0 4326 0 POINT(1 2) 4326 0 3 4 5 6 7 0 4326 0 POINT(1 2) 4326 0 3 4 5 6 7
#
# MDEV-35117 Error message "ERROR 1815 (HY000): Internal error: st_distance_sphere' could be improved
#
SELECT ST_DISTANCE_SPHERE(st_geomfromtext('linestring( 2 2, 2 8) '), ST_GeomFromText('POINT(18.413076 43.856258)')) ;
ERROR HY000: Calling geometry function st_distance_sphere with unsupported types of arguments.
# End of 10.5 tests # End of 10.5 tests

View File

@ -3508,4 +3508,10 @@ FROM (
MULTIPOLYGON(POLYGON(LINESTRING(POINT(4, 3), POINT(4, 4), POINT(3, 4), POINT(4, 3)))) AS g7 MULTIPOLYGON(POLYGON(LINESTRING(POINT(4, 3), POINT(4, 4), POINT(3, 4), POINT(4, 3)))) AS g7
) AS t; ) AS t;
--echo #
--echo # MDEV-35117 Error message "ERROR 1815 (HY000): Internal error: st_distance_sphere' could be improved
--echo #
--error ER_GIS_UNSUPPORTED_ARGUMENT
SELECT ST_DISTANCE_SPHERE(st_geomfromtext('linestring( 2 2, 2 8) '), ST_GeomFromText('POINT(18.413076 43.856258)')) ;
--echo # End of 10.5 tests --echo # End of 10.5 tests

View File

@ -4383,3 +4383,27 @@ drop table t1;
# #
# End of 10.6 tests # End of 10.6 tests
# #
#
# MDEV-36118 Wrong result in loose index scan
#
CREATE TABLE t1 (a int, b int, KEY (a, b));
insert into t1 values (1, 3), (1, 1);
SELECT MAX(b) FROM t1 WHERE (b > 2 AND b < 4) OR (b = 5) GROUP BY a;
MAX(b)
3
drop table t1;
#
# MDEV-36220 ASAN unknown-crash in loose index scan of MIN with IS NULL
#
CREATE TABLE t1 (a int, b int, KEY (a, b));
insert into t1 values (4, NULL), (1, 14), (4, 3);
SELECT MIN(b) FROM t1 WHERE b = 3 OR b IS NULL GROUP BY a;
MIN(b)
3
SELECT MIN(b) FROM t1 WHERE b IS NULL GROUP BY a;
MIN(b)
NULL
drop table t1;
#
# End of 10.11 tests
#

View File

@ -2014,3 +2014,39 @@ drop table t1;
--echo # --echo #
--echo # End of 10.6 tests --echo # End of 10.6 tests
--echo # --echo #
--echo #
--echo # MDEV-36118 Wrong result in loose index scan
--echo #
CREATE TABLE t1 (a int, b int, KEY (a, b));
insert into t1 values (1, 3), (1, 1);
--source include/maybe_debug.inc
if ($have_debug) {
--disable_query_log
set @old_debug=@@debug;
set debug="+d,force_group_by";
--enable_query_log
}
SELECT MAX(b) FROM t1 WHERE (b > 2 AND b < 4) OR (b = 5) GROUP BY a;
if ($have_debug) {
--disable_query_log
set debug=@old_debug;
--enable_query_log
}
drop table t1;
--echo #
--echo # MDEV-36220 ASAN unknown-crash in loose index scan of MIN with IS NULL
--echo #
CREATE TABLE t1 (a int, b int, KEY (a, b));
insert into t1 values (4, NULL), (1, 14), (4, 3);
SELECT MIN(b) FROM t1 WHERE b = 3 OR b IS NULL GROUP BY a;
SELECT MIN(b) FROM t1 WHERE b IS NULL GROUP BY a;
drop table t1;
--echo #
--echo # End of 10.11 tests
--echo #

View File

@ -2051,3 +2051,15 @@ a b c a a b
DROP TABLE t1, t2, t3; DROP TABLE t1, t2, t3;
set join_cache_level= @save_join_cache_level; set join_cache_level= @save_join_cache_level;
# end of 10.3 tests # end of 10.3 tests
#
# MDEV-32084: Assertion in best_extension_by_limited_search(), or crash elsewhere in release
#
CREATE TABLE t1 (i int);
INSERT INTO t1 values (1),(2);
SELECT 1 FROM t1 WHERE i IN
(SELECT 1 FROM t1 c
LEFT JOIN (t1 a LEFT JOIN t1 b ON t1.i = b.i) ON c.i = t1.i);
1
1
DROP TABLE t1;
# end of 10.11 tests

View File

@ -1459,3 +1459,16 @@ DROP TABLE t1, t2, t3;
set join_cache_level= @save_join_cache_level; set join_cache_level= @save_join_cache_level;
--echo # end of 10.3 tests --echo # end of 10.3 tests
--echo #
--echo # MDEV-32084: Assertion in best_extension_by_limited_search(), or crash elsewhere in release
--echo #
CREATE TABLE t1 (i int);
INSERT INTO t1 values (1),(2);
SELECT 1 FROM t1 WHERE i IN
(SELECT 1 FROM t1 c
LEFT JOIN (t1 a LEFT JOIN t1 b ON t1.i = b.i) ON c.i = t1.i);
DROP TABLE t1;
--echo # end of 10.11 tests

View File

@ -2060,6 +2060,18 @@ a b c a a b
DROP TABLE t1, t2, t3; DROP TABLE t1, t2, t3;
set join_cache_level= @save_join_cache_level; set join_cache_level= @save_join_cache_level;
# end of 10.3 tests # end of 10.3 tests
#
# MDEV-32084: Assertion in best_extension_by_limited_search(), or crash elsewhere in release
#
CREATE TABLE t1 (i int);
INSERT INTO t1 values (1),(2);
SELECT 1 FROM t1 WHERE i IN
(SELECT 1 FROM t1 c
LEFT JOIN (t1 a LEFT JOIN t1 b ON t1.i = b.i) ON c.i = t1.i);
1
1
DROP TABLE t1;
# end of 10.11 tests
CREATE TABLE t5 (a int, b int, c int, PRIMARY KEY(a), KEY b_i (b)); CREATE TABLE t5 (a int, b int, c int, PRIMARY KEY(a), KEY b_i (b));
CREATE TABLE t6 (a int, b int, c int, PRIMARY KEY(a), KEY b_i (b)); CREATE TABLE t6 (a int, b int, c int, PRIMARY KEY(a), KEY b_i (b));
CREATE TABLE t7 (a int, b int, c int, PRIMARY KEY(a), KEY b_i (b)); CREATE TABLE t7 (a int, b int, c int, PRIMARY KEY(a), KEY b_i (b));

View File

@ -1 +1 @@
--large-pages --large-pages --loose-innodb-buffer-pool-size-max=16m

View File

@ -1,4 +1,5 @@
call mtr.add_suppression("\\[Warning\\] (mysqld|mariadbd): Couldn't allocate [0-9]+ bytes \\((Large/HugeTLB memory|MEMLOCK) page size [0-9]+\\).*"); call mtr.add_suppression("\\[Warning\\] (mysqld|mariadbd): Couldn't allocate [0-9]+ bytes \\((Large/HugeTLB memory|MEMLOCK) page size [0-9]+\\).*");
call mtr.add_suppression("\\[ERROR\\]*Lock Pages in memory access rights required.*");
create table t1 ( create table t1 (
a int not null auto_increment, a int not null auto_increment,
b char(16) not null, b char(16) not null,

View File

@ -1,11 +1,9 @@
# Test of large pages (or at least the fallback to conventional allocation) # Test of large pages (or at least the fallback to conventional allocation)
# Windows needs SeLockMemoryPrivilege
--source include/not_windows.inc
--source include/have_innodb.inc --source include/have_innodb.inc
call mtr.add_suppression("\\[Warning\\] (mysqld|mariadbd): Couldn't allocate [0-9]+ bytes \\((Large/HugeTLB memory|MEMLOCK) page size [0-9]+\\).*"); call mtr.add_suppression("\\[Warning\\] (mysqld|mariadbd): Couldn't allocate [0-9]+ bytes \\((Large/HugeTLB memory|MEMLOCK) page size [0-9]+\\).*");
call mtr.add_suppression("\\[ERROR\\]*Lock Pages in memory access rights required.*");
create table t1 ( create table t1 (
a int not null auto_increment, a int not null auto_increment,
b char(16) not null, b char(16) not null,

View File

@ -1452,4 +1452,26 @@ DROP TABLE t1, t2;
# #
CREATE TABLE t1 (pk INT, a TEXT NOT NULL DEFAULT '', PRIMARY KEY (pk), b INT AUTO_INCREMENT, UNIQUE(b), UNIQUE (a,b)) ENGINE=myisam; CREATE TABLE t1 (pk INT, a TEXT NOT NULL DEFAULT '', PRIMARY KEY (pk), b INT AUTO_INCREMENT, UNIQUE(b), UNIQUE (a,b)) ENGINE=myisam;
ERROR HY000: AUTO_INCREMENT column `b` cannot be used in the UNIQUE index `a` ERROR HY000: AUTO_INCREMENT column `b` cannot be used in the UNIQUE index `a`
#
# MDEV-35620 UBSAN: runtime error: applying zero offset to null pointer in _ma_unique_hash, skip_trailing_space, my_hash_sort_mb_nopad_bin and my_strnncollsp_utf8mb4_bin
#
# Disable result log. The exact result is not important.
# We just need to make sure UBSAN nullptr-with-offset is not reported.
SELECT DISTINCT user,authentication_string FROM mysql.user;
SELECT DISTINCT USER,PASSWORD FROM mysql.user;
SELECT DISTINCT USER,plugin FROM mysql.user;
# Enabling result log again.
create or replace table t1 (t text) engine=aria;
insert into t1 values ('');
insert into t1 values (NULL);
select distinct t from t1;
t
NULL
alter table t1 ENGINE=MyISAM;
select distinct t from t1;
t
NULL
DROP TABLE t1;
# End of 10.5 tests # End of 10.5 tests

View File

@ -552,4 +552,26 @@ DROP TABLE t1, t2;
--error ER_NO_AUTOINCREMENT_WITH_UNIQUE --error ER_NO_AUTOINCREMENT_WITH_UNIQUE
CREATE TABLE t1 (pk INT, a TEXT NOT NULL DEFAULT '', PRIMARY KEY (pk), b INT AUTO_INCREMENT, UNIQUE(b), UNIQUE (a,b)) ENGINE=myisam; CREATE TABLE t1 (pk INT, a TEXT NOT NULL DEFAULT '', PRIMARY KEY (pk), b INT AUTO_INCREMENT, UNIQUE(b), UNIQUE (a,b)) ENGINE=myisam;
--echo #
--echo # MDEV-35620 UBSAN: runtime error: applying zero offset to null pointer in _ma_unique_hash, skip_trailing_space, my_hash_sort_mb_nopad_bin and my_strnncollsp_utf8mb4_bin
--echo #
--echo # Disable result log. The exact result is not important.
--echo # We just need to make sure UBSAN nullptr-with-offset is not reported.
--disable_result_log
SELECT DISTINCT user,authentication_string FROM mysql.user;
SELECT DISTINCT USER,PASSWORD FROM mysql.user;
SELECT DISTINCT USER,plugin FROM mysql.user;
--enable_result_log
--echo # Enabling result log again.
create or replace table t1 (t text) engine=aria;
insert into t1 values ('');
insert into t1 values (NULL);
select distinct t from t1;
alter table t1 ENGINE=MyISAM;
select distinct t from t1;
DROP TABLE t1;
--echo # End of 10.5 tests --echo # End of 10.5 tests

View File

@ -0,0 +1 @@
--slOw_QuEry_loG=OFF

View File

@ -0,0 +1,8 @@
#
# MDEV-27126: my_getopt compares option names case sensitively
#
# Check if the variable is set correctly from options
SELECT @@GLOBAL.slow_query_log;
@@GLOBAL.slow_query_log
0
# End of test.

View File

@ -0,0 +1,8 @@
--echo #
--echo # MDEV-27126: my_getopt compares option names case sensitively
--echo #
--echo # Check if the variable is set correctly from options
SELECT @@GLOBAL.slow_query_log;
--echo # End of test.

View File

@ -1,4 +1,7 @@
drop table if exists t1,t2; drop table if exists t1,t2;
call mtr.add_suppression("Index.*try to repair it");
call mtr.add_suppression("Disk got full");
call mtr.add_suppression("Got an error from thread_id");
create table t1 (id int, sometext varchar(100)) engine=myisam; create table t1 (id int, sometext varchar(100)) engine=myisam;
insert into t1 values (1, "hello"),(2, "hello2"),(4, "hello3"),(4, "hello4"); insert into t1 values (1, "hello"),(2, "hello2"),(4, "hello3"),(4, "hello4");
create table t2 like t1; create table t2 like t1;
@ -43,4 +46,9 @@ connection default;
connection con2; connection con2;
disconnect con2; disconnect con2;
connection default; connection default;
SET @saved_dbug = @@SESSION.debug_dbug;
SET debug_dbug='+d,simulate_file_pwrite_error';
insert into t1 select * from t2;
ERROR HY000: Disk got full writing 'test.t1' (Errcode: 28 "No space left on device")
SET debug_dbug= @saved_dbug;
drop table t1,t2; drop table t1,t2;

View File

@ -1,12 +1,17 @@
# #
# Test bugs in the MyISAM code that require more space/time # Test bugs in the MyISAM code that require more space/time
--source include/big_test.inc --source include/big_test.inc
--source include/have_debug.inc
# Initialise # Initialise
--disable_warnings --disable_warnings
drop table if exists t1,t2; drop table if exists t1,t2;
--enable_warnings --enable_warnings
call mtr.add_suppression("Index.*try to repair it");
call mtr.add_suppression("Disk got full");
call mtr.add_suppression("Got an error from thread_id");
# #
# BUG#925377: # BUG#925377:
# Querying myisam table metadata while 'alter table..enable keys' is # Querying myisam table metadata while 'alter table..enable keys' is
@ -61,4 +66,12 @@ connection con2;
reap; reap;
disconnect con2; disconnect con2;
connection default; connection default;
#
# Test error message from disk full
SET @saved_dbug = @@SESSION.debug_dbug;
SET debug_dbug='+d,simulate_file_pwrite_error';
--error ER_DISK_FULL
insert into t1 select * from t2;
SET debug_dbug= @saved_dbug;
drop table t1,t2; drop table t1,t2;

View File

@ -1,8 +1,8 @@
--source include/long_test.inc
-- source include/mysql_upgrade_preparation.inc -- source include/mysql_upgrade_preparation.inc
-- source include/have_working_dns.inc -- source include/have_working_dns.inc
-- source include/have_innodb.inc -- source include/have_innodb.inc
-- source include/have_partition.inc -- source include/have_partition.inc
-- source include/no_valgrind_without_big.inc
set sql_mode=""; set sql_mode="";

View File

@ -1,4 +1,4 @@
--source include/no_valgrind_without_big.inc --source include/long_test.inc
--source include/have_utf8mb4.inc --source include/have_utf8mb4.inc
call mtr.add_suppression("@003f.frm' \\(errno: 22\\)"); call mtr.add_suppression("@003f.frm' \\(errno: 22\\)");

View File

@ -260,3 +260,6 @@ DROP TABLE t1;
# #
# Bug MDEV-15789 (Upstream: #80329): MYSQLSLAP OPTIONS --AUTO-GENERATE-SQL-GUID-PRIMARY and --AUTO-GENERATE-SQL-SECONDARY-INDEXES DONT WORK # Bug MDEV-15789 (Upstream: #80329): MYSQLSLAP OPTIONS --AUTO-GENERATE-SQL-GUID-PRIMARY and --AUTO-GENERATE-SQL-SECONDARY-INDEXES DONT WORK
# #
#
# Bug MDEV-34621: Fix division by zero in mariadb-slap when iterations=0
#

View File

@ -88,3 +88,9 @@ DROP TABLE t1;
--exec $MYSQL_SLAP --concurrency=1 --silent --iterations=1 --number-int-cols=2 --number-char-cols=3 --auto-generate-sql --auto-generate-sql-guid-primary --create-schema=slap --exec $MYSQL_SLAP --concurrency=1 --silent --iterations=1 --number-int-cols=2 --number-char-cols=3 --auto-generate-sql --auto-generate-sql-guid-primary --create-schema=slap
--exec $MYSQL_SLAP --concurrency=1 --silent --iterations=1 --number-int-cols=2 --number-char-cols=3 --auto-generate-sql --auto-generate-sql-secondary-indexes=1 --create-schema=slap --exec $MYSQL_SLAP --concurrency=1 --silent --iterations=1 --number-int-cols=2 --number-char-cols=3 --auto-generate-sql --auto-generate-sql-secondary-indexes=1 --create-schema=slap
--echo #
--echo # Bug MDEV-34621: Fix division by zero in mariadb-slap when iterations=0
--echo #
--exec $MYSQL_SLAP -i0 --only-print

View File

@ -989,4 +989,13 @@ select "foo\""bar";
foo\"bar foo\"bar
foo\"bar foo\"bar
set sql_mode=default; set sql_mode=default;
#
# MDEV-29344: engines/iuds.insert_time cannot run with PS protocol (syntax error)
#
SELECT 1 /* doesn't throw error */;
1
1
SELECT 1 /* doesn't throw error */;
1
1
End of tests End of tests

View File

@ -2954,6 +2954,12 @@ set sql_mode=no_backslash_escapes;
select "foo\""bar"; select "foo\""bar";
set sql_mode=default; set sql_mode=default;
--echo #
--echo # MDEV-29344: engines/iuds.insert_time cannot run with PS protocol (syntax error)
--echo #
SELECT 1 /* doesn't throw error */;
SELECT 1 /* doesn't throw error */;
--echo End of tests --echo End of tests
# Wait till we reached the initial number of concurrent sessions # Wait till we reached the initial number of concurrent sessions

View File

@ -138,6 +138,14 @@ drop user baz@baz;
# End of 10.3 tests # End of 10.3 tests
# #
# #
# MDEV-34501: SIGSEGV in pfs_start_mutex_wait_v1, __strlen_avx2, or __strlen_evex from safe_mutex_lock on CREATE DEFINER when using skip-grant-tables
#
CREATE DEFINER=a PROCEDURE p() SELECT 1;
CREATE DEFINER=a FUNCTION f() RETURNS INT RETURN 100;
DROP PROCEDURE p;
DROP FUNCTION f;
# End of 10.5 tests
#
# MDEV-24815 Show "--skip-grant-tables" state in SYSTEM VARIABLES # MDEV-24815 Show "--skip-grant-tables" state in SYSTEM VARIABLES
# #
SELECT @@skip_grant_tables AS EXPECT_1; SELECT @@skip_grant_tables AS EXPECT_1;

View File

@ -168,6 +168,17 @@ drop user baz@baz;
--echo # End of 10.3 tests --echo # End of 10.3 tests
--echo # --echo #
--echo #
--echo # MDEV-34501: SIGSEGV in pfs_start_mutex_wait_v1, __strlen_avx2, or __strlen_evex from safe_mutex_lock on CREATE DEFINER when using skip-grant-tables
--echo #
CREATE DEFINER=a PROCEDURE p() SELECT 1;
CREATE DEFINER=a FUNCTION f() RETURNS INT RETURN 100;
DROP PROCEDURE p;
DROP FUNCTION f;
--echo # End of 10.5 tests
--echo # --echo #
--echo # MDEV-24815 Show "--skip-grant-tables" state in SYSTEM VARIABLES --echo # MDEV-24815 Show "--skip-grant-tables" state in SYSTEM VARIABLES
--echo # --echo #

View File

@ -388,5 +388,14 @@ ERROR 23000: Column 'c2' in FROM is ambiguous
DROP PROCEDURE p2; DROP PROCEDURE p2;
DROP TABLE t1, t2; DROP TABLE t1, t2;
# #
# MDEV-34501: SIGSEGV in pfs_start_mutex_wait_v1, __strlen_avx2, or __strlen_evex from safe_mutex_lock on CREATE DEFINER when using skip-grant-tables
#
# This test is a duplicate of the one located in the file skip_grants.test
# and placed here to check the same test case against embedded-server
CREATE DEFINER=a PROCEDURE p() SELECT 1;
CREATE DEFINER=a FUNCTION f() RETURNS INT RETURN 100;
DROP PROCEDURE p;
DROP FUNCTION f;
#
# End of 10.5 tests # End of 10.5 tests
# #

View File

@ -414,6 +414,26 @@ CALL p2 (@a,@c);
DROP PROCEDURE p2; DROP PROCEDURE p2;
DROP TABLE t1, t2; DROP TABLE t1, t2;
--echo #
--echo # MDEV-34501: SIGSEGV in pfs_start_mutex_wait_v1, __strlen_avx2, or __strlen_evex from safe_mutex_lock on CREATE DEFINER when using skip-grant-tables
--echo #
--echo # This test is a duplicate of the one located in the file skip_grants.test
--echo # and placed here to check the same test case against embedded-server
# Disable warnings before running the following CREATE PROCEDURE/FUNCTION
# statement since the warning message
# "The user specified as a definer ('a'@'%') does not exist"
# is output in case the test be run against a regular server
# and isn't output if embedded server is used (@sa sp_process_definer()
# in sql_parse.cc).
--disable_warnings
CREATE DEFINER=a PROCEDURE p() SELECT 1;
CREATE DEFINER=a FUNCTION f() RETURNS INT RETURN 100;
--enable_warnings
DROP PROCEDURE p;
DROP FUNCTION f;
--echo # --echo #
--echo # End of 10.5 tests --echo # End of 10.5 tests
--echo # --echo #

View File

@ -2307,3 +2307,44 @@ SELECT 1 LIKE 2 ESCAPE a;
END; END;
$$ $$
ERROR 21000: Operand should contain 1 column(s) ERROR 21000: Operand should contain 1 column(s)
# Start of 10.6 tests
#
# MDEV-36179 Assertion `0' failed in virtual bool Type_handler_row::Item_save_in_value(THD*, Item*, st_value*) const
#
CREATE PROCEDURE p0 (IN a ROW(a INT,b INT))
BEGIN
SET a=ROW(0,0);
END;
/
PREPARE s0 FROM 'CALL p0(?)';
EXECUTE s0 USING @a;
ERROR HY000: Illegal parameter data type row for operation 'EXECUTE ... USING ?'
DROP PROCEDURE p0;
CREATE PROCEDURE p0 (INOUT a ROW(a INT,b INT))
BEGIN
SET a=ROW(0,0);
END;
/
PREPARE s0 FROM 'CALL p0(?)';
EXECUTE s0 USING @a;
ERROR HY000: Illegal parameter data type row for operation 'EXECUTE ... USING ?'
DROP PROCEDURE p0;
CREATE PROCEDURE p0 (OUT a ROW(a INT,b INT))
BEGIN
SET a=ROW(0,0);
END;
/
PREPARE s0 FROM 'CALL p0(?)';
EXECUTE s0 USING @a;
ERROR HY000: Illegal parameter data type row for operation 'EXECUTE ... USING ?'
DROP PROCEDURE p0;
CREATE FUNCTION f0(a ROW(a INT,b INT)) RETURNS BOOLEAN
BEGIN
RETURN FALSE;
END;
/
PREPARE s0 FROM 'SELECT f0(?)';
EXECUTE s0 USING @a;
ERROR HY000: Illegal parameter data type row for operation 'EXECUTE ... USING ?'
DROP FUNCTION f0;
# End of 10.6 tests

View File

@ -1544,3 +1544,64 @@ BEGIN NOT ATOMIC
END; END;
$$ $$
DELIMITER ;$$ DELIMITER ;$$
--echo # Start of 10.6 tests
--echo #
--echo # MDEV-36179 Assertion `0' failed in virtual bool Type_handler_row::Item_save_in_value(THD*, Item*, st_value*) const
--echo #
DELIMITER /;
CREATE PROCEDURE p0 (IN a ROW(a INT,b INT))
BEGIN
SET a=ROW(0,0);
END;
/
DELIMITER ;/
PREPARE s0 FROM 'CALL p0(?)';
--error ER_ILLEGAL_PARAMETER_DATA_TYPE_FOR_OPERATION
EXECUTE s0 USING @a;
DROP PROCEDURE p0;
DELIMITER /;
CREATE PROCEDURE p0 (INOUT a ROW(a INT,b INT))
BEGIN
SET a=ROW(0,0);
END;
/
DELIMITER ;/
PREPARE s0 FROM 'CALL p0(?)';
--error ER_ILLEGAL_PARAMETER_DATA_TYPE_FOR_OPERATION
EXECUTE s0 USING @a;
DROP PROCEDURE p0;
DELIMITER /;
CREATE PROCEDURE p0 (OUT a ROW(a INT,b INT))
BEGIN
SET a=ROW(0,0);
END;
/
DELIMITER ;/
PREPARE s0 FROM 'CALL p0(?)';
--error ER_ILLEGAL_PARAMETER_DATA_TYPE_FOR_OPERATION
EXECUTE s0 USING @a;
DROP PROCEDURE p0;
DELIMITER /;
CREATE FUNCTION f0(a ROW(a INT,b INT)) RETURNS BOOLEAN
BEGIN
RETURN FALSE;
END;
/
DELIMITER ;/
PREPARE s0 FROM 'SELECT f0(?)';
--error ER_ILLEGAL_PARAMETER_DATA_TYPE_FOR_OPERATION
EXECUTE s0 USING @a;
DROP FUNCTION f0;
--echo # End of 10.6 tests

View File

@ -25,3 +25,9 @@ OPENED_VIEWS 0
set @@use_stat_tables= @save_use_stat_tables; set @@use_stat_tables= @save_use_stat_tables;
set @@optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity; set @@optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity;
drop table t1; drop table t1;
#
# MDEV-36138 Server null-pointer crash at startup when tmptables left in --tmpdir
#
create table t1 (c int);
drop table t1;
# restart

View File

@ -24,4 +24,15 @@ select variable_name, session_status.variable_value - t1.variable_value
from information_schema.session_status join t1 using (variable_name); from information_schema.session_status join t1 using (variable_name);
set @@use_stat_tables= @save_use_stat_tables; set @@use_stat_tables= @save_use_stat_tables;
set @@optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity; set @@optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity;
drop table t1; drop table t1;
--echo #
--echo # MDEV-36138 Server null-pointer crash at startup when tmptables left in --tmpdir
--echo #
create table t1 (c int);
let $MYSQLD_TMPDIR=`SELECT @@tmpdir`;
let $MYSQLD_DATADIR=`SELECT @@datadir`;
--copy_file $MYSQLD_DATADIR/test/t1.frm $MYSQLD_TMPDIR/#sqlt1.frm
drop table t1;
--source include/restart_mysqld.inc

View File

@ -399,4 +399,19 @@ Warnings:
Warning 1364 Field 'c5' doesn't have a default value Warning 1364 Field 'c5' doesn't have a default value
drop table t1; drop table t1;
set sql_mode=default; set sql_mode=default;
#
# MDEV-36026 Problem with INSERT SELECT on NOT NULL columns while having BEFORE UPDATE trigger
#
create table t1 (b int(11) not null);
create trigger t1bu before update on t1 for each row begin end;
insert t1 (b) select 1 union select 2;
create trigger trgi before insert on t1 for each row set new.b=ifnull(new.b,10);
insert t1 (b) select NULL union select 11;
select * from t1;
b
1
2
10
11
drop table t1;
# End of 10.5 tests # End of 10.5 tests

View File

@ -425,4 +425,15 @@ insert into t1 (c) values (1);
drop table t1; drop table t1;
set sql_mode=default; set sql_mode=default;
--echo #
--echo # MDEV-36026 Problem with INSERT SELECT on NOT NULL columns while having BEFORE UPDATE trigger
--echo #
create table t1 (b int(11) not null);
create trigger t1bu before update on t1 for each row begin end;
insert t1 (b) select 1 union select 2;
create trigger trgi before insert on t1 for each row set new.b=ifnull(new.b,10);
insert t1 (b) select NULL union select 11;
select * from t1;
drop table t1;
--echo # End of 10.5 tests --echo # End of 10.5 tests

View File

@ -2,7 +2,7 @@
MIIFlTCCA32gAwIBAgIUKCF88W+48rZzdfgYpE2dXVMGSKgwDQYJKoZIhvcNAQEL MIIFlTCCA32gAwIBAgIUKCF88W+48rZzdfgYpE2dXVMGSKgwDQYJKoZIhvcNAQEL
BQAwWjELMAkGA1UEBhMCRkkxETAPBgNVBAgMCEhlbHNpbmtpMREwDwYDVQQHDAhI BQAwWjELMAkGA1UEBhMCRkkxETAPBgNVBAgMCEhlbHNpbmtpMREwDwYDVQQHDAhI
ZWxzaW5raTEPMA0GA1UECgwGR2FsZXJhMRQwEgYDVQQDDAtnYWxlcmEucm9vdDAe ZWxzaW5raTEPMA0GA1UECgwGR2FsZXJhMRQwEgYDVQQDDAtnYWxlcmEucm9vdDAe
Fw0yMTAyMDQxMzE3MDJaFw0yMzExMjUxMzE3MDJaMFoxCzAJBgNVBAYTAkZJMREw Fw0yMzEyMDExMzQzNDBaFw0zMzExMjgxMzQzNDBaMFoxCzAJBgNVBAYTAkZJMREw
DwYDVQQIDAhIZWxzaW5raTERMA8GA1UEBwwISGVsc2lua2kxDzANBgNVBAoMBkdh DwYDVQQIDAhIZWxzaW5raTERMA8GA1UEBwwISGVsc2lua2kxDzANBgNVBAoMBkdh
bGVyYTEUMBIGA1UEAwwLZ2FsZXJhLnJvb3QwggIiMA0GCSqGSIb3DQEBAQUAA4IC bGVyYTEUMBIGA1UEAwwLZ2FsZXJhLnJvb3QwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDKqL45jbaq8RLOj+DeilPcEnBN5gn/y9V3IfZ0BQCd4bR09zLz DwAwggIKAoICAQDKqL45jbaq8RLOj+DeilPcEnBN5gn/y9V3IfZ0BQCd4bR09zLz
@ -18,15 +18,15 @@ dl5QYYMbmyNedNKdwV4idhGCy+Zq7VAX4lBXazI1rD9vQb+oTcPGQiy4i/Vi/g6i
F+XZTdTiaOWPEmvFFGLLUQxKl4w872hJaupqfteqdiZ+3ICVIUI8qnXHmwIDAQAB F+XZTdTiaOWPEmvFFGLLUQxKl4w872hJaupqfteqdiZ+3ICVIUI8qnXHmwIDAQAB
o1MwUTAdBgNVHQ4EFgQUs75v/MgjJ5RHGE6+0qdiVo4BwlowHwYDVR0jBBgwFoAU o1MwUTAdBgNVHQ4EFgQUs75v/MgjJ5RHGE6+0qdiVo4BwlowHwYDVR0jBBgwFoAU
s75v/MgjJ5RHGE6+0qdiVo4BwlowDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0B s75v/MgjJ5RHGE6+0qdiVo4BwlowDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0B
AQsFAAOCAgEAOVhBs28dwwvD5q2r7oVVcxLc+tb8zu4XxpXT1p6hiZYUyPguCh00 AQsFAAOCAgEAKLV6mkWb88HEJXo1XlmAzznIYNfilrvvxwcjhceluDE8s8sPSpYM
GVdXCgR4JMI/NcyM5fBAbF3S8oK3+9rw2kW09afVV06Qf/8o3nIyOiDl7598tGIP Bz5ebWlHCgEkC/ezhA/PDtZsZlQKwv4jb++lAlFSlebT1GW77xKkdRBTKgkFAaOA
CCK4QsUW/dGajx5kvhtQ7qce+u9KfFTof6lq2xkYtFBBhmBdSv9A1jAZJMw2x3bc pF5eZao6IP8l76fA4OoI2Tttw5jeb23kOoklDp/8VS0JEAT3wm/hZiE20aUbAFC+
nr99PS8XZMphS0MIExHKj6Ry5DdYm722zZHyIEiiEGyMViDm2m1iug5r/LPH5Z56 kPiCucBztzaTHQud9CgtxRH/B3D9FaPuwae/H6FYrvQVNVjcaHTIUh9fTcyKRXYm
BjQiH4VP+0y5mevBOUGuH8ID+J9Hu9BeoXLhkv+W2Ljs/S6wqzjinMBqVG+wwe0Y oYbvK7fIhCjZkG2LRWRU9Kirivb+ktO4POsuK4BgYrsFaOBf9HYsojA7llyGDopN
a8F5pABkl5uX38nMQ7CikSbLxSbn7nRf+sux1sbzqjMldeCSqiv9mI5Ysq97+Ni1 cfw9jtb27Qb/uMKJnClFg14u685CU5JAzY31E5OQPPUUx9PqP4Z9PgXRQ0xI6H/4
5qMxNxNc0u/wGRnrXH8fWfxBKPP5moA7DQfVcUWPgDGQwDpA8kn8RlJxFk3g4yaK sejlcQuqGCDKiL2lOzUjbT86EjO4ZfiKHR+lKOIuT5mXiR8cbS1JeyX3Mrv1Ds4r
+NMwk5MORKyx3tz/A3Yhs9AUXk3okvmQCT2YVSHcKUB8PAU+TaKqbr3wk07Y/tL/ UVcdtSXTy6/XYWFIzhu+MrsFon6VX0HkmSH1HjSoLMOZcHAZIFZZ/uAahLmMNaEG
jFPHS+t3eD91Y05KGUXjdtGi+33zpV0biHmTWAZT78VQowDNvEpTnXhkSx8HGHYR lV15fD5+t5QRKwqmdFUW2ETiqSJxRs6Y++ptxpiiH38QVWPvBWeRgcPpf3A478Bl
nqSMU2m2LboHSatY113RYznx0LJ1azczRlJdGs8oyPWLPDD2JCesZaQqGZVRJoms iGO0xn0N57TnhFs3g0C0xyZgTBMozfVostYpps1Tqqz0VOhtmURxTZm9JZgTb7qv
lK4EzYEb5mZTCRgtgoiO+iKcf6XifuOCrWZXoLm4FlLEfOQ3b8yAFlo= nMURY0SIQKXpHCcJuNtxZcDSu8uxgUcMsLSSC7Zmk7/cSeUfmOgZVzU=
-----END CERTIFICATE----- -----END CERTIFICATE-----

View File

@ -1,3 +1,4 @@
--source include/long_test.inc
--source include/have_debug.inc --source include/have_debug.inc
--source include/have_innodb.inc --source include/have_innodb.inc
--source include/have_log_bin.inc --source include/have_log_bin.inc

View File

@ -1,3 +1,4 @@
--source include/long_test.inc
--source include/have_debug.inc --source include/have_debug.inc
--source include/have_sequence.inc --source include/have_sequence.inc
--source include/have_innodb.inc --source include/have_innodb.inc

View File

@ -1,3 +1,4 @@
--source include/long_test.inc
--source include/have_debug.inc --source include/have_debug.inc
--source include/have_innodb.inc --source include/have_innodb.inc
--source include/have_csv.inc --source include/have_csv.inc

View File

@ -1,3 +1,4 @@
--source include/long_test.inc
--source include/have_debug.inc --source include/have_debug.inc
--source include/have_innodb.inc --source include/have_innodb.inc
--source include/have_csv.inc --source include/have_csv.inc

View File

@ -18,6 +18,7 @@
# - with annotated events, default checksums and minimal binlog row image # - with annotated events, default checksums and minimal binlog row image
# #
--source include/long_test.inc
# The test can take very long time with valgrind # The test can take very long time with valgrind
--source include/not_valgrind.inc --source include/not_valgrind.inc

View File

@ -3,8 +3,9 @@ call mtr.add_suppression("InnoDB: Unable to apply log to corrupted page ");
call mtr.add_suppression("InnoDB: Plugin initialization aborted"); call mtr.add_suppression("InnoDB: Plugin initialization aborted");
call mtr.add_suppression("Plugin 'InnoDB' init function returned error"); call mtr.add_suppression("Plugin 'InnoDB' init function returned error");
call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE failed"); call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE failed");
create table t1 (f1 int primary key, f2 blob)page_compressed = 1 engine=innodb stats_persistent=0; create table t1 (f1 int primary key, f2 blob)page_compressed=1 engine=innodb encrypted=yes stats_persistent=0;
create table t2(f1 int primary key, f2 blob)engine=innodb stats_persistent=0; create table t2(f1 int primary key, f2 blob)engine=innodb encrypted=yes stats_persistent=0;
create table t3(f1 int primary key, f2 blob)page_compressed=1 engine=innodb encrypted=no stats_persistent=0;
start transaction; start transaction;
insert into t1 values(1, repeat('#',12)); insert into t1 values(1, repeat('#',12));
insert into t1 values(2, repeat('+',12)); insert into t1 values(2, repeat('+',12));
@ -12,29 +13,37 @@ insert into t1 values(3, repeat('/',12));
insert into t1 values(4, repeat('-',12)); insert into t1 values(4, repeat('-',12));
insert into t1 values(5, repeat('.',12)); insert into t1 values(5, repeat('.',12));
insert into t2 select * from t1; insert into t2 select * from t1;
insert into t3 select * from t1;
commit work; commit work;
SET GLOBAL innodb_fast_shutdown = 0; SET GLOBAL innodb_fast_shutdown = 0;
# restart: --debug_dbug=+d,ib_log_checkpoint_avoid_hard --innodb_flush_sync=0 # restart: --debug_dbug=+d,ib_log_checkpoint_avoid_hard --innodb_flush_sync=0
select space into @t1_space_id from information_schema.innodb_sys_tablespaces where name='test/t1'; select space into @t1_space_id from information_schema.innodb_sys_tablespaces where name='test/t1';
select space into @t2_space_id from information_schema.innodb_sys_tablespaces where name='test/t2'; select space into @t2_space_id from information_schema.innodb_sys_tablespaces where name='test/t2';
select space into @t3_space_id from information_schema.innodb_sys_tablespaces where name='test/t3';
begin; begin;
insert into t1 values (6, repeat('%', 400)); insert into t1 values (6, repeat('%', 400));
insert into t2 values (6, repeat('%', 400)); insert into t2 values (6, repeat('%', 400));
insert into t3 values (6, repeat('%', 400));
# xtrabackup prepare # xtrabackup prepare
set global innodb_saved_page_number_debug = 3; set global innodb_saved_page_number_debug = 3;
set global innodb_fil_make_page_dirty_debug = @t1_space_id; set global innodb_fil_make_page_dirty_debug = @t1_space_id;
set global innodb_saved_page_number_debug = 3; set global innodb_saved_page_number_debug = 3;
set global innodb_fil_make_page_dirty_debug = @t2_space_id; set global innodb_fil_make_page_dirty_debug = @t2_space_id;
set global innodb_saved_page_number_debug = 3;
set global innodb_fil_make_page_dirty_debug = @t3_space_id;
set global innodb_buf_flush_list_now = 1; set global innodb_buf_flush_list_now = 1;
# Kill the server # Kill the server
# restart # restart
FOUND 2 /InnoDB: Recovered page \[page id: space=[1-9]*, page number=3\]/ in mysqld.1.err FOUND 3 /InnoDB: Recovered page \[page id: space=[1-9][0-9]*, page number=3\]/ in mysqld.1.err
check table t1; check table t1;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 check status OK test.t1 check status OK
check table t2; check table t2;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t2 check status OK test.t2 check status OK
check table t3;
Table Op Msg_type Msg_text
test.t3 check status OK
select f1, f2 from t1; select f1, f2 from t1;
f1 f2 f1 f2
1 ############ 1 ############
@ -49,6 +58,13 @@ f1 f2
3 //////////// 3 ////////////
4 ------------ 4 ------------
5 ............ 5 ............
select f1, f2 from t3;
f1 f2
1 ############
2 ++++++++++++
3 ////////////
4 ------------
5 ............
SET GLOBAL innodb_fast_shutdown = 0; SET GLOBAL innodb_fast_shutdown = 0;
# shutdown server # shutdown server
# remove datadir # remove datadir
@ -78,4 +94,4 @@ f1 f2
3 //////////// 3 ////////////
4 ------------ 4 ------------
5 ............ 5 ............
drop table t2, t1; drop table t3, t2, t1;

View File

@ -1,3 +1,3 @@
--innodb-use-atomic-writes=0 --innodb-use-atomic-writes=0
--innodb-encrypt-tables=FORCE --innodb-encrypt-tables=on
--innodb_sys_tablespaces --innodb_sys_tablespaces

View File

@ -12,8 +12,9 @@ let INNODB_PAGE_SIZE=`select @@innodb_page_size`;
let MYSQLD_DATADIR=`select @@datadir`; let MYSQLD_DATADIR=`select @@datadir`;
let ALGO=`select @@innodb_checksum_algorithm`; let ALGO=`select @@innodb_checksum_algorithm`;
create table t1 (f1 int primary key, f2 blob)page_compressed = 1 engine=innodb stats_persistent=0; create table t1 (f1 int primary key, f2 blob)page_compressed=1 engine=innodb encrypted=yes stats_persistent=0;
create table t2(f1 int primary key, f2 blob)engine=innodb stats_persistent=0; create table t2(f1 int primary key, f2 blob)engine=innodb encrypted=yes stats_persistent=0;
create table t3(f1 int primary key, f2 blob)page_compressed=1 engine=innodb encrypted=no stats_persistent=0;
start transaction; start transaction;
insert into t1 values(1, repeat('#',12)); insert into t1 values(1, repeat('#',12));
@ -22,6 +23,7 @@ insert into t1 values(3, repeat('/',12));
insert into t1 values(4, repeat('-',12)); insert into t1 values(4, repeat('-',12));
insert into t1 values(5, repeat('.',12)); insert into t1 values(5, repeat('.',12));
insert into t2 select * from t1; insert into t2 select * from t1;
insert into t3 select * from t1;
commit work; commit work;
# Slow shutdown and restart to make sure ibuf merge is finished # Slow shutdown and restart to make sure ibuf merge is finished
@ -33,12 +35,14 @@ let $restart_parameters=--debug_dbug=+d,ib_log_checkpoint_avoid_hard --innodb_fl
select space into @t1_space_id from information_schema.innodb_sys_tablespaces where name='test/t1'; select space into @t1_space_id from information_schema.innodb_sys_tablespaces where name='test/t1';
select space into @t2_space_id from information_schema.innodb_sys_tablespaces where name='test/t2'; select space into @t2_space_id from information_schema.innodb_sys_tablespaces where name='test/t2';
select space into @t3_space_id from information_schema.innodb_sys_tablespaces where name='test/t3';
begin; begin;
insert into t1 values (6, repeat('%', 400)); insert into t1 values (6, repeat('%', 400));
insert into t2 values (6, repeat('%', 400)); insert into t2 values (6, repeat('%', 400));
insert into t3 values (6, repeat('%', 400));
# Copy the t1.ibd, t2.ibd file # Copy the t1.ibd, t2.ibd, t3.ibd file
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup_1; let $targetdir=$MYSQLTEST_VARDIR/tmp/backup_1;
--disable_result_log --disable_result_log
exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --skip-innodb-log-checkpoint-now --target-dir=$targetdir; exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --skip-innodb-log-checkpoint-now --target-dir=$targetdir;
@ -54,8 +58,11 @@ set global innodb_fil_make_page_dirty_debug = @t1_space_id;
set global innodb_saved_page_number_debug = 3; set global innodb_saved_page_number_debug = 3;
set global innodb_fil_make_page_dirty_debug = @t2_space_id; set global innodb_fil_make_page_dirty_debug = @t2_space_id;
set global innodb_saved_page_number_debug = 3;
set global innodb_fil_make_page_dirty_debug = @t3_space_id;
set global innodb_buf_flush_list_now = 1; set global innodb_buf_flush_list_now = 1;
--let CLEANUP_IF_CHECKPOINT=drop table t1, t2, unexpected_checkpoint; --let CLEANUP_IF_CHECKPOINT=drop table t1, t2, t3, unexpected_checkpoint;
--source ../../suite/innodb/include/no_checkpoint_end.inc --source ../../suite/innodb/include/no_checkpoint_end.inc
# Corrupt the page 3 in t1.ibd, t2.ibd file # Corrupt the page 3 in t1.ibd, t2.ibd file
perl; perl;
@ -103,19 +110,30 @@ binmode FILE;
sysseek(FILE, 3*$page_size, 0); sysseek(FILE, 3*$page_size, 0);
print FILE chr(0) x ($ENV{'INNODB_PAGE_SIZE'}); print FILE chr(0) x ($ENV{'INNODB_PAGE_SIZE'});
close FILE; close FILE;
# Zero the complete page
my $fname= "$ENV{'MYSQLD_DATADIR'}test/t3.ibd";
open(FILE, "+<", $fname) or die;
FILE->autoflush(1);
binmode FILE;
sysseek(FILE, 3*$page_size, 0);
print FILE chr(0) x ($ENV{'INNODB_PAGE_SIZE'});
close FILE;
EOF EOF
# Successful recover from doublewrite buffer # Successful recover from doublewrite buffer
let $restart_parameters=; let $restart_parameters=;
--source include/start_mysqld.inc --source include/start_mysqld.inc
let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err; let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err;
let SEARCH_PATTERN=InnoDB: Recovered page \\[page id: space=[1-9]*, page number=3\\]; let SEARCH_PATTERN=InnoDB: Recovered page \\[page id: space=[1-9][0-9]*, page number=3\\];
--source include/search_pattern_in_file.inc --source include/search_pattern_in_file.inc
check table t1; check table t1;
check table t2; check table t2;
check table t3;
select f1, f2 from t1; select f1, f2 from t1;
select f1, f2 from t2; select f1, f2 from t2;
select f1, f2 from t3;
SET GLOBAL innodb_fast_shutdown = 0; SET GLOBAL innodb_fast_shutdown = 0;
let $shutdown_timeout=; let $shutdown_timeout=;
@ -220,4 +238,4 @@ select * from t1;
--source ../../mariabackup/include/restart_and_restore.inc --source ../../mariabackup/include/restart_and_restore.inc
select * from t1; select * from t1;
drop table t2, t1; drop table t3, t2, t1;

View File

@ -1,2 +1,2 @@
--innodb_buffer_pool_size=5M --innodb_buffer_pool_size=6M
--innodb_encrypt_temporary_tables=1 --innodb_encrypt_temporary_tables=1

View File

@ -5073,10 +5073,14 @@ ERROR 23000: Duplicate entry '825:23:00' for key 'c2'
INSERT INTO t3(c1,c2) VALUES('34 9:23','34 9:23') /* throws error as row exists with c1='34 9:23',c2='34 9:23' */; INSERT INTO t3(c1,c2) VALUES('34 9:23','34 9:23') /* throws error as row exists with c1='34 9:23',c2='34 9:23' */;
ERROR 23000: Duplicate entry '825:23:00-825:23:00' for key 'idx' ERROR 23000: Duplicate entry '825:23:00-825:23:00' for key 'idx'
INSERT IGNORE INTO t1(c1,c2) VALUES('10:22:33','10:22:34') /* doesn't throw error */; INSERT IGNORE INTO t1(c1,c2) VALUES('10:22:33','10:22:34') /* doesn't throw error */;
Warnings:
Warning 1062 Duplicate entry '10:22:33' for key 'PRIMARY'
INSERT IGNORE INTO t2(c1,c2) VALUES('12:34:56.78','12:34:56.78') /*doesn't throw error */; INSERT IGNORE INTO t2(c1,c2) VALUES('12:34:56.78','12:34:56.78') /*doesn't throw error */;
Warnings: Warnings:
Warning 1062 Duplicate entry '12:34:56-12:34:56' for key 'PRIMARY' Warning 1062 Duplicate entry '12:34:56-12:34:56' for key 'PRIMARY'
INSERT IGNORE INTO t1(c1,c2) VALUES('10:22:34','34 9:23') /*doesn't throw error */; INSERT IGNORE INTO t1(c1,c2) VALUES('10:22:34','34 9:23') /*doesn't throw error */;
Warnings:
Warning 1062 Duplicate entry '825:23:00' for key 'c2'
INSERT IGNORE INTO t3(c1,c2) VALUES('34 9:23','34 9:23') /*doesn't throw error */; INSERT IGNORE INTO t3(c1,c2) VALUES('34 9:23','34 9:23') /*doesn't throw error */;
Warnings: Warnings:
Warning 1062 Duplicate entry '825:23:00-825:23:00' for key 'idx' Warning 1062 Duplicate entry '825:23:00-825:23:00' for key 'idx'

View File

@ -6,7 +6,7 @@
# Checking of other prerequisites is in charset_master.test # # Checking of other prerequisites is in charset_master.test #
################################################################################ ################################################################################
--source include/no_valgrind_without_big.inc --source include/long_test.inc
--source include/have_innodb.inc --source include/have_innodb.inc
# Starting with MariaDB 10.6, ensure that DDL recovery will have completed # Starting with MariaDB 10.6, ensure that DDL recovery will have completed

View File

@ -11,4 +11,7 @@
############################################################################## ##############################################################################
galera_sequences : MDEV-35934/MDEV-33850 For Galera, create sequence with low cache got signal 6 error: [ERROR] WSREP: FSM: no such a transition REPLICATING -> COMMITTED galera_sequences : MDEV-35934/MDEV-33850 For Galera, create sequence with low cache got signal 6 error: [ERROR] WSREP: FSM: no such a transition REPLICATING -> COMMITTED
MDEV-26266 : MDEV-26266 galera_wan : MDEV-35940 Unallowed state transition: donor -> synced in galera_wan
galera_vote_rejoin_ddl : MDEV-35940 Unallowed state transition: donor -> synced in galera_wan
MW-329 : MDEV-35951 Complete freeze during MW-329 test
galera_vote_rejoin_dml : MDEV-35964 Assertion `ist_seqno >= cc_seqno' failed in galera_vote_rejoin_dml

View File

@ -17,7 +17,7 @@ wsrep-on=1
#ist_port=@OPT.port #ist_port=@OPT.port
#sst_port=@OPT.port #sst_port=@OPT.port
wsrep_cluster_address=gcomm:// wsrep_cluster_address=gcomm://
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M' wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
wsrep_node_address='127.0.0.1:@mysqld.1.#galera_port' wsrep_node_address='127.0.0.1:@mysqld.1.#galera_port'
wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port
wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port' wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port'
@ -28,7 +28,7 @@ wsrep-on=1
#ist_port=@OPT.port #ist_port=@OPT.port
#sst_port=@OPT.port #sst_port=@OPT.port
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port' wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M' wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port' wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port'
wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port
wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port' wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port'

View File

@ -25,7 +25,7 @@ server-id=1
#sst_port=@OPT.port #sst_port=@OPT.port
wsrep_provider=@ENV.WSREP_PROVIDER wsrep_provider=@ENV.WSREP_PROVIDER
wsrep_cluster_address=gcomm:// wsrep_cluster_address=gcomm://
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M' wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
wsrep_node_address='127.0.0.1:@mysqld.1.#galera_port' wsrep_node_address='127.0.0.1:@mysqld.1.#galera_port'
wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port
wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port' wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port'
@ -38,7 +38,7 @@ server-id=2
#sst_port=@OPT.port #sst_port=@OPT.port
wsrep_provider=@ENV.WSREP_PROVIDER wsrep_provider=@ENV.WSREP_PROVIDER
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port' wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M' wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port' wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port'
wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port
wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port' wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port'

View File

@ -24,7 +24,7 @@ server-id=1
#sst_port=@OPT.port #sst_port=@OPT.port
wsrep_provider=@ENV.WSREP_PROVIDER wsrep_provider=@ENV.WSREP_PROVIDER
wsrep_cluster_address=gcomm:// wsrep_cluster_address=gcomm://
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M' wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
wsrep_node_address='127.0.0.1:@mysqld.1.#galera_port' wsrep_node_address='127.0.0.1:@mysqld.1.#galera_port'
wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port
wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port' wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port'
@ -37,7 +37,7 @@ server-id=2
#sst_port=@OPT.port #sst_port=@OPT.port
wsrep_provider=@ENV.WSREP_PROVIDER wsrep_provider=@ENV.WSREP_PROVIDER
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port' wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M' wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port' wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port'
wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port
wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port' wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port'

View File

@ -24,7 +24,7 @@ server-id=1
#sst_port=@OPT.port #sst_port=@OPT.port
wsrep_provider=@ENV.WSREP_PROVIDER wsrep_provider=@ENV.WSREP_PROVIDER
wsrep_cluster_address=gcomm:// wsrep_cluster_address=gcomm://
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M' wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
wsrep_node_address='127.0.0.1:@mysqld.1.#galera_port' wsrep_node_address='127.0.0.1:@mysqld.1.#galera_port'
wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port
wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port' wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port'
@ -37,7 +37,7 @@ server-id=2
#sst_port=@OPT.port #sst_port=@OPT.port
wsrep_provider=@ENV.WSREP_PROVIDER wsrep_provider=@ENV.WSREP_PROVIDER
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port' wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M' wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port' wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port'
wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port
wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port' wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port'

View File

@ -24,7 +24,7 @@ server-id=1
#sst_port=@OPT.port #sst_port=@OPT.port
wsrep_provider=@ENV.WSREP_PROVIDER wsrep_provider=@ENV.WSREP_PROVIDER
wsrep_cluster_address=gcomm:// wsrep_cluster_address=gcomm://
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M' wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
wsrep_node_address='127.0.0.1:@mysqld.1.#galera_port' wsrep_node_address='127.0.0.1:@mysqld.1.#galera_port'
wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port
wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port' wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port'
@ -37,7 +37,7 @@ server-id=2
#sst_port=@OPT.port #sst_port=@OPT.port
wsrep_provider=@ENV.WSREP_PROVIDER wsrep_provider=@ENV.WSREP_PROVIDER
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port' wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M' wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port' wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port'
wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port
wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port' wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port'
@ -50,7 +50,7 @@ server-id=3
#sst_port=@OPT.port #sst_port=@OPT.port
wsrep-provider=@ENV.WSREP_PROVIDER wsrep-provider=@ENV.WSREP_PROVIDER
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port' wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.3.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M' wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.3.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
wsrep_node_address='127.0.0.1:@mysqld.3.#galera_port' wsrep_node_address='127.0.0.1:@mysqld.3.#galera_port'
wsrep_node_incoming_address=127.0.0.1:@mysqld.3.port wsrep_node_incoming_address=127.0.0.1:@mysqld.3.port
wsrep_sst_receive_address='127.0.0.1:@mysqld.3.#sst_port' wsrep_sst_receive_address='127.0.0.1:@mysqld.3.#sst_port'

View File

@ -18,7 +18,7 @@ wsrep-on=1
#ist_port=@OPT.port #ist_port=@OPT.port
#sst_port=@OPT.port #sst_port=@OPT.port
wsrep_cluster_address=gcomm:// wsrep_cluster_address=gcomm://
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT25S' wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
wsrep_node_address='127.0.0.1:@mysqld.1.#galera_port' wsrep_node_address='127.0.0.1:@mysqld.1.#galera_port'
wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port
wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port' wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port'
@ -30,7 +30,7 @@ wsrep-on=1
#ist_port=@OPT.port #ist_port=@OPT.port
#sst_port=@OPT.port #sst_port=@OPT.port
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port' wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT25S' wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port' wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port'
wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port
wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port' wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port'
@ -42,7 +42,7 @@ wsrep-on=1
#ist_port=@OPT.port #ist_port=@OPT.port
#sst_port=@OPT.port #sst_port=@OPT.port
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port' wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.3.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT25S' wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.3.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
wsrep_node_address='127.0.0.1:@mysqld.3.#galera_port' wsrep_node_address='127.0.0.1:@mysqld.3.#galera_port'
wsrep_node_incoming_address=127.0.0.1:@mysqld.3.port wsrep_node_incoming_address=127.0.0.1:@mysqld.3.port
wsrep_sst_receive_address='127.0.0.1:@mysqld.3.#sst_port' wsrep_sst_receive_address='127.0.0.1:@mysqld.3.#sst_port'
@ -54,7 +54,7 @@ wsrep-on=1
#ist_port=@OPT.port #ist_port=@OPT.port
#sst_port=@OPT.port #sst_port=@OPT.port
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port' wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.4.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT25S' wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.4.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
wsrep_node_address='127.0.0.1:@mysqld.4.#galera_port' wsrep_node_address='127.0.0.1:@mysqld.4.#galera_port'
wsrep_node_incoming_address=127.0.0.1:@mysqld.4.port wsrep_node_incoming_address=127.0.0.1:@mysqld.4.port
wsrep_sst_receive_address='127.0.0.1:@mysqld.4.#sst_port' wsrep_sst_receive_address='127.0.0.1:@mysqld.4.#sst_port'

View File

@ -42,4 +42,3 @@ if ($node_4)
--connection $node_4 --connection $node_4
let $auto_increment_offset_node_4 = `SELECT @@global.auto_increment_offset`; let $auto_increment_offset_node_4 = `SELECT @@global.auto_increment_offset`;
} }

View File

@ -25,4 +25,3 @@ while ($seqno <= $sr_max)
--inc $seqno --inc $seqno
} }

View File

@ -118,4 +118,3 @@ SELECT * from t1;
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
DROP TABLE t1; DROP TABLE t1;
COMMIT; COMMIT;

View File

@ -41,9 +41,9 @@ perl;
my $counter = 1000; my $counter = 1000;
#my $found = false #my $found = false
while ($counter > 0) { while ($counter > 0) {
open(FILE, "$logfile") or die("Unable to open $logfile : $!\n"); open(FILE, "$logfile") or die("Unable to open $logfile : $!\n");
my $new_sync_count = () = grep(/Synchronized with group/g,<FILE>); my $new_sync_count = () = grep(/Synchronized with group/g,<FILE>);
close(FILE); close(FILE);

View File

@ -9,14 +9,14 @@ if (!$wsrep_recover_additional)
} }
--perl --perl
use strict; use strict;
my $wsrep_start_position_str = "grep -a 'WSREP: Recovered position:' $ENV{MYSQL_TMP_DIR}/galera_wsrep_recover.log | sed 's/.*WSREP\:\ Recovered\ position://' | sed 's/^[ \t]*//'"; my $wsrep_start_position_str = "grep -a 'WSREP: Recovered position:' $ENV{MYSQL_TMP_DIR}/galera_wsrep_recover.log | sed 's/.*WSREP\:\ Recovered\ position://' | sed 's/^[ \t]*//'";
my $wsrep_start_position = `grep -a 'WSREP: Recovered position:' $ENV{MYSQL_TMP_DIR}/galera_wsrep_recover.log | sed 's/.*WSREP\:\ Recovered\ position://' | sed 's/^[ \t]*//'`; my $wsrep_start_position = `grep -a 'WSREP: Recovered position:' $ENV{MYSQL_TMP_DIR}/galera_wsrep_recover.log | sed 's/.*WSREP\:\ Recovered\ position://' | sed 's/^[ \t]*//'`;
chomp($wsrep_start_position); chomp($wsrep_start_position);
die if $wsrep_start_position eq ''; die if $wsrep_start_position eq '';
open(FILE, ">", "$ENV{MYSQL_TMP_DIR}/galera_wsrep_start_position.inc") or die; open(FILE, ">", "$ENV{MYSQL_TMP_DIR}/galera_wsrep_start_position.inc") or die;
print FILE "--let \$galera_wsrep_start_position = $wsrep_start_position\n"; print FILE "--let \$galera_wsrep_start_position = $wsrep_start_position\n";
close FILE; close FILE;
EOF EOF

View File

@ -15,7 +15,7 @@ connection node_2a;
SET GLOBAL debug_dbug = 'RESET'; SET GLOBAL debug_dbug = 'RESET';
SET DEBUG_SYNC = 'now SIGNAL signal.mdev_20225_continue'; SET DEBUG_SYNC = 'now SIGNAL signal.mdev_20225_continue';
SET DEBUG_SYNC = 'RESET'; SET DEBUG_SYNC = 'RESET';
SET GLOBAL wsrep_slave_threads = 1; SET GLOBAL wsrep_slave_threads = DEFAULT;
connection node_2; connection node_2;
SHOW TRIGGERS; SHOW TRIGGERS;
Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation

View File

@ -41,4 +41,4 @@ connection node_1;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
SET debug_sync = "RESET"; SET debug_sync = "RESET";
DROP TABLE t1; DROP TABLE t1;
SET GLOBAL wsrep_slave_threads = 1; SET GLOBAL wsrep_slave_threads = DEFAULT;

View File

@ -15,3 +15,4 @@ SET GLOBAL wsrep_slave_threads=1;
SELECT @@wsrep_slave_threads; SELECT @@wsrep_slave_threads;
@@wsrep_slave_threads @@wsrep_slave_threads
1 1
connection node_2;

View File

@ -19,5 +19,5 @@ INSERT INTO t2 VALUES (3);
INSERT INTO t2 VALUES (4); INSERT INTO t2 VALUES (4);
INSERT INTO t2 VALUES (5); INSERT INTO t2 VALUES (5);
CREATE VIEW v1 AS SELECT c1 FROM t1 WHERE c1 IN (SELECT a FROM t2) GROUP BY c1; CREATE VIEW v1 AS SELECT c1 FROM t1 WHERE c1 IN (SELECT a FROM t2) GROUP BY c1;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction DROP VIEW v1;
DROP TABLE t1,t2; DROP TABLE t1,t2;

View File

@ -4,7 +4,7 @@ connect node_1a,127.0.0.1,root,,test,$NODE_MYPORT_1;
connection node_1; connection node_1;
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
connection node_1a; connection node_1a;
TRUNCATE TABLE t1; RENAME TABLE t1 TO tmp, tmp TO t1;
SET SESSION wsrep_retry_autocommit = 0; SET SESSION wsrep_retry_autocommit = 0;
SET DEBUG_SYNC = 'dict_stats_mdl_acquired SIGNAL may_toi WAIT_FOR bf_abort'; SET DEBUG_SYNC = 'dict_stats_mdl_acquired SIGNAL may_toi WAIT_FOR bf_abort';
INSERT INTO t1 VALUES (1); INSERT INTO t1 VALUES (1);

View File

@ -95,7 +95,6 @@ id val
4 d 4 d
5 d 5 d
6 d 6 d
set global wsrep_mode=default;
connection node_1; connection node_1;
drop table t1,t2,t3,t4,t5; drop table t1,t2,t3,t4,t5;
set global wsrep_mode=default; set global wsrep_mode=default;

View File

@ -13,7 +13,7 @@ connection node_3;
SELECT @@wsrep_on; SELECT @@wsrep_on;
@@wsrep_on @@wsrep_on
0 0
call mtr.add_suppression("Error reading packet from server: WSREP has not yet prepared node for application use (server_errno=1047)"); call mtr.add_suppression("Error reading packet from server: WSREP has not yet prepared node for application use \\(server_errno ?= ?1047\\)");
START SLAVE; START SLAVE;
include/wait_for_slave_param.inc [Slave_IO_Running] include/wait_for_slave_param.inc [Slave_IO_Running]
connection node_1; connection node_1;

View File

@ -18,5 +18,6 @@ connection node_1b;
connection node_1; connection node_1;
DROP PROCEDURE proc_insert; DROP PROCEDURE proc_insert;
DROP TABLE t1; DROP TABLE t1;
disconnect node_1b;
CALL mtr.add_suppression("WSREP: .* conflict state after post commit "); CALL mtr.add_suppression("WSREP: .* conflict state after post commit ");
set global innodb_status_output=Default; set global innodb_status_output=Default;

View File

@ -0,0 +1,25 @@
connection node_2;
connection node_1;
CREATE TABLE t1 (f1 INTEGER, f2 CHAR(20) DEFAULT 'abc') ENGINE=InnoDB;
INSERT INTO t1 (f1) VALUES (1),(65535);
CREATE PROCEDURE proc_insert (repeat_count int)
BEGIN
DECLARE current_num int;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END;
SET current_num = 0;
SET SESSION wsrep_sync_wait = 0;
WHILE current_num < repeat_count do
INSERT INTO t1 (f1) VALUES (FLOOR( 1 + RAND( ) * 65535 ));
SELECT SLEEP(0.1);
SET current_num = current_num + 1;
END WHILE;
END|
connect node_1b, 127.0.0.1, root, , test, $NODE_MYPORT_1;
connection node_1b;
connection node_1b;
connection node_1;
DROP PROCEDURE proc_insert;
DROP TABLE t1;
disconnect node_1b;
CALL mtr.add_suppression("WSREP: .* conflict state after post commit ");
set global innodb_status_output=Default;

View File

@ -20,13 +20,13 @@ ALTER VIEW vw AS SELECT 1;
Got one of the listed errors Got one of the listed errors
CREATE DATABASE db; CREATE DATABASE db;
Got one of the listed errors Got one of the listed errors
CREATE EVENT ev1 ON SCHEDULE AT CURRENT_TIMESTAMP DO SELECT 1; CREATE EVENT ev1 ON SCHEDULE AT CURRENT_TIMESTAMP DO SELECT 1;
Got one of the listed errors Got one of the listed errors
CREATE FUNCTION fun1() RETURNS int RETURN(1); CREATE FUNCTION fun1() RETURNS int RETURN(1);
Got one of the listed errors Got one of the listed errors
CREATE FUNCTION fun1 RETURNS STRING SONAME 'funlib.so'; CREATE FUNCTION fun1 RETURNS STRING SONAME 'funlib.so';
Got one of the listed errors Got one of the listed errors
CREATE PROCEDURE proc1() BEGIN END; CREATE PROCEDURE proc1() BEGIN END;
Got one of the listed errors Got one of the listed errors
CREATE INDEX idx ON tbl(id); CREATE INDEX idx ON tbl(id);
Got one of the listed errors Got one of the listed errors
@ -100,3 +100,4 @@ mysql
performance_schema performance_schema
sys sys
test test
disconnect userMW416;

View File

@ -13,10 +13,13 @@ grant all on *.* to repl2@'%';
connect replica, 127.0.0.1, root, , test, $NODE_MYPORT_1; connect replica, 127.0.0.1, root, , test, $NODE_MYPORT_1;
connection replica; connection replica;
connection node_2; connection node_2;
connection primary1;
connection primary2;
connection replica; connection replica;
# Galera replica changing master to primary1 # Galera replica changing master to primary1
SET @@default_master_connection='stream2'; SET @@default_master_connection='stream1';
# Primary node changing master to primary2 # Primary node changing master to primary2
SET @@default_master_connection='stream2';
START ALL SLAVES; START ALL SLAVES;
Warnings: Warnings:
Note 1937 SLAVE 'stream1' started Note 1937 SLAVE 'stream1' started

View File

@ -13,7 +13,7 @@ connection node_1;
SELECT 1 FROM DUAL; SELECT 1 FROM DUAL;
1 1
1 1
SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'Waiting for table metadata lock'; SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND (STATE LIKE 'Waiting for table metadata lock%' OR STATE LIKE 'Waiting to execute in isolation%');
COUNT(*) = 1 COUNT(*) = 1
1 1
UNLOCK TABLES; UNLOCK TABLES;
@ -25,7 +25,7 @@ t1 CREATE TABLE `t1` (
`f2` int(11) DEFAULT NULL, `f2` int(11) DEFAULT NULL,
PRIMARY KEY (`f1`) PRIMARY KEY (`f1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'Waiting for table metadata lock'; SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND (STATE LIKE 'Waiting for table metadata lock%' OR STATE LIKE 'Waiting to execute in isolation%');
COUNT(*) = 0 COUNT(*) = 0
1 1
DROP TABLE t1; DROP TABLE t1;

View File

@ -27,7 +27,7 @@ STOP SLAVE;
RESET SLAVE ALL; RESET SLAVE ALL;
CALL mtr.add_suppression("Slave SQL: Error 'Unknown command' on query"); CALL mtr.add_suppression("Slave SQL: Error 'Unknown command' on query");
CALL mtr.add_suppression("Slave: Unknown command Error_code: 1047"); CALL mtr.add_suppression("Slave: Unknown command Error_code: 1047");
CALL mtr.add_suppression("Transport endpoint is not connected"); CALL mtr.add_suppression("(Transport endpoint|Socket) is not connected");
CALL mtr.add_suppression("Slave SQL: Error in Xid_log_event: Commit could not be completed, 'Deadlock found when trying to get lock; try restarting transaction', Error_code: 1213"); CALL mtr.add_suppression("Slave SQL: Error in Xid_log_event: Commit could not be completed, 'Deadlock found when trying to get lock; try restarting transaction', Error_code: 1213");
CALL mtr.add_suppression("Slave SQL: Node has dropped from cluster, Error_code: 1047"); CALL mtr.add_suppression("Slave SQL: Node has dropped from cluster, Error_code: 1047");
connection node_4; connection node_4;

View File

@ -1,685 +0,0 @@
SET SESSION wsrep_sync_wait = 0;
galera_sr_bf_abort_at_commit = 0
after_replicate_sync
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
SET SESSION wsrep_trx_fragment_size = 1;
SET AUTOCOMMIT=OFF;
INSERT INTO t1 VALUES (1);
SELECT * FROM t1 FOR UPDATE;
f1
1
SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
SET AUTOCOMMIT=ON;
INSERT INTO t1 VALUES (2);
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,after_replicate_sync';
INSERT INTO t1 VALUES (3);
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=after_replicate_sync';
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
ROLLBACK;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SELECT * FROM t1;
f1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT * FROM t1;
f1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SET AUTOCOMMIT=ON;
SET SESSION wsrep_trx_fragment_size = 0;
DELETE FROM t1;
DROP TABLE t1;
local_monitor_master_enter_sync
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
SET SESSION wsrep_trx_fragment_size = 1;
SET AUTOCOMMIT=OFF;
INSERT INTO t1 VALUES (1);
SELECT * FROM t1 FOR UPDATE;
f1
1
SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
SET AUTOCOMMIT=ON;
INSERT INTO t1 VALUES (2);
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_master_enter_sync';
INSERT INTO t1 VALUES (3);
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=local_monitor_master_enter_sync';
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
ROLLBACK;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SELECT * FROM t1;
f1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT * FROM t1;
f1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SET AUTOCOMMIT=ON;
SET SESSION wsrep_trx_fragment_size = 0;
DELETE FROM t1;
DROP TABLE t1;
apply_monitor_master_enter_sync
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
SET SESSION wsrep_trx_fragment_size = 1;
SET AUTOCOMMIT=OFF;
INSERT INTO t1 VALUES (1);
SELECT * FROM t1 FOR UPDATE;
f1
1
SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
SET AUTOCOMMIT=ON;
INSERT INTO t1 VALUES (2);
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_master_enter_sync';
INSERT INTO t1 VALUES (3);
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_master_enter_sync';
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
ROLLBACK;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SELECT * FROM t1;
f1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT * FROM t1;
f1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SET AUTOCOMMIT=ON;
SET SESSION wsrep_trx_fragment_size = 0;
DELETE FROM t1;
DROP TABLE t1;
commit_monitor_master_enter_sync
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
SET SESSION wsrep_trx_fragment_size = 1;
SET AUTOCOMMIT=OFF;
INSERT INTO t1 VALUES (1);
SELECT * FROM t1 FOR UPDATE;
f1
1
SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
SET AUTOCOMMIT=ON;
INSERT INTO t1 VALUES (2);
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,commit_monitor_master_enter_sync';
INSERT INTO t1 VALUES (3);
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=commit_monitor_master_enter_sync';
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
ROLLBACK;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SELECT * FROM t1;
f1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT * FROM t1;
f1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SET AUTOCOMMIT=ON;
SET SESSION wsrep_trx_fragment_size = 0;
DELETE FROM t1;
DROP TABLE t1;
galera_sr_bf_abort_at_commit = 1
after_replicate_sync
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
SET SESSION wsrep_trx_fragment_size = 1;
SET AUTOCOMMIT=OFF;
INSERT INTO t1 VALUES (1);
SELECT * FROM t1 FOR UPDATE;
f1
1
SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
SET AUTOCOMMIT=ON;
INSERT INTO t1 VALUES (2);
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,after_replicate_sync';
COMMIT;
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=after_replicate_sync';
ROLLBACK;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SELECT * FROM t1;
f1
1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 1;
COUNT(*) = 1
1
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT * FROM t1;
f1
1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 1;
COUNT(*) = 1
1
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SET AUTOCOMMIT=ON;
SET SESSION wsrep_trx_fragment_size = 0;
DELETE FROM t1;
DROP TABLE t1;
local_monitor_master_enter_sync
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
SET SESSION wsrep_trx_fragment_size = 1;
SET AUTOCOMMIT=OFF;
INSERT INTO t1 VALUES (1);
SELECT * FROM t1 FOR UPDATE;
f1
1
SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
SET AUTOCOMMIT=ON;
INSERT INTO t1 VALUES (2);
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_master_enter_sync';
COMMIT;
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=local_monitor_master_enter_sync';
ROLLBACK;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SELECT * FROM t1;
f1
1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 1;
COUNT(*) = 1
1
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT * FROM t1;
f1
1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 1;
COUNT(*) = 1
1
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SET AUTOCOMMIT=ON;
SET SESSION wsrep_trx_fragment_size = 0;
DELETE FROM t1;
DROP TABLE t1;
apply_monitor_master_enter_sync
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
SET SESSION wsrep_trx_fragment_size = 1;
SET AUTOCOMMIT=OFF;
INSERT INTO t1 VALUES (1);
SELECT * FROM t1 FOR UPDATE;
f1
1
SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
SET AUTOCOMMIT=ON;
INSERT INTO t1 VALUES (2);
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_master_enter_sync';
COMMIT;
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_master_enter_sync';
ROLLBACK;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SELECT * FROM t1;
f1
1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 1;
COUNT(*) = 1
1
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT * FROM t1;
f1
1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 1;
COUNT(*) = 1
1
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SET AUTOCOMMIT=ON;
SET SESSION wsrep_trx_fragment_size = 0;
DELETE FROM t1;
DROP TABLE t1;
commit_monitor_master_enter_sync
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
SET SESSION wsrep_trx_fragment_size = 1;
SET AUTOCOMMIT=OFF;
INSERT INTO t1 VALUES (1);
SELECT * FROM t1 FOR UPDATE;
f1
1
SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
SET AUTOCOMMIT=ON;
INSERT INTO t1 VALUES (2);
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,commit_monitor_master_enter_sync';
COMMIT;
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=commit_monitor_master_enter_sync';
ROLLBACK;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SELECT * FROM t1;
f1
1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 1;
COUNT(*) = 1
1
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT * FROM t1;
f1
1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 1;
COUNT(*) = 1
1
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SET AUTOCOMMIT=ON;
SET SESSION wsrep_trx_fragment_size = 0;
DELETE FROM t1;
DROP TABLE t1;
galera_sr_bf_abort_at_commit = 1
after_replicate_sync
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
SET SESSION wsrep_trx_fragment_size = 0;
SET AUTOCOMMIT=OFF;
INSERT INTO t1 VALUES (1);
SELECT * FROM t1 FOR UPDATE;
f1
1
SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
SET AUTOCOMMIT=ON;
INSERT INTO t1 VALUES (2);
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,after_replicate_sync';
COMMIT;
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=after_replicate_sync';
ROLLBACK;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SELECT * FROM t1;
f1
1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 1;
COUNT(*) = 1
1
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT * FROM t1;
f1
1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 1;
COUNT(*) = 1
1
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SET AUTOCOMMIT=ON;
SET SESSION wsrep_trx_fragment_size = 0;
DELETE FROM t1;
DROP TABLE t1;
local_monitor_master_enter_sync
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
SET SESSION wsrep_trx_fragment_size = 0;
SET AUTOCOMMIT=OFF;
INSERT INTO t1 VALUES (1);
SELECT * FROM t1 FOR UPDATE;
f1
1
SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
SET AUTOCOMMIT=ON;
INSERT INTO t1 VALUES (2);
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_master_enter_sync';
COMMIT;
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=local_monitor_master_enter_sync';
ROLLBACK;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SELECT * FROM t1;
f1
1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 1;
COUNT(*) = 1
1
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT * FROM t1;
f1
1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 1;
COUNT(*) = 1
1
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SET AUTOCOMMIT=ON;
SET SESSION wsrep_trx_fragment_size = 0;
DELETE FROM t1;
DROP TABLE t1;
apply_monitor_master_enter_sync
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
SET SESSION wsrep_trx_fragment_size = 0;
SET AUTOCOMMIT=OFF;
INSERT INTO t1 VALUES (1);
SELECT * FROM t1 FOR UPDATE;
f1
1
SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
SET AUTOCOMMIT=ON;
INSERT INTO t1 VALUES (2);
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_master_enter_sync';
COMMIT;
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_master_enter_sync';
ROLLBACK;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SELECT * FROM t1;
f1
1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 1;
COUNT(*) = 1
1
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT * FROM t1;
f1
1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 1;
COUNT(*) = 1
1
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SET AUTOCOMMIT=ON;
SET SESSION wsrep_trx_fragment_size = 0;
DELETE FROM t1;
DROP TABLE t1;
commit_monitor_master_enter_sync
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
SET SESSION wsrep_trx_fragment_size = 0;
SET AUTOCOMMIT=OFF;
INSERT INTO t1 VALUES (1);
SELECT * FROM t1 FOR UPDATE;
f1
1
SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
SET AUTOCOMMIT=ON;
INSERT INTO t1 VALUES (2);
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,commit_monitor_master_enter_sync';
COMMIT;
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'dbug=d,abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
SET SESSION wsrep_on = 0;
SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SET GLOBAL wsrep_provider_options = 'signal=commit_monitor_master_enter_sync';
ROLLBACK;
SET GLOBAL wsrep_provider_options = 'dbug=';
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
SELECT * FROM t1;
f1
1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 1;
COUNT(*) = 1
1
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT * FROM t1;
f1
1
2
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 1;
COUNT(*) = 1
1
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2;
COUNT(*) = 1
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SET AUTOCOMMIT=ON;
SET SESSION wsrep_trx_fragment_size = 0;
DELETE FROM t1;
DROP TABLE t1;
CALL mtr.add_suppression("WSREP: fragment replication failed: 1");

View File

@ -1,5 +1,5 @@
--- a/home/panda/mariadb-10.5/mysql-test/suite/galera/r/galera_bf_kill.result --- r/galera_bf_kill.result
+++ b/home/panda/mariadb-10.5/mysql-test/suite/galera/r/galera_bf_kill.reject +++ r/galera_bf_kill,debug.reject
@@ -77,4 +77,34 @@ a b @@ -77,4 +77,34 @@ a b
5 2 5 2
disconnect node_2a; disconnect node_2a;

View File

@ -27,4 +27,5 @@ i
1 1
connection node_1; connection node_1;
DROP TABLE t1; DROP TABLE t1;
SET @@global.wsrep_mode=DEFAULT;
# End of tests. # End of tests.

View File

@ -1,11 +1,11 @@
connection node_2; connection node_2;
connection node_1; connection node_1;
connection node_1; connection node_1;
connection node_2;
connection node_1;
SET GLOBAL auto_increment_offset=1; SET GLOBAL auto_increment_offset=1;
connection node_2; connection node_2;
SET GLOBAL auto_increment_offset=2; SET GLOBAL auto_increment_offset=2;
connection node_1;
connection node_2;
connection node_2; connection node_2;
SET GLOBAL wsrep_forced_binlog_format='STATEMENT'; SET GLOBAL wsrep_forced_binlog_format='STATEMENT';
connection node_1; connection node_1;

View File

@ -12,6 +12,7 @@ ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
connection replica1; connection replica1;
connection node_2; connection node_2;
connection primary2; connection primary2;
connection primary1;
connection replica1; connection replica1;
# Galera replica changing master to primary1 # Galera replica changing master to primary1
START SLAVE; START SLAVE;

View File

@ -298,6 +298,7 @@ DROP TABLE p1, p2;
###################################################################### ######################################################################
connection node_1; connection node_1;
SET SESSION wsrep_sync_wait=0; SET SESSION wsrep_sync_wait=0;
FLUSH STATUS;
CREATE TABLE p1 (pk INTEGER PRIMARY KEY, f2 CHAR(30)); CREATE TABLE p1 (pk INTEGER PRIMARY KEY, f2 CHAR(30));
INSERT INTO p1 VALUES (1, 'INITIAL VALUE'); INSERT INTO p1 VALUES (1, 'INITIAL VALUE');
CREATE TABLE p2 (pk INTEGER PRIMARY KEY, f2 CHAR(30)); CREATE TABLE p2 (pk INTEGER PRIMARY KEY, f2 CHAR(30));
@ -491,6 +492,7 @@ Note 1051 Unknown table 'test.tmp1,test.tmp2'
###################################################################### ######################################################################
connection node_1; connection node_1;
SET SESSION wsrep_sync_wait=0; SET SESSION wsrep_sync_wait=0;
FLUSH STATUS;
CREATE TABLE p1 (pk INTEGER PRIMARY KEY, f2 CHAR(30)); CREATE TABLE p1 (pk INTEGER PRIMARY KEY, f2 CHAR(30));
INSERT INTO p1 VALUES (1, 'INITIAL VALUE'); INSERT INTO p1 VALUES (1, 'INITIAL VALUE');
CREATE TABLE p2 (pk INTEGER PRIMARY KEY, f2 CHAR(30)); CREATE TABLE p2 (pk INTEGER PRIMARY KEY, f2 CHAR(30));
@ -684,6 +686,7 @@ Note 1051 Unknown table 'test.tmp1,test.tmp2'
###################################################################### ######################################################################
connection node_1; connection node_1;
SET SESSION wsrep_sync_wait=0; SET SESSION wsrep_sync_wait=0;
FLUSH STATUS;
CREATE TABLE p1 (pk INTEGER PRIMARY KEY, f2 CHAR(30)); CREATE TABLE p1 (pk INTEGER PRIMARY KEY, f2 CHAR(30));
INSERT INTO p1 VALUES (1, 'INITIAL VALUE'); INSERT INTO p1 VALUES (1, 'INITIAL VALUE');
CREATE TABLE p2 (pk INTEGER PRIMARY KEY, f2 CHAR(30)); CREATE TABLE p2 (pk INTEGER PRIMARY KEY, f2 CHAR(30));

View File

@ -1,6 +1,9 @@
connection node_2; connection node_2;
connection node_1; connection node_1;
# Correct Galera library found # Correct Galera library found
SELECT COUNT(*) `expect 51` FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME LIKE 'wsrep_%';
expect 51
51
SELECT VARIABLE_NAME, VARIABLE_VALUE SELECT VARIABLE_NAME, VARIABLE_VALUE
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
WHERE VARIABLE_NAME LIKE 'wsrep_%' WHERE VARIABLE_NAME LIKE 'wsrep_%'

View File

@ -22,7 +22,7 @@ INSERT INTO t1 VALUES (2, "bbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
connection node_1a; connection node_1a;
SET GLOBAL wsrep_provider_options = 'signal=gcs_core_after_frag_send'; SET GLOBAL wsrep_provider_options = 'signal=gcs_core_after_frag_send';
connection node_1; connection node_1;
ERROR HY000: Got error 6 "No such device or address" during COMMIT ERROR HY000: Error while appending streaming replication fragment(provider status: Not connected to Primary Component)
INSERT INTO t1 VALUES (3, "cccccaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); INSERT INTO t1 VALUES (3, "cccccaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
SELECT * FROM t1; SELECT * FROM t1;
f1 f2 f1 f2

View File

@ -3,8 +3,11 @@ connection node_1;
CREATE TABLE t1(id int not null primary key, b int) engine=InnoDB; CREATE TABLE t1(id int not null primary key, b int) engine=InnoDB;
INSERT INTO t1 VALUES (0,0),(1,1),(2,2),(3,3); INSERT INTO t1 VALUES (0,0),(1,1),(2,2),(3,3);
BEGIN; BEGIN;
SET DEBUG_SYNC = 'wsrep_after_statement_enter SIGNAL blocked';
UPDATE t1 set b = 100 where id between 1 and 2;; UPDATE t1 set b = 100 where id between 1 and 2;;
connect node_1b, 127.0.0.1, root, , test, $NODE_MYPORT_1; connect node_1b, 127.0.0.1, root, , test, $NODE_MYPORT_1;
SET DEBUG_SYNC = 'now WAIT_FOR blocked';
SET DEBUG_SYNC = 'wsrep_after_statement_enter CLEAR';
connection node_1b; connection node_1b;
SET @save_dbug = @@SESSION.debug_dbug; SET @save_dbug = @@SESSION.debug_dbug;
SET @@SESSION.innodb_lock_wait_timeout=2; SET @@SESSION.innodb_lock_wait_timeout=2;
@ -20,5 +23,6 @@ id b
1 100 1 100
2 100 2 100
3 3 3 3
SET DEBUG_SYNC = 'RESET';
disconnect node_1b; disconnect node_1b;
DROP TABLE t1; DROP TABLE t1;

View File

@ -1,5 +1,5 @@
--- suite/galera/r/galera_ist_MDEV-28423.result --- r/galera_ist_MDEV-28423.result
+++ suite/galera/r/galera_ist_MDEV-28423.reject +++ r/galera_ist_MDEV-28423,debug.reject
@@ -517,3 +517,187 @@ @@ -517,3 +517,187 @@
1 1
DROP TABLE t1; DROP TABLE t1;

View File

@ -1,5 +1,5 @@
--- suite/galera/r/galera_ist_MDEV-28583.result --- r/galera_ist_MDEV-28583.result
+++ suite/galera/r/galera_ist_MDEV-28583,debug.reject +++ r/galera_ist_MDEV-28583,debug.reject
@@ -517,3 +517,187 @@ @@ -517,3 +517,187 @@
1 1
DROP TABLE t1; DROP TABLE t1;

View File

@ -1,13 +1,12 @@
--- r/galera_ist_mysqldump.result --- r/galera_ist_mysqldump.result
+++ r/galera_ist_mysqldump,debug.reject +++ r/galera_ist_mysqldump,debug.reject
@@ -354,11 +354,195 @@ @@ -354,6 +354,190 @@
1 1
DROP TABLE t1; DROP TABLE t1;
COMMIT; COMMIT;
+Performing State Transfer on a server that has been killed and restarted +Performing State Transfer on a server that has been killed and restarted
+while a DDL was in progress on it +while a DDL was in progress on it
connection node_1; +connection node_1;
-CALL mtr.add_suppression("Slave SQL: Error 'The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement' on query");
+CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB; +CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB;
+SET AUTOCOMMIT=OFF; +SET AUTOCOMMIT=OFF;
+START TRANSACTION; +START TRANSACTION;
@ -189,12 +188,6 @@
+DROP TABLE t1; +DROP TABLE t1;
+COMMIT; +COMMIT;
+SET GLOBAL debug_dbug = $debug_orig; +SET GLOBAL debug_dbug = $debug_orig;
+connection node_1; connection node_1;
+CALL mtr.add_suppression("Slave SQL: Error 'The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement' on query"); CALL mtr.add_suppression("Slave SQL: Error 'The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement' on query");
DROP USER sst; DROP USER sst;
connection node_2;
-CALL mtr.add_suppression("Slave SQL: Error 'The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement' on query");
+CALL mtr.add_suppression("Slave SQL: Error 'The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement' on query");
CALL mtr.add_suppression("InnoDB: Error: Table \"mysql\"\\.\"innodb_index_stats\" not found");
CALL mtr.add_suppression("Can't open and lock time zone table");
CALL mtr.add_suppression("Can't open and lock privilege tables");

View File

@ -1,15 +0,0 @@
--- r/galera_ist_mysqldump.result
+++ r/galera_ist_mysqldump.reject
@@ -355,10 +355,10 @@
DROP TABLE t1;
COMMIT;
connection node_1;
-CALL mtr.add_suppression("Slave SQL: Error 'The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement' on query");
+CALL mtr.add_suppression("Slave SQL: Error 'The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement' on query");
DROP USER sst;
connection node_2;
-CALL mtr.add_suppression("Slave SQL: Error 'The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement' on query");
+CALL mtr.add_suppression("Slave SQL: Error 'The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement' on query");
CALL mtr.add_suppression("InnoDB: Error: Table \"mysql\"\\.\"innodb_index_stats\" not found");
CALL mtr.add_suppression("Can't open and lock time zone table");
CALL mtr.add_suppression("Can't open and lock privilege tables");

View File

@ -1,5 +1,8 @@
connection node_2; connection node_2;
connection node_1; connection node_1;
call mtr.add_suppression("WSREP: wsrep_sst_method is set to 'mysqldump' yet mysqld bind_address is set to ");
connection node_1;
connection node_2;
Setting SST method to mysqldump ... Setting SST method to mysqldump ...
call mtr.add_suppression("WSREP: wsrep_sst_method is set to 'mysqldump' yet mysqld bind_address is set to '127\\.0\\.0\\.1'"); call mtr.add_suppression("WSREP: wsrep_sst_method is set to 'mysqldump' yet mysqld bind_address is set to '127\\.0\\.0\\.1'");
call mtr.add_suppression("Failed to load slave replication state from table mysql\\.gtid_slave_pos"); call mtr.add_suppression("Failed to load slave replication state from table mysql\\.gtid_slave_pos");
@ -9,9 +12,6 @@ GRANT ALL PRIVILEGES ON *.* TO 'sst';
SET GLOBAL wsrep_sst_auth = 'sst:'; SET GLOBAL wsrep_sst_auth = 'sst:';
connection node_2; connection node_2;
SET GLOBAL wsrep_sst_method = 'mysqldump'; SET GLOBAL wsrep_sst_method = 'mysqldump';
call mtr.add_suppression("WSREP: wsrep_sst_method is set to 'mysqldump' yet mysqld bind_address is set to ");
connection node_1;
connection node_2;
Performing State Transfer on a server that has been shut down cleanly and restarted Performing State Transfer on a server that has been shut down cleanly and restarted
connection node_1; connection node_1;
CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB; CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB;
@ -355,10 +355,10 @@ COUNT(*) = 0
DROP TABLE t1; DROP TABLE t1;
COMMIT; COMMIT;
connection node_1; connection node_1;
CALL mtr.add_suppression("Slave SQL: Error 'The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement' on query"); CALL mtr.add_suppression("Slave SQL: Error 'The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement' on query");
DROP USER sst; DROP USER sst;
connection node_2; connection node_2;
CALL mtr.add_suppression("Slave SQL: Error 'The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement' on query"); CALL mtr.add_suppression("Slave SQL: Error 'The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement' on query");
CALL mtr.add_suppression("InnoDB: Error: Table \"mysql\"\\.\"innodb_index_stats\" not found"); CALL mtr.add_suppression("InnoDB: Error: Table \"mysql\"\\.\"innodb_index_stats\" not found");
CALL mtr.add_suppression("Can't open and lock time zone table"); CALL mtr.add_suppression("Can't open and lock time zone table");
CALL mtr.add_suppression("Can't open and lock privilege tables"); CALL mtr.add_suppression("Can't open and lock privilege tables");

View File

@ -8,7 +8,7 @@ connection node_2;
SET SESSION wsrep_sync_wait = 0; SET SESSION wsrep_sync_wait = 0;
SET GLOBAL wsrep_slave_threads = 2; SET GLOBAL wsrep_slave_threads = 2;
*************************************************************** ***************************************************************
scenario 1, conflicting UPDATE scenario 1, conflicting UPDATE
*************************************************************** ***************************************************************
SET GLOBAL wsrep_provider_options = 'dbug=d,commit_monitor_slave_enter_sync'; SET GLOBAL wsrep_provider_options = 'dbug=d,commit_monitor_slave_enter_sync';
connection node_1; connection node_1;
@ -31,7 +31,7 @@ SET SESSION wsrep_on = 1;
SET GLOBAL wsrep_provider_options = 'signal=commit_monitor_slave_enter_sync'; SET GLOBAL wsrep_provider_options = 'signal=commit_monitor_slave_enter_sync';
SET GLOBAL wsrep_provider_options = 'dbug='; SET GLOBAL wsrep_provider_options = 'dbug=';
*************************************************************** ***************************************************************
scenario 2, conflicting DELETE scenario 2, conflicting DELETE
*************************************************************** ***************************************************************
SET GLOBAL wsrep_provider_options = 'dbug=d,commit_monitor_slave_enter_sync'; SET GLOBAL wsrep_provider_options = 'dbug=d,commit_monitor_slave_enter_sync';
connection node_1; connection node_1;

Some files were not shown because too many files have changed in this diff Show More