mirror of
https://git.freebsd.org/ports.git
synced 2025-05-04 07:27:38 -04:00
databases/mariadb106-server: Fix hang on restart
PR: 279362 Obtained from: https://jira.mariadb.org/browse/MDEV-34254
This commit is contained in:
parent
4adad57192
commit
9f97021574
2 changed files with 53 additions and 1 deletions
|
@ -1,6 +1,6 @@
|
||||||
PORTNAME?= mariadb
|
PORTNAME?= mariadb
|
||||||
PORTVERSION= 10.6.18
|
PORTVERSION= 10.6.18
|
||||||
PORTREVISION?= 0
|
PORTREVISION?= 1
|
||||||
CATEGORIES= databases
|
CATEGORIES= databases
|
||||||
MASTER_SITES= https://mirror.nodesdirect.com/${SITESDIR}/ \
|
MASTER_SITES= https://mirror.nodesdirect.com/${SITESDIR}/ \
|
||||||
https://mirror.one.com/${SITESDIR}/ \
|
https://mirror.one.com/${SITESDIR}/ \
|
||||||
|
|
52
databases/mariadb106-server/files/patch-MDEV-34254
Normal file
52
databases/mariadb106-server/files/patch-MDEV-34254
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
From 90d376e01710fbc6f7e9eeef3f8c4653d5d4d82e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Dave Gosselin <dave.gosselin@mariadb.com>
|
||||||
|
Date: Mon, 13 May 2024 10:36:11 -0400
|
||||||
|
Subject: [PATCH] MDEV-34129 mariadb-install-db appears to hang on macOS
|
||||||
|
|
||||||
|
Immediately close down the signal handler loop when we decide to
|
||||||
|
break connections as it's the start of process termination
|
||||||
|
anyway, and there's no need to wait once we've invoked break_connections.
|
||||||
|
---
|
||||||
|
sql/mysqld.cc | 15 +++++++++++----
|
||||||
|
1 file changed, 11 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
|
||||||
|
index cfc16209251c2..a9960400c17cd 100644
|
||||||
|
--- sql/mysqld.cc.orig
|
||||||
|
+++ sql/mysqld.cc
|
||||||
|
@@ -2953,6 +2953,15 @@ static void start_signal_handler(void)
|
||||||
|
DBUG_VOID_RETURN;
|
||||||
|
}
|
||||||
|
|
||||||
|
+/** Called only from signal_hand function. */
|
||||||
|
+static void* exit_signal_handler()
|
||||||
|
+{
|
||||||
|
+ my_thread_end();
|
||||||
|
+ signal_thread_in_use= 0;
|
||||||
|
+ pthread_exit(0); // Safety
|
||||||
|
+ return nullptr; // Avoid compiler warnings
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
|
||||||
|
/** This threads handles all signals and alarms. */
|
||||||
|
/* ARGSUSED */
|
||||||
|
@@ -3013,10 +3022,7 @@ pthread_handler_t signal_hand(void *arg __attribute__((unused)))
|
||||||
|
if (abort_loop)
|
||||||
|
{
|
||||||
|
DBUG_PRINT("quit",("signal_handler: calling my_thread_end()"));
|
||||||
|
- my_thread_end();
|
||||||
|
- signal_thread_in_use= 0;
|
||||||
|
- pthread_exit(0); // Safety
|
||||||
|
- return 0; // Avoid compiler warnings
|
||||||
|
+ return exit_signal_handler();
|
||||||
|
}
|
||||||
|
switch (sig) {
|
||||||
|
case SIGTERM:
|
||||||
|
@@ -3035,6 +3041,7 @@ pthread_handler_t signal_hand(void *arg __attribute__((unused)))
|
||||||
|
PSI_CALL_delete_current_thread();
|
||||||
|
my_sigset(sig, SIG_IGN);
|
||||||
|
break_connect_loop(); // MIT THREAD has a alarm thread
|
||||||
|
+ return exit_signal_handler();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SIGHUP:
|
Loading…
Add table
Reference in a new issue