1
0
mirror of https://github.com/MariaDB/server.git synced 2026-10-23 18:49:29 +03:00

MDEV-32745 followup for 7828fb475b

* add a test for new --cat_file feature
* fix off-by-one error in --cat_file lines limit
* fix broken INCLUDE_DIRECTORIES in extra/
* fix typos
* remove mtr-specific workaround from the tool, solve it in the test
* remove dead code
* fixed memory leak in mariadb-migration-config-file [client-server] section
* fixed memory leak in mariadbd --character_set_server=xxx
  (execution time for main.mariadb-migrate-config-file went down
  from 150s to 2s)
* moved tool header to the tool dir
* avoid tripple-initialization of plugins
* disable tool builds in ASAN builds (because of RocksDB)
* compilation failure on x86 (signedness)
This commit is contained in:
Sergei Golubchik
2026-05-02 20:19:12 +02:00
parent 38b971c99d
commit 04e0901077
13 changed files with 87 additions and 91 deletions

2
.gitignore vendored
View File

@@ -64,6 +64,7 @@ extra/generate_option_list
extra/mariabackup/mariabackup
extra/mariabackup/mbstream
extra/mariadb-migrate-config-file
extra/mariadbd_options.h
extra/my_print_defaults
extra/mysql_waitpid
extra/mysqld_safe_helper
@@ -75,7 +76,6 @@ extra/wolfssl/user_settings.h
import_executables.cmake
include/*.h.tmp
include/config.h
include/mariadbd_options.h
include/my_config.h
include/mysql_version.h
include/mysqld_ername.h

View File

@@ -2187,7 +2187,7 @@ int cat_file(DYNAMIC_STRING* ds, const char* filename, uint max_lines)
max_lines= 10000; // Enough for mtr
char *p= buff, *start= buff, *end=buff+len;
while (p < end && line <= max_lines)
while (p < end && line < max_lines)
{
/* Convert cr/lf to lf */
if (*p == '\r' && p+1 < end && *(p+1)== '\n')

View File

@@ -13,7 +13,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include ${ZLIB_INCLUDE_DIRS} ${PCRE_INCLUDE_DIRS} pcre2-8})
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include ${ZLIB_INCLUDE_DIRS} ${PCRE_INCLUDE_DIRS})
# Default install component for the files is Server here
SET(MYSQL_INSTALL_COMPONENT Server)
@@ -46,10 +46,12 @@ ADD_CUSTOM_TARGET(GenError
DEPENDS
${CMAKE_BINARY_DIR}/include/mysqld_error.h.tmp)
IF(NOT CMAKE_CROSSCOMPILING AND TARGET mariadbd)
# this approach doesn't work with cross-compiing (runs mariadbd)
# and doesn't work with ASAN, because LSAN complains about RocksDB (MDEV-36345).
IF(NOT CMAKE_CROSSCOMPILING AND NOT WITH_ASAN AND TARGET mariadbd)
ADD_EXECUTABLE(generate_option_list generate_option_list.cc)
TARGET_LINK_LIBRARIES(generate_option_list mysys pcre2-8)
TARGET_INCLUDE_DIRECTORIES(generate_option_list PRIVATE ${PCRE_INCLUDE_DIRS} pcre2-8)
TARGET_INCLUDE_DIRECTORIES(generate_option_list PRIVATE ${PCRE_INCLUDE_DIRS})
GET_PROPERTY(dynamic_plugins GLOBAL PROPERTY SERVER_DYNAMIC_PLUGINS)
GET_PROPERTY(is_multi_config GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
IF(is_multi_config)
@@ -83,7 +85,7 @@ IF(NOT CMAKE_CROSSCOMPILING AND TARGET mariadbd)
ENDIF()
STRING(REPLACE ";" ":" escaped_plugin_load "${plugin_load}")
SET(genhdr ${CMAKE_BINARY_DIR}/include/mariadbd_options.h)
SET(genhdr ${CMAKE_BINARY_DIR}/extra/mariadbd_options.h)
ADD_CUSTOM_COMMAND(OUTPUT ${genhdr}
# COMMAND ${CMAKE_COMMAND} -E echo "Executing ${populate_plugin_dir}"
${populate_plugin_dir}
@@ -105,6 +107,7 @@ IF(NOT CMAKE_CROSSCOMPILING AND TARGET mariadbd)
# Make sure consumers cannot compile before the header exists:
SET_SOURCE_FILES_PROPERTIES("${genhdr}" PROPERTIES GENERATED TRUE)
TARGET_LINK_LIBRARIES(mariadb-migrate-config-file PRIVATE mysys)
TARGET_INCLUDE_DIRECTORIES(mariadb-migrate-config-file PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
ENDIF()
MYSQL_ADD_EXECUTABLE(my_print_defaults my_print_defaults.c COMPONENT Client)

View File

@@ -792,6 +792,7 @@ static void generator_free(struct generator *generator)
delete_dynamic(&generator->old_version);
delete_dynamic(&generator->unsupported_version);
delete_dynamic(&generator->mariadbd_additions);
delete_dynamic(&generator->client_server);
my_free(generator->output_group);
}
@@ -2267,7 +2268,7 @@ static void print_to_width(const char *line, uint width)
for (start= line ; *line ; line++)
{
if ((line-start) >= width)
if ((uint)(line-start) >= width)
{
if (!space)
space= line; /* No space */
@@ -2520,8 +2521,6 @@ int main(int argc, char **argv)
{
/* Write 'add options' only to the first found config file */
add_new_options_once= 1;
/* Ensure that symbolic links are not expanded. Needed for mtr */
my_defaults_use_original_paths= 1;
if ((error= my_load_defaults(config_file, groups_to_use,
&count, &arguments, &default_directories)))
goto handle_error;

View File

@@ -23,7 +23,7 @@ default_regex_flags=invalid
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp2.cnf
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --mariadbd=$MYSQLD --update --verify --edit=remove
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -56,7 +56,7 @@ log-bin=1
log_error_verbosity = 3
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp2.cnf
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --mariadbd=$MYSQLD --update --verify --edit=last
--echo # Changed files
@@ -65,7 +65,7 @@ EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp2.cnf
--echo # Verify no more changes
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --mariadbd=$MYSQLD --update --verify --edit=last
--remove_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -81,7 +81,7 @@ invalid=true
alter_algorithm=invalid
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --mariadbd=$MYSQLD --update --verify --edit=comment
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--remove_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -122,7 +122,7 @@ port=33
key_buffer_size=20M
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --mariadbd=$MYSQLD --update --verify --error-group=mysqld-5.7 --edit=inline --from=mariadb
--echo # Changed file
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -158,7 +158,7 @@ port=33
key_buffer_size=20M
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --mariadbd=$MYSQLD --update --verify --error-group=mysqld-5.7 --edit=last --from=mariadb
--echo # Changed file
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -219,7 +219,7 @@ key_buffer_size=20M
alter_algorithm=invalid
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --mariadbd=$MYSQLD --update --verify --error-group=unknown --edit=last --from=mariadb
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--remove_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -232,7 +232,7 @@ EOF
key_buffer_size=20M
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --mariadbd=$MYSQLD --update --verify --error-group=mysqld-5.7 --edit=last --from=mysql
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--remove_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -245,7 +245,7 @@ EOF
key_buffer_size=20M
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --mariadbd=$MYSQLD --update --verify --error-group=mysqld-5.7 --edit=last --from=mysql --no-myisam
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--remove_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -258,7 +258,7 @@ EOF
key_buffer_size=20M
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --mariadbd=$MYSQLD --update --verify --error-group=mysqld-5.7 --edit=last
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--remove_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -271,7 +271,7 @@ EOF
key_buffer_size=20M
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --mariadbd=$MYSQLD --update --verify --error-group=mysqld-5.7 --edit=last --no-myisam
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--remove_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -284,7 +284,7 @@ EOF
default_week_format=1
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --mariadbd=$MYSQLD --update --verify --error-group=mysqld-5.7 --edit=last --add-skip-slave-start
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--remove_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -297,7 +297,7 @@ EOF
skip_slave_start
EOF
#--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --mariadbd=$MYSQLD --update --verify --error-group=mysqld-5.7 --edit=last --add-skip-slave-start
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--remove_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -313,7 +313,7 @@ audit_log-disabled
audit_log=on
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --mariadbd=$MYSQLD --update --verify --error-group=mysqld-5.7 --edit=last --add-skip-slave-start
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--remove_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -327,7 +327,7 @@ audit_log=ON
audit_log_file=name
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --mariadbd=$MYSQLD --update --verify --error-group=mysqld-5.7 --edit=last --add-skip-slave-start
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--remove_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -341,7 +341,7 @@ audit_log-disabled
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --mariadbd=$MYSQLD --update --verify --error-group=mysqld-5.7 --edit=last --add-skip-slave-start
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--remove_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -357,7 +357,7 @@ log_error_verbosity = 3
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --mariadbd=$MYSQLD --update --verify --error-group=mysqld-5.7 --edit=last --add-skip-slave-start
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--remove_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -371,7 +371,7 @@ innodb_data_file_path=/var/mysql/test2
key_buffer_size=20M
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --mariadbd=$MYSQLD --update --verify --error-group=mysqld-5.7 --edit=last --fix-all
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--remove_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -385,7 +385,7 @@ innodb_data_file_path=/var/mysql/test2
key_buffer_size=20M
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --mariadbd=$MYSQLD --update --verify --error-group=mysqld-5.7 --edit=last --fix-all --update-paths
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--remove_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -406,10 +406,10 @@ dummy2=2
innodb_data_file_path=/var/mysql/test2
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--error 2
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --update-paths --add-mariadb-replication-compatibility
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --mariadbd="not_found_here" --update --verify --edit=last --silent --update-paths --verify=0
--echo # Changed file
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -424,9 +424,9 @@ innodb_stats_sample_pages=1
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--replace_regex /### File[^\n]*/### File [name hidden]/
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --print --edit=last
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--error 2
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf
--remove_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -441,16 +441,16 @@ innodb_log_file_size=2G
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--echo # Checking file
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--error 2
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf
--echo # Updating file
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --update --verify --edit=last --mariadbd=$MYSQLD --verify
--echo # Changed file
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--echo # Checking if file is ok now
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --verify=0
--remove_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -478,11 +478,11 @@ character-set-server=utf8mb4
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--echo # MySQL -> MariaDB compatibility
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --print --edit=last --verify=0 --add-mariadb-replication-compatibility
--echo # MariaDB -> MySQL compatibility
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --print --edit=last --verify=0 --add-mysql-replication-compatibility
--remove_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -505,7 +505,7 @@ socket="/tmp/mysql8.sock"
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--echo # --add-client-server-group
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --print --edit=last --verify=0 --add-client-server-group --update-paths
--remove_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -522,7 +522,7 @@ port=99
socket="/tmp/mysql8.sock"
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --update --edit=last --add-client-server-group --mariadbd=$MYSQLD --verify
--echo # Changed file
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -538,13 +538,13 @@ socket="/tmp/mysql.sock"
EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--echo # Testing with --copy-mysqld-groups=0
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --update --edit=last --copy-mysqld-groups=0 --mariadbd=$MYSQLD --verify
--echo # Testing with --copy-mysqld-groups=1
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--error 2
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --copy-mysqld-groups=1
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --update --edit=last --copy-mysqld-groups=1 --mariadbd=$MYSQLD --verify
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--remove_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
@@ -583,21 +583,21 @@ EOF
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--echo # Output from --print --edit=last --update-paths
--replace_regex /### File[^\n]*/### File [name hidden]/
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --mariadbd="not_found_here" --print --edit=last --update-paths
--echo #
--echo # Test that second update of file with 'last' will no do anything
--echo #
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --update --edit=last --update-paths --verify=0
# Check file
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --mariadbd=$MYSQLD --copy-mysqld-groups=0
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --update-paths --mariadbd=$MYSQLD --copy-mysqld-groups=0
--echo "Next command should not change anything"
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $MYSQLTEST_REAL_VARDIR MYSQLTEST_VARDIR
--exec $MARIADB_MIGRATE_CONFIG_FILE --defaults-file=$MYSQLTEST_VARDIR/tmp/tmp1.cnf --update --edit=last --update-paths --backup --verify=0
--cat_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf
--remove_file $MYSQLTEST_VARDIR/tmp/tmp1.cnf

View File

@@ -733,6 +733,10 @@ These lines should be repeated,
if things work as expected
These lines should be repeated,
if things work as expected
===
These lines should be repeated,
if things work as expected
===
Some data
for cat_file command
of mysqltest

View File

@@ -2274,6 +2274,9 @@ EOF
}
cat_file $MYSQLTEST_VARDIR/tmp/app_while.tmp;
echo ===;
cat_file $MYSQLTEST_VARDIR/tmp/app_while.tmp 2; # feature sneaked inside MDEV-32745
echo ===;
remove_file $MYSQLTEST_VARDIR/tmp/app_while.tmp;
# ----------------------------------------------------------------------------

View File

@@ -1544,7 +1544,7 @@ sub command_line_setup {
$opt_vardir= $default_vardir;
}
# We make the path asbolute, as the server will do a chdir() before usage
# We make the path absolute, as the server will do a chdir() before usage
unless ( $opt_vardir =~ m,^/, or
(IS_WINDOWS and $opt_vardir =~ m,^[a-z]:[/\\],i) )
{

View File

@@ -52,14 +52,14 @@
*/
static char *file_marker= (char*)"----file-marker----";
my_bool my_defaults_mark_files= FALSE;
my_bool my_defaults_use_original_paths= FALSE;
my_bool is_file_marker(const char* arg)
{
return arg == file_marker;
}
my_bool my_no_defaults=FALSE, my_print_defaults= FALSE;
static my_bool my_print_defaults= FALSE;
my_bool my_no_defaults=FALSE;
const char *my_defaults_file=0;
const char *my_defaults_group_suffix=0;
const char *my_defaults_extra_file=0;
@@ -162,6 +162,7 @@ static int my_search_option_files(const char *conf_file,
const char **dirs;
int error= 0;
DBUG_ENTER("my_search_option_files");
DBUG_ASSERT(default_directories);
if (my_defaults_group_suffix)
{
@@ -200,8 +201,8 @@ static int my_search_option_files(const char *conf_file,
if (my_defaults_file)
{
if ((error= search_default_file_with_ext(ctx, "", "",
my_defaults_file, 0)) < 0)
error= search_default_file_with_ext(ctx, "", "", my_defaults_file, 0);
if (error < 0)
goto err;
if (error > 0)
{
@@ -210,7 +211,7 @@ static int my_search_option_files(const char *conf_file,
goto err;
}
}
else if (dirname_length(conf_file) || !default_directories)
else if (dirname_length(conf_file))
{
if ((error= search_default_file(ctx, NullS, conf_file)) < 0)
goto err;
@@ -327,15 +328,13 @@ int get_defaults_options(char **argv)
if (! my_defaults_group_suffix)
my_defaults_group_suffix= getenv("MYSQL_GROUP_SUFFIX");
if (my_defaults_extra_file && my_defaults_extra_file != extra_file_buffer &&
! my_defaults_use_original_paths)
if (my_defaults_extra_file && my_defaults_extra_file != extra_file_buffer)
{
my_realpath(extra_file_buffer, my_defaults_extra_file, MYF(0));
my_defaults_extra_file= extra_file_buffer;
}
if (my_defaults_file && my_defaults_file != file_buffer &&
! my_defaults_use_original_paths)
if (my_defaults_file && my_defaults_file != file_buffer)
{
my_realpath(file_buffer, my_defaults_file, MYF(0));
my_defaults_file= file_buffer;
@@ -382,8 +381,8 @@ int load_defaults(const char *conf_file, const char **groups,
Points to an null terminated array of pointers
argc Pointer to argc of original program
argv Pointer to argv of original program
default_directories Pointer to a location where a pointer to the list
of default directories will be stored
default_directories Pointer to a location where a pointer to the
list of default directories will be stored
IMPLEMENTATION
@@ -405,8 +404,8 @@ int load_defaults(const char *conf_file, const char **groups,
- 1 is returned if the given conf_file didn't exist. In this case, the
value pointed to by default_directories is undefined.
- 4 is returned --print-defaults was used. The caller should just do exit(0)
in this ase
- 4 is returned --print-defaults was used. The caller should just do
exit(0) in this case
*/
@@ -438,7 +437,7 @@ int my_load_defaults(const char *conf_file, const char **groups, int *argc,
if (!my_no_defaults)
{
TYPELIB group; // XXX
TYPELIB group;
struct handle_option_ctx ctx;
group.count=0;

View File

@@ -202,7 +202,6 @@ error:
/*
Remove directory recursively.
Symlinks are deleted, not followed
*/
int my_rmtree(const char *dir, myf MyFlags)
{
@@ -211,9 +210,7 @@ int my_rmtree(const char *dir, myf MyFlags)
int err = 0;
size_t i;
MY_DIR *dir_info = my_dir(dir,
MYF(MY_DONT_SORT | MY_WANT_STAT |
(MyFlags & (MY_NOSYMLINKS | MY_WME))));
MY_DIR *dir_info = my_dir(dir, MYF(MY_DONT_SORT | MY_WANT_STAT));
if (!dir_info)
return 1;
@@ -228,7 +225,7 @@ int my_rmtree(const char *dir, myf MyFlags)
if (!MY_S_ISDIR(file->mystat->st_mode))
{
err = my_delete(path, (MyFlags & ~MY_NOSYMLINKS));
err = my_delete(path, MyFlags);
#ifdef _WIN32
/*
On Windows, check and possible reset readonly attribute.

View File

@@ -352,18 +352,8 @@ MY_STAT *my_stat(const char *path, MY_STAT *stat_area, myf my_flags)
my_flags)))
goto err;
#ifndef _WIN32
{
int error;
if (my_flags & MY_NOSYMLINKS)
error= lstat((char *) path, (struct stat *) stat_area);
else
error= stat((char *) path, (struct stat *) stat_area);
if (!error)
{
DBUG_RETURN(stat_area);
}
}
if (!stat((char *) path, (struct stat *) stat_area))
DBUG_RETURN(stat_area);
#else
if (!my_win_stat(path, stat_area))
DBUG_RETURN(stat_area);

View File

@@ -7936,14 +7936,15 @@ static void print_help()
static void usage(void)
{
DBUG_ENTER("usage");
myf utf8_flag= global_system_variables.old_behavior &
OLD_MODE_UTF8_IS_UTF8MB3 ? MY_UTF8_IS_UTF8MB3 : 0;
if (!(default_charset_info= get_charset_by_csname(default_character_set_name,
MY_CS_PRIMARY,
MYF(utf8_flag | MY_WME))))
exit(1);
if (!default_collation_name)
default_collation_name= (char*) default_charset_info->coll_name.str;
{
myf utf8_flag= global_system_variables.old_behavior &
OLD_MODE_UTF8_IS_UTF8MB3 ? MY_UTF8_IS_UTF8MB3 : 0;
default_charset_info= get_charset_by_csname(default_character_set_name,
MY_CS_PRIMARY, MYF(utf8_flag | MY_WME));
if (default_charset_info)
default_collation_name= (char*) default_charset_info->coll_name.str;
}
print_version();
puts(ORACLE_WELCOME_COPYRIGHT_NOTICE("2000"));
puts("Starts the MariaDB database server.\n");

View File

@@ -1118,8 +1118,7 @@ static st_plugin_int *plugin_insert_or_reuse(struct st_plugin_int *plugin)
NOTE
Requires that a write-lock is held on LOCK_system_variables_hash
*/
static enum install_status
plugin_add(MEM_ROOT *tmp_root, bool if_not_exists,
static enum install_status plugin_add(MEM_ROOT *tmp_root, bool if_not_exists,
const LEX_CSTRING *name, LEX_CSTRING *dl, myf MyFlags)
{
struct st_plugin_int tmp, *maybe_dupe;
@@ -1808,7 +1807,8 @@ int plugin_init(int *argc, char **argv, int flags)
}
/* load and init plugins from the plugin table (unless done already) */
if (flags & PLUGIN_INIT_SKIP_PLUGIN_TABLE)
if (flags & PLUGIN_INIT_SKIP_PLUGIN_TABLE ||
plugin_table_engine_name.length == 0)
break;
mysql_mutex_unlock(&LOCK_plugin);
@@ -4072,13 +4072,13 @@ static int construct_options(MEM_ROOT *mem_root, struct st_plugin_int *tmp,
if (opt->flags & PLUGIN_VAR_NOCMDOPT)
{
char *val= global_system_variables.dynamic_variables_ptr + offset;
char **val= (char**)(global_system_variables.dynamic_variables_ptr + offset);
if (((opt->flags & PLUGIN_VAR_TYPEMASK) == PLUGIN_VAR_STR) &&
(opt->flags & PLUGIN_VAR_MEMALLOC))
{
char *def_val= *(char**)var_def_ptr(opt);
my_free(*(char**)val);
*(char**)val= def_val ? my_strdup(PSI_INSTRUMENT_ME, def_val, MYF(0)) : NULL;
my_free(*val);
*val= def_val ? my_strdup(PSI_INSTRUMENT_ME, def_val, MYF(0)) : NULL;
}
else
memcpy(val, var_def_ptr(opt), var_storage_size(opt->flags));