Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

synapse_port_db fails on re-run with complaints about postgres sequences #8753

Closed
richvdh opened this issue Nov 12, 2020 · 1 comment
Closed

Comments

@richvdh
Copy link
Member

richvdh commented Nov 12, 2020

if an initial run of synapse_port_db fails for any reason during data import, a subsequent attempt to re-run it fails with:

2020-11-12 18:09:46,970 - synapse.storage.util.sequence - 132 - WARNING - Postgres sequence events_stream_seq is behind table events: 1 < 127
2020-11-12 18:09:46,973 - synapse_port_db - 643 - ERROR - 
Traceback (most recent call last):
  File "/home/rav/work/synapse/scripts/synapse_port_db", line 550, in run
    self.hs_config.get_single_database()
  File "/home/rav/work/synapse/scripts/synapse_port_db", line 499, in build_db_store
    store = Store(DatabasePool(hs, db_config, engine), db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/client_ips.py", line 34, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/deviceinbox.py", line 286, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/devices.py", line 879, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/events_bg_updates.py", line 32, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/media_repository.py", line 27, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/registration.py", line 932, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/registration.py", line 74, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/cache.py", line 43, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/room.py", line 961, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/roommember.py", line 820, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/search.py", line 92, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/state/bg_updates.py", line 184, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/state.py", line 323, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/roommember.py", line 55, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/events_worker.py", line 103, in __init__
    writers=hs.config.worker.writers.events,
  File "/home/rav/work/synapse/synapse/storage/util/id_generators.py", line 264, in __init__
    db_conn, table=table, id_column=id_column, positive=positive
  File "/home/rav/work/synapse/synapse/storage/util/sequence.py", line 136, in check_consistency
    % {"seq": self._sequence_name, "table": table, "max_id_sql": table_sql}
synapse.storage.engines._base.IncorrectDatabaseSetup: 
Postgres sequence 'events_stream_seq' is inconsistent with associated
table 'events'. This can happen if Synapse has been downgraded and
then upgraded again, or due to a bad migration.

To fix this error, shut down Synapse (including any and all workers)
and run the following SQL:

    SELECT setval('events_stream_seq', (
        SELECT GREATEST(MAX(stream_ordering), 0) FROM events
    ));

See docs/postgres.md for more information.

Traceback (most recent call last):
  File "/home/rav/work/synapse/scripts/synapse_port_db", line 550, in run
    self.hs_config.get_single_database()
  File "/home/rav/work/synapse/scripts/synapse_port_db", line 499, in build_db_store
    store = Store(DatabasePool(hs, db_config, engine), db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/client_ips.py", line 34, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/deviceinbox.py", line 286, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/devices.py", line 879, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/events_bg_updates.py", line 32, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/media_repository.py", line 27, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/registration.py", line 932, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/registration.py", line 74, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/cache.py", line 43, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/room.py", line 961, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/roommember.py", line 820, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/search.py", line 92, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/state/bg_updates.py", line 184, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/state.py", line 323, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/roommember.py", line 55, in __init__
    super().__init__(database, db_conn, hs)
  File "/home/rav/work/synapse/synapse/storage/databases/main/events_worker.py", line 103, in __init__
    writers=hs.config.worker.writers.events,
  File "/home/rav/work/synapse/synapse/storage/util/id_generators.py", line 264, in __init__
    db_conn, table=table, id_column=id_column, positive=positive
  File "/home/rav/work/synapse/synapse/storage/util/sequence.py", line 136, in check_consistency
    % {"seq": self._sequence_name, "table": table, "max_id_sql": table_sql}
synapse.storage.engines._base.IncorrectDatabaseSetup: 
Postgres sequence 'events_stream_seq' is inconsistent with associated
table 'events'. This can happen if Synapse has been downgraded and
then upgraded again, or due to a bad migration.

To fix this error, shut down Synapse (including any and all workers)
and run the following SQL:

    SELECT setval('events_stream_seq', (
        SELECT GREATEST(MAX(stream_ordering), 0) FROM events
    ));

See docs/postgres.md for more information.


Postgres sequence 'events_stream_seq' is inconsistent with associated
table 'events'. This can happen if Synapse has been downgraded and
then upgraded again, or due to a bad migration.

To fix this error, shut down Synapse (including any and all workers)
and run the following SQL:

    SELECT setval('events_stream_seq', (
        SELECT GREATEST(MAX(stream_ordering), 0) FROM events
    ));

See docs/postgres.md for more information.

(yes, it prints the stacktrace twice and the error message three times.)

It seems like synapse_port_db shouldn't be running the checks on the sequence generators?

@richvdh
Copy link
Member Author

richvdh commented Nov 12, 2020

oh I think this is a dup of #8619

@richvdh richvdh closed this as completed Nov 12, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant