Skip to content

[BUG] Resuming initial replication fails #172

@LGMAM

Description

@LGMAM

Bug Description

Stopping and resuming during initial replication fails with an error stating the the _tmp database does not exists

Steps to Reproduce

  1. Start a replica. Database is called 'sirocco'
  2. Initial replication starts
  3. Stop
  4. Restart process. Log correctly says resuming initial replication from PK values
  5. Fails with error indicating that 'sirocco_tmp' does not exists

Expected Behavior

I would expect initial replication to continue replicating data

Actual Behavior

[dbrepl sirocco 2025-07-17 19:45:00,207     INFO] running initial replication
[dbrepl sirocco 2025-07-17 19:45:00,211     INFO] running initial replication for table mt
[dbrepl sirocco 2025-07-17 19:45:00,212     INFO] continue from primary key [143574706, '6017e0b6-90d9-4024-9b07-20093b85622a']
[dbrepl sirocco 2025-07-17 19:45:21,130    ERROR] unhandled exception
Traceback (most recent call last):
  File "/opt/sirocco/mysql-clickhouse-replicator/venv/lib/python3.10/site-packages/mysql_ch_replicator/db_replicator.py", line 199, in run
    self.initial_replicator.perform_initial_replication()
  File "/opt/sirocco/mysql-clickhouse-replicator/venv/lib/python3.10/site-packages/mysql_ch_replicator/db_replicator_initial.py", line 103, in perform_initial_replication
    self.perform_initial_replication_table(table)
  File "/opt/sirocco/mysql-clickhouse-replicator/venv/lib/python3.10/site-packages/mysql_ch_replicator/db_replicator_initial.py", line 198, in perform_initial_replication_table
    self.replicator.clickhouse_api.insert(table_name, records, table_structure=clickhouse_table_structure)
  File "/opt/sirocco/mysql-clickhouse-replicator/venv/lib/python3.10/site-packages/mysql_ch_replicator/clickhouse_api.py", line 230, in insert
    self.client.insert(table=full_table_name, data=records_to_insert)
  File "/opt/sirocco/mysql-clickhouse-replicator/venv/lib/python3.10/site-packages/clickhouse_connect/driver/client.py", line 664, in insert
    context = self.create_insert_context(table,
  File "/opt/sirocco/mysql-clickhouse-replicator/venv/lib/python3.10/site-packages/clickhouse_connect/driver/client.py", line 773, in create_insert_context
    describe_result = self.query(f'DESCRIBE TABLE {full_table}')
  File "/opt/sirocco/mysql-clickhouse-replicator/venv/lib/python3.10/site-packages/clickhouse_connect/driver/client.py", line 237, in query
    return self._query_with_context(query_context)
  File "/opt/sirocco/mysql-clickhouse-replicator/venv/lib/python3.10/site-packages/clickhouse_connect/driver/httpclient.py", line 243, in _query_with_context
    response = self._raw_request(body,
  File "/opt/sirocco/mysql-clickhouse-replicator/venv/lib/python3.10/site-packages/clickhouse_connect/driver/httpclient.py", line 481, in _raw_request
    self._error_handler(response)
  File "/opt/sirocco/mysql-clickhouse-replicator/venv/lib/python3.10/site-packages/clickhouse_connect/driver/httpclient.py", line 402, in _error_handler
    raise OperationalError(err_str) if retried else DatabaseError(err_str) from None
clickhouse_connect.driver.exceptions.DatabaseError: HTTPDriver for http://localhost:8123 received ClickHouse error code 81
 Code: 81. DB::Exception: Database sirocco_tmp does not exist. (UNKNOWN_DATABASE) (version 25.6.4.12 (official build))

Environment

  • mysql_ch_replicator version: 0.0.92
  • Operating System: Ubuntu 22.04.05 LTS
  • Python version: 3.10.12

Replicator Configuration

mysql:
  host: '192.168.X.X'
  port: 3306
  user: 'crXXXXXX'
  password: 'XXXXXXX'

clickhouse:
  host: 'localhost'
  port: 8123
  user: 'default'
  password: 'XXXXXXX'

log_level: info
binlog_replicator:
  data_dir: '/var/lib/data/mysql-clickhouse-replicator/binlog'
  records_per_file: 100000

databases: ['sirocco','sirocco_shorturl']
ignore_deletes: true

Additional Information

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions