--attempt-instant-ddl caused process hangs

Aberta
#1,774 1 comentário 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 10 dias

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
55/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
go, mysql
Domínio
databases

Direção de pesquisa

Start by running the supplied gh-ost command against Aurora MySQL 8.0.42 and trace shutdown after the “syncer is closing” and “kill last connection” log lines. Reproduce the hang and identify why the process remains alive with an open MySQL connection; done means the process exits and the connection closes after a successful instant DDL.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

gh-ost 1.1.11
aws aurora mysql 8.0.42

when --attempt-instant-ddl succeeds, the process sometimes does not exit. The binlog syncer starts closing, and the last connection is killed, but the gh-ost process remains alive and the MySQL connection stays open until it is manually interrupted.

cmd

./gh-ost --user=root --password='xx' --host=xxx.rds.amazonaws.com --port=3306 \
--database=testdb1 --table=xxx \
--alter="ADD COLUMN id4 INT COMMENT 'a'" \
--assume-master-host=xxx:3306 --default-retries=60 \
--cut-over=atomic --ok-to-drop-table --assume-rbr --allow-on-master \
--max-load=Threads_running=300 --critical-load=Threads_running=3000 \
--chunk-size=2000 --max-lag-millis=2000 \
--skip-metadata-lock-check \
--verbose --execute --attempt-instant-ddl --nice-ratio=0

log

2026-09-21 11:57:09 INFO Applier initiated on ip-xxx:3306, version 8.0.42
2026-09-21 11:57:09 INFO Acquired migration lock gh-ost::testdb1.xxx
2026-09-21 11:57:09 INFO Dropping table `testdb1`.`_xxx_ghc`
2026-09-21 11:57:09 INFO Table dropped
2026-09-21 11:57:09 INFO Creating changelog table `testdb1`.`_xxx_ghc`
2026-09-21 11:57:09 INFO Changelog table created
2026-09-21 11:57:09 INFO Creating ghost table `testdb1`.`_xxx_gho`
2026-09-21 11:57:30 INFO Ghost table created
2026-09-21 11:57:30 INFO Altering ghost table `testdb1`.`_xxx_gho`
2026-09-21 11:57:36 INFO Ghost table altered
2026-09-21 11:57:36 INFO Intercepted changelog state GhostTableMigrated
2026-09-21 11:57:36 INFO Attempting to execute alter with ALGORITHM=INSTANT
2026-09-21 11:57:36 INFO INSTANT DDL query is: ALTER /* gh-ost */ TABLE `testdb1`.`xxx` ADD COLUMN id4 INT COMMENT 'a', ALGORITHM=INSTANT
2026-09-21 11:57:36 INFO Setting LOCK timeout as 6 seconds
2026-09-21 11:57:46 INFO Writing changelog state: Migrated
2026/09/21 11:57:46 INFO syncer is closing...
2026/09/21 11:57:46 INFO kill last connection id=3564340



# I used Ctrl+C to cancel it.
^C
Linguagem predominante
Go
Estrelas
13.6k
Forks
1.4k
Merge médio
9d 19h
PRs com merge (30d)
1

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de github/gh-ost

Todas as issues de github/gh-ost

Issues semelhantes

Mais issues de Go

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.