Improve log messages for stream ids (#11536)

Somehow I'd managed to get my database in a pickle with stream ids. These
changes were useful to debug.
This commit is contained in:
Richard van der Hoff 2021-12-08 14:15:14 +00:00 committed by GitHub
parent 8541809cb9
commit ff7cc17b57
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 4 deletions

1
changelog.d/11536.misc Normal file
View file

@ -0,0 +1 @@
Improvements to log messages around handling stream ids.

View file

@ -56,7 +56,9 @@ class StateDeltasStore(SQLBaseStore):
prev_stream_id = int(prev_stream_id) prev_stream_id = int(prev_stream_id)
# check we're not going backwards # check we're not going backwards
assert prev_stream_id <= max_stream_id assert (
prev_stream_id <= max_stream_id
), f"New stream id {max_stream_id} is smaller than prev stream id {prev_stream_id}"
if not self._curr_state_delta_stream_cache.has_any_entity_changed( if not self._curr_state_delta_stream_cache.has_any_entity_changed(
prev_stream_id prev_stream_id

View file

@ -74,8 +74,6 @@ class IdGenerator:
def _load_current_id( def _load_current_id(
db_conn: LoggingDatabaseConnection, table: str, column: str, step: int = 1 db_conn: LoggingDatabaseConnection, table: str, column: str, step: int = 1
) -> int: ) -> int:
# debug logging for https://github.com/matrix-org/synapse/issues/7968
logger.info("initialising stream generator for %s(%s)", table, column)
cur = db_conn.cursor(txn_name="_load_current_id") cur = db_conn.cursor(txn_name="_load_current_id")
if step == 1: if step == 1:
cur.execute("SELECT MAX(%s) FROM %s" % (column, table)) cur.execute("SELECT MAX(%s) FROM %s" % (column, table))
@ -86,7 +84,9 @@ def _load_current_id(
(val,) = result (val,) = result
cur.close() cur.close()
current_id = int(val) if val else step current_id = int(val) if val else step
return (max if step > 0 else min)(current_id, step) res = (max if step > 0 else min)(current_id, step)
logger.info("Initialising stream generator for %s(%s): %i", table, column, res)
return res
class AbstractStreamIdTracker(metaclass=abc.ABCMeta): class AbstractStreamIdTracker(metaclass=abc.ABCMeta):