¿Cómo arreglar MariaDB cuando se atasca durante el apagado (esperando page_cleaner)?

¿Cómo arreglar MariaDB cuando se atasca durante el apagado (esperando page_cleaner)?

Estoy ejecutando MariaDB (v 10.3.13) en Arch Linux (Manjaro). Funcionó normalmente durante los últimos meses pero ahora hay algunos problemas. Cuando intento reiniciar la computadora, se queda atascada en

A stop job is running for MariaDB 10.3.13 database server

El tiempo que debería tardar aumenta cada minuto hasta que finalmente se agota (después de aproximadamente 20 minutos).

Detener MariaDB manualmente también se bloquea cuando intento reiniciarlo/detenerlo con

sudo systemctl stop/restart mariadb

Luego ejecutando sudo systemctl status mariadbespectáculos

/usr/bin/mysqld (initiated by: unknown): Normal shutdown
Event Scheduler: Purging the queue. 0 events
InnoDB: FTS optimize thread exiting.
InnoDB: Starting shutdown...
InnoDB: Dumping buffer pool(s) to /var/lib/mysql/ib_buffer_pool
InnoDB: Buffer pool(s) dump completed at 190402 20:31:01
InnoDB: Waiting for page_cleaner to finish flushing of buffer pool 

cada minuto InnoDB: Waiting for page_cleaner to finish flushing of buffer poolse agrega otra línea.

¿Hay alguna forma de restablecer MariaDB? ¿O una forma de obtener más información sobre cuál es el problema?

PD: Últimamente instalé algunas actualizaciones a través del Administrador de paquetes, después de lo cual noté el problema por primera vez.

Actualizar:

Cuando desinstalo, reinicio y reinstalo MariaDB, puedo detener/reiniciar MariaDB sin problemas y el apagado se realiza sin problemas. Pero después de reiniciar, vuelvo a los problemas descritos anteriormente.

Respuesta1

Después de varias horas de lucha, finalmente pude resolver el problema.

El culpable fue una configuración de tiempo ( timedatectl set-local-rtc 1) para el arranque dual con Win10.

Debido a un cambio de hora reciente, el reloj estaba estropeado. (Las entradas del registro de estado sudo systemctl status mariadbfueron 1 hora en el futuro)

Configuración

timedatectl set-local-rtc 0

y reiniciarlo lo resolvió.

Respuesta2

También puede cambiar y reducir de TimeoutSec=300(5 minutos) a un valor de tiempo de espera más bajo desde el archivo de configuración del servicio de inicio de MySQL:

vi /usr/lib/systemd/system/mariadb.service

### after editing timout value in above config file you can apply it by using:
systemctl daemon-reload

Nota: Esto no es una solucióno solución para este problema. Simplemente reduce el valor del tiempo de espera de terminación del servicio. Debería considerar encontrar una solución correcta según la situación o el error que causó que esto sucediera en su sistema operativo y servicio y revertir el tiempo de espera a su valor predeterminado recomendado una vez que se resuelva el problema.

información relacionada