mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Fix for the following bugs:
- BUG#22306: STOP INSTANCE can not be applied for instances in Crashed, Failed and Abandoned; - BUG#23476: DROP INSTANCE does not work - BUG#23215: STOP INSTANCE takes too much time BUG#22306: The problem was that STOP INSTANCE checked that mysqld is up and running. If it was not so, STOP INSTANCE reported an error. Now, STOP INSTANCE reports an error if the instance has been started (mysqld can be down). BUG#23476: The problem was that DROP INSTANCE tried to stop inactive instance. The fix is trivial. BUG#23215: The problem was that locks were not acquired properly, so the instance-monitoring thread could not acquire the mutex, holded by the query-processing thread. The fix is to simplify locking scheme by moving instance-related information to Instance-class out of Guardian-class. This allows to get rid of storing a separate list of Instance-information in Guardian and keeping it synchronized with the original list in Instance_map.
This commit is contained in:
@ -42,7 +42,7 @@ int User::init(const char *line)
|
||||
if (name_end == 0 || name_end[1] != ':')
|
||||
{
|
||||
log_error("Invalid format (unmatched quote) of user line (%s).",
|
||||
(const char *) line);
|
||||
(const char *) line);
|
||||
return 1;
|
||||
}
|
||||
password= name_end + 2;
|
||||
@ -54,7 +54,7 @@ int User::init(const char *line)
|
||||
if (name_end == 0)
|
||||
{
|
||||
log_error("Invalid format (no delimiter) of user line (%s).",
|
||||
(const char *) line);
|
||||
(const char *) line);
|
||||
return 1;
|
||||
}
|
||||
password= name_end + 1;
|
||||
@ -64,10 +64,10 @@ int User::init(const char *line)
|
||||
if (user_length > USERNAME_LENGTH)
|
||||
{
|
||||
log_error("User name is too long (%d). Max length: %d. "
|
||||
"User line: '%s'.",
|
||||
(int) user_length,
|
||||
(int) USERNAME_LENGTH,
|
||||
(const char *) line);
|
||||
"User line: '%s'.",
|
||||
(int) user_length,
|
||||
(int) USERNAME_LENGTH,
|
||||
(const char *) line);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -75,10 +75,10 @@ int User::init(const char *line)
|
||||
if (password_length > SCRAMBLED_PASSWORD_CHAR_LENGTH)
|
||||
{
|
||||
log_error("Password is too long (%d). Max length: %d."
|
||||
"User line: '%s'.",
|
||||
(int) password_length,
|
||||
(int) SCRAMBLED_PASSWORD_CHAR_LENGTH,
|
||||
line);
|
||||
"User line: '%s'.",
|
||||
(int) password_length,
|
||||
(int) SCRAMBLED_PASSWORD_CHAR_LENGTH,
|
||||
(const char *) line);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user