[mirror-net] IntegrityError in query
While running hive sync
on a mirror net, it crashed with:
158301 INFO - hive.indexer.sync - [LIVE SYNC] <===== Processed block 67212589 at 2022-08-29T17:05:21 -- 162 txs -- 188ms
158301 INFO - hive.indexer.sync - [LIVE SYNC] Current system time: 17:05:42
158301 INFO - hive.indexer.hive_rpc.massive_blocks_data_provider_hive_rpc - vops_queue.qsize: 1 blocks_queue.qsize: 1
158301 INFO - hive.steem.block.schedule - block 67212592 not available. head:67212592 drift:1.100000s
158301 INFO - hive.indexer.hive_rpc.massive_blocks_data_provider_hive_rpc - vops_queue.qsize: 1 blocks_queue.qsize: 1
158301 INFO - hive.steem.block.schedule - block 67212592 not available. head:67212592 drift:1.200000s
158302 INFO - hive.indexer.hive_rpc.massive_blocks_data_provider_hive_rpc - vops_queue.qsize: 1 blocks_queue.qsize: 1
158302 INFO - hive.steem.block.schedule - block 67212592 not available. head:67212592 drift:1.300000s
158302 INFO - hive.indexer.hive_rpc.massive_blocks_data_provider_hive_rpc - vops_queue.qsize: 1 blocks_queue.qsize: 1
158302 INFO - hive.steem.block.schedule - block 67212592 not available. head:67212592 drift:1.400000s
158303 INFO - hive.indexer.hive_rpc.massive_blocks_data_provider_hive_rpc - vops_queue.qsize: 1 blocks_queue.qsize: 1
158303 INFO - hive.steem.block.schedule - block 67212592 not available. head:67212592 drift:1.500000s
158303 INFO - hive.indexer.hive_rpc.massive_blocks_data_provider_hive_rpc - vops_queue.qsize: 1 blocks_queue.qsize: 1
158303 INFO - hive.steem.block.schedule - block 67212592 not available. head:67212592 drift:1.600000s
158304 INFO - hive.indexer.hive_rpc.massive_blocks_data_provider_hive_rpc - vops_queue.qsize: 1 blocks_queue.qsize: 1
158304 INFO - hive.steem.block.schedule - block 67212592 not available. head:67212592 drift:1.700000s
158304 INFO - hive.indexer.hive_rpc.massive_blocks_data_provider_hive_rpc - vops_queue.qsize: 1 blocks_queue.qsize: 1
158304 INFO - hive.steem.block.schedule - block 67212592 not available. head:67212592 drift:1.800000s
158305 INFO - hive.indexer.hive_rpc.massive_blocks_data_provider_hive_rpc - vops_queue.qsize: 1 blocks_queue.qsize: 1
158305 INFO - hive.steem.block.schedule - block 67212592 not available. head:67212592 drift:1.900000s
158305 INFO - hive.indexer.hive_rpc.massive_blocks_data_provider_hive_rpc - vops_queue.qsize: 1 blocks_queue.qsize: 1
158305 INFO - hive.steem.block.schedule - block 67212592 not available. head:67212592 drift:2.000000s
158306 INFO - hive.indexer.hive_rpc.massive_blocks_data_provider_hive_rpc - vops_queue.qsize: 1 blocks_queue.qsize: 1
158306 INFO - hive.steem.block.schedule - block 67212592 not available. head:67212592 drift:2.100000s
158306 INFO - hive.indexer.hive_rpc.massive_blocks_data_provider_hive_rpc - vops_queue.qsize: 1 blocks_queue.qsize: 1
158306 INFO - hive.steem.block.schedule - block 67212592 not available. head:67212592 drift:2.200000s
158307 ERROR - hive.indexer.mock_block_provider - Incoming block has older timestamp than previous one: old 2022-08-29 17:05:42, new 2022-08-29 17:05:24
158307 INFO - hive.indexer.hive_rpc.massive_blocks_data_provider_hive_rpc - vops_queue.qsize: 1 blocks_queue.qsize: 1
158307 WARNING - hive.steem.block.schedule - 28793 missed @ block 67212592 (prev: 2022-08-29 17:05:42, next: 2022-08-29 17:05:24)
158307 ERROR - hive.indexer.sync - microfork: MicroForkException('queue:2 <hive.steem.block.one_block_provider.LiveSyncBlockFromRpc object at 0x7f958fc73c70>--> 0401952f8453243c7644b511fc486309981200a9->040195307088b143c59f00c5b0432fecd79e59f2')
158307 INFO - hive.indexer.sync - [LIVE SYNC] Entering listen with HM head: 67212589
158307 ERROR - hive.indexer.mock_block_provider - Incoming block has lower number than previous one: old 67212592, new 67212589
158307 ERROR - hive.indexer.mock_block_provider - Incoming block has older timestamp than previous one: old 2022-08-29 17:05:24, new 2022-08-29 17:05:09
158307 INFO - hive.indexer.hive_rpc.massive_blocks_data_provider_hive_rpc - vops_queue.qsize: 1 blocks_queue.qsize: 1
158307 INFO - hive.indexer.hive_rpc.massive_blocks_data_provider_hive_rpc - vops_queue.qsize: 1 blocks_queue.qsize: 1
158307 INFO - hive.indexer.hive_rpc.massive_blocks_data_provider_hive_rpc - vops_queue.qsize: 1 blocks_queue.qsize: 1
158307 INFO - hive.indexer.hive_rpc.massive_blocks_data_provider_hive_rpc - vops_queue.qsize: 1 blocks_queue.qsize: 1
158307 INFO - hive.indexer.sync - [LIVE SYNC] =====> About to process block 67212590 with timestamp 2022-08-29T17:05:12
158307 INFO - hive.indexer.blocks - #############################################################################
158307 WARNING - hive.db.adapter - [SQL-ERR] IntegrityError in query
158307 INSERT INTO
158307 hive_blocks (num, hash, prev, txs, ops, created_at, completed)
158307 VALUES
158307 (67212590, '0401952e98084d87e177e5b44a223d5874e2fe22', '0401952d7d52c194230063731a2c0449d287de20', 0, 0, '2022-08-29T17:05:12', False) ({})
158307 INFO - hive.db.adapter - Closing database connection: 'root db creation'
158307 INFO - hive.db.adapter - Disposing SQL engine
158307 INFO - hive.conf - The database is disconnected...
158307 Traceback (most recent call last):
158307 File "/home/hive/hivemind/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1770, in _execute_context
158307 self.dialect.do_execute(
158307 File "/home/hive/hivemind/.venv/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 717, in do_execute
158307 cursor.execute(statement, parameters)
158307 psycopg2.errors.ForeignKeyViolation: insert or update on table "hive_blocks" violates foreign key constraint "hive_blocks_fk1"
158307 DETAIL: Key (prev)=(0401952d7d52c194230063731a2c0449d287de20) is not present in table "hive_blocks".
158307
158307
158307 The above exception was the direct cause of the following exception:
158307
158307 Traceback (most recent call last):
158307 File "/home/hive/hivemind/.venv/bin/hive", line 8, in <module>
158307 sys.exit(run())
158307 File "/home/hive/hivemind/.venv/lib/python3.10/site-packages/hive/cli.py", line 73, in run
158307 launch_mode(mode, conf)
158307 File "/home/hive/hivemind/.venv/lib/python3.10/site-packages/hive/cli.py", line 87, in launch_mode
158307 sync.run()
158307 File "/home/hive/hivemind/.venv/lib/python3.10/site-packages/hive/indexer/sync.py", line 511, in run
158307 live_sync.run()
158307 File "/home/hive/hivemind/.venv/lib/python3.10/site-packages/hive/indexer/sync.py", line 466, in run
158307 self.listen(trail_blocks, max_block_limit, do_stale_block_check)
158307 File "/home/hive/hivemind/.venv/lib/python3.10/site-packages/hive/indexer/sync.py", line 396, in listen
158307 Blocks.process_multi([block], False)
158307 File "/home/hive/hivemind/.venv/lib/python3.10/site-packages/hive/indexer/blocks.py", line 194, in process_multi
158307 first_block, last_num = cls.process_blocks(blocks)
158307 File "/home/hive/hivemind/.venv/lib/python3.10/site-packages/hive/indexer/blocks.py", line 183, in process_blocks
158307 flush_time = register_time(flush_time, "Blocks", cls._flush_blocks())
158307 File "/home/hive/hivemind/.venv/lib/python3.10/site-packages/hive/indexer/blocks.py", line 446, in _flush_blocks
158307 DB.query_prepared(query)
158307 File "/home/hive/hivemind/.venv/lib/python3.10/site-packages/hive/db/adapter.py", line 162, in query_prepared
158307 self._query(sql, True, **kwargs)
158307 File "/home/hive/hivemind/.venv/lib/python3.10/site-packages/hive/db/adapter.py", line 275, in _query
158307 raise e
158307 File "/home/hive/hivemind/.venv/lib/python3.10/site-packages/hive/db/adapter.py", line 268, in _query
158307 result = self._basic_connection.execution_options(autocommit=False).execute(query, **kwargs)
158307 File "/home/hive/hivemind/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1247, in execute
158307 return self._exec_driver_sql(
158307 File "/home/hive/hivemind/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1546, in _exec_driver_sql
158307 ret = self._execute_context(
158307 File "/home/hive/hivemind/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1813, in _execute_context
158307 self._handle_dbapi_exception(
158307 File "/home/hive/hivemind/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1994, in _handle_dbapi_exception
158307 util.raise_(
158307 File "/home/hive/hivemind/.venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_
158307 raise exception
158307 File "/home/hive/hivemind/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1770, in _execute_context
158307 self.dialect.do_execute(
158307 File "/home/hive/hivemind/.venv/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 717, in do_execute
158307 cursor.execute(statement, parameters)
158307 sqlalchemy.exc.IntegrityError: (psycopg2.errors.ForeignKeyViolation) insert or update on table "hive_blocks" violates foreign key constraint "hive_blocks_fk1"
158307 DETAIL: Key (prev)=(0401952d7d52c194230063731a2c0449d287de20) is not present in table "hive_blocks".
158307
158307 [SQL:
158307 INSERT INTO
158307 hive_blocks (num, hash, prev, txs, ops, created_at, completed)
158307 VALUES
158307 (67212590, '0401952e98084d87e177e5b44a223d5874e2fe22', '0401952d7d52c194230063731a2c0449d287de20', 0, 0, '2022-08-29T17:05:12', False)]
158307 (Background on this error at: http://sqlalche.me/e/14/gkpj)