diff options
| author | Eric Eastwood <erice@element.io> | 2022-08-24 12:53:46 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-08-24 12:53:46 -0500 |
| commit | b93bd95e8ab64d27ae26841020f62ee61272a5f2 (patch) | |
| tree | cf3947db99848189d6dd23c9b9c261255619ca11 /scripts/federation_client.py | |
| parent | Use dedicated `get_local_users_in_room` to find local users when calculating ... (diff) | |
| download | synapse-b93bd95e8ab64d27ae26841020f62ee61272a5f2.tar.xz | |
When loading current ids, sort by `stream_id` to avoid incorrect overwrite and avoid errors caused by sorting alphabetical instance name which can be `null` (#13585)
When loading current ids, sort by stream ID so that we don't want to overwrite the `current_position` of an instance to a lower stream ID than we're actually at ([discussion](https://github.com/matrix-org/synapse/pull/13585#discussion_r951795379)). Previously, it sorted alphabetically by instance name which can be `null` and throw errors but more importantly, accomplishes nothing.
Fixes the following startup error which is why I started looking into this area:
```
$ poetry run synapse_homeserver --config-path homeserver.yaml
****************************************************************
Error during initialisation:
'<' not supported between instances of 'NoneType' and 'str'
There may be more information in the logs.
****************************************************************
```
Somehow my database ended up looking like the following, notice the `instance_name` is `null` in the db, and we can't sort `NoneType` things. Another question is why do we see the `instance_name` as `null` sometimes instead of `master` in monolith mode?
```
$ psql synapse
synapse=# SELECT * FROM stream_positions;
stream_name | instance_name | stream_id
-----------------+---------------+-----------
account_data | master | 1242
events | master | 1787
to_device | master | 58
presence_stream | master | 485638
receipts | master | 341
backfill | master | -139106
(6 rows)
synapse=# SELECT instance_name, stream_id FROM receipts_linearized;
instance_name | stream_id
---------------+-----------
| 211
| 3
| 4
| 212
| 213
| 224
| 228
| 164
| 313
| 253
| 38
| 321
| 324
| 189
| 192
| 193
| 194
| 195
| 197
| 198
| 275
| 79
| 339
| 340
| 82
| 341
| 84
| 85
| 91
| 119
```Diffstat (limited to 'scripts/federation_client.py')
0 files changed, 0 insertions, 0 deletions
