Como consertar o MariaDB quando ele trava durante o desligamento (aguardando page_cleaner)?

Como consertar o MariaDB quando ele trava durante o desligamento (aguardando page_cleaner)?

Estou executando o MariaDB (v 10.3.13) no Arch Linux (Manjaro). Funcionou normalmente nos últimos meses, mas agora existem alguns problemas. Quando tento reiniciar o computador, ele fica preso em

A stop job is running for MariaDB 10.3.13 database server

O tempo que deveria levar aumenta a cada minuto até que finalmente expire (após aproximadamente 20 minutos).

Interromper o MariaDB manualmente também trava quando tento reiniciá-lo/interrompê-lo com

sudo systemctl stop/restart mariadb

Então fazendo sudo systemctl status mariadbshows

/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 

a cada minuto outra linha é InnoDB: Waiting for page_cleaner to finish flushing of buffer pooladicionada.

Existe uma maneira de redefinir o MariaDB? Ou uma forma de obter mais informações sobre qual é o problema?

PS: Instalei algumas atualizações através do Gerenciador de Pacotes recentemente, depois disso percebi o problema pela primeira vez.

Atualizar:

Quando eu desinstalo, reinicio e reinstalo o MariaDB, posso parar/reiniciar o MariaDB sem problemas e o desligamento ocorre sem problemas. Mas depois de inicializar novamente, voltei aos problemas descritos acima.

Responder1

Depois de uma luta de várias horas, finalmente consegui resolver o problema.

O culpado foi uma configuração de tempo ( timedatectl set-local-rtc 1) para inicialização dupla com Win10.

Devido a uma mudança recente de horário, o relógio estava bagunçado. (As entradas do log de status sudo systemctl status mariadbforam 1h no futuro)

Contexto

timedatectl set-local-rtc 0

e a reinicialização resolveu o problema.

Responder2

Além disso, você pode alterar e reduzir de TimeoutSec=300(5 minutos) para um valor de tempo limite menor no arquivo de configuração do serviço inicial do 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

Observação: Isso não é uma soluçãoou solução para este problema. Apenas reduz o valor do tempo limite de encerramento do serviço. Você deve considerar encontrar uma solução correta com base na situação ou bug que causou isso em seu sistema operacional e serviço e reverter o tempo limite para o valor recomendado padrão após a resolução do problema.

informação relacionada