La mise à jour vers la dernière version de synapse requiert une migration de base de données.
Synapse will additionally now refuse to start when using PostgreSQL with a non-C values for COLLATE and CTYPE, unless the config flag allow_unsafe_locale, found in the database section of the configuration file, is set to true. See the upgrade notes for details.
La base des bridges a été migrée avec succès.
MAJ 1.56.0 tentée pour les bridges aujourd'hui avec @kaiyou et @mickge mais on se tape l'erreur jointe dans le txt.erreur_bridges_1.56.0.txt
Je recolle le message en texte pour être plus lisible
synapse_1 | Starting synapse with args -m synapse.app.homeserver --config-path /data/homeserver.yamlsynapse_1 | Traceback (most recent call last):synapse_1 | File "/usr/local/lib/python3.9/runpy.py", line 197, in _run_module_as_mainsynapse_1 | return _run_code(code, main_globals, None,synapse_1 | File "/usr/local/lib/python3.9/runpy.py", line 87, in _run_codesynapse_1 | exec(code, run_globals)synapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/app/homeserver.py", line 39, in <module>synapse_1 | from synapse.app import _basesynapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/app/_base.py", line 59, in <module>synapse_1 | from synapse.events.spamcheck import load_legacy_spam_checkerssynapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/events/spamcheck.py", line 30, in <module>synapse_1 | from synapse.rest.media.v1._base import FileInfosynapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/rest/__init__.py", line 18, in <module>synapse_1 | from synapse.rest import adminsynapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/rest/admin/__init__.py", line 29, in <module>synapse_1 | from synapse.rest.admin._base import admin_patterns, assert_requester_is_adminsynapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/rest/admin/_base.py", line 19, in <module>synapse_1 | from synapse.api.auth import Authsynapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/api/auth.py", line 36, in <module>synapse_1 | from synapse.storage.databases.main.registration import TokenLookupResultsynapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/storage/__init__.py", line 31, in <module>synapse_1 | from synapse.storage.databases import Databasessynapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/storage/databases/__init__.py", line 20, in <module>synapse_1 | from synapse.storage.databases.main.events import PersistEventsStoresynapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/storage/databases/main/__init__.py", line 62, in <module>synapse_1 | from .relations import RelationsStoresynapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/storage/databases/main/relations.py", line 52, in <module>synapse_1 | class RelationsWorkerStore(SQLBaseStore):synapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/storage/databases/main/relations.py", line 740, in RelationsWorkerStoresynapse_1 | ) -> Optional[BundledAggregations]:synapse_1 | NameError: name 'BundledAggregations' is not defined
Trois commits incongrus et hors propos s'étaient glissés en cherry pick dans notre arbre tedomum-prod, je les ai nettoyés et effectivement l'erreur est corrigée. Cela-dit la suivante :
synapse_1 | Traceback (most recent call last):synapse_1 | File "/usr/local/lib/python3.8/runpy.py", line 194, in _run_module_as_main synapse_1 | return _run_code(code, main_globals, None, synapse_1 | File "/usr/local/lib/python3.8/runpy.py", line 87, in _run_code synapse_1 | exec(code, run_globals)synapse_1 | File "/usr/local/lib/python3.8/site-packages/synapse/app/homeserver.py", line 38, in <module> synapse_1 | from synapse.app import _basesynapse_1 | File "/usr/local/lib/python3.8/site-packages/synapse/app/_base.py", line 58, in <module> synapse_1 | from synapse.events.spamcheck import load_legacy_spam_checkers synapse_1 | File "/usr/local/lib/python3.8/site-packages/synapse/events/spamcheck.py", line 31, in <module> synapse_1 | from synapse.rest.media.v1._base import FileInfo synapse_1 | File "/usr/local/lib/python3.8/site-packages/synapse/rest/__init__.py", line 19, in <module> synapse_1 | from synapse.rest.client import (synapse_1 | File "/usr/local/lib/python3.8/site-packages/synapse/rest/client/account.py", line 42, in <module>synapse_1 | from synapse.push.mailer import Mailersynapse_1 | File "/usr/local/lib/python3.8/site-packages/synapse/push/mailer.py", line 870, in <module> synapse_1 | def safe_markup(raw_html: str) -> jinja2.Markup: synapse_1 | AttributeError: module 'jinja2' has no attribute 'Markup'
Comme on touche aux mails dans nos commits, je soupçonne quelque chose du genre.
Après avoir upgrade vers 1.59, c'est l'intégration de poetry dans le build synapse qui vient percuter un de nos patchs :
INFO[0138] RUN sed -i '/ssl.SSL.TLSv1_METHOD/d' /install/lib/python*/site-packages/twisted/mail/smtp.py INFO[0138] cmd: /bin/sh INFO[0138] args: [-c sed -i '/ssl.SSL.TLSv1_METHOD/d' /install/lib/python*/site-packages/twisted/mail/smtp.py] INFO[0138] Running: [/bin/sh -c sed -i '/ssl.SSL.TLSv1_METHOD/d' /install/lib/python*/site-packages/twisted/mail/smtp.py] sed: can't read /install/lib/python*/site-packages/twisted/mail/smtp.py: No such file or directoryerror building image: error building stage: failed to execute command: waiting for process to exit: exit status 2
Le gros de la maintenance est terminé pour le serveur principal. Il reste une erreur dans les logs, probablement du fait de donnée sale dans la base après la corruption de début 2021.
synapse_1 | ValueError: A string literal cannot contain NUL (0x00) characters.synapse_1 | 2022-06-06 01:45:05,884 - synapse.metrics.background_process_metrics - 244 - ERROR - user_directory.notify_new_event-49 - Background process 'user_directory.notify_new_event' threw an exceptionsynapse_1 | Traceback (most recent call last):synapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/metrics/background_process_metrics.py", line 242, in runsynapse_1 | return await func(*args, **kwargs)synapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/handlers/user_directory.py", line 119, in processsynapse_1 | await self._unsafe_process()synapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/handlers/user_directory.py", line 182, in _unsafe_processsynapse_1 | await self._handle_deltas(deltas)synapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/handlers/user_directory.py", line 211, in _handle_deltassynapse_1 | await self._handle_room_membership_event(synapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/handlers/user_directory.py", line 348, in _handle_room_membership_eventsynapse_1 | await self._handle_possible_remote_profile_change(synapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/handlers/user_directory.py", line 478, in _handle_possible_remote_profile_changesynapse_1 | await self.store.update_profile_in_user_dir(user_id, new_name, new_avatar)synapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/storage/databases/main/user_directory.py", line 515, in update_profile_in_user_dirsynapse_1 | await self.db_pool.runInteraction(synapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/storage/database.py", line 743, in runInteractionsynapse_1 | result = await self.runWithConnection(synapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/storage/database.py", line 857, in runWithConnectionsynapse_1 | return await make_deferred_yieldable(synapse_1 | File "/usr/local/lib/python3.9/site-packages/twisted/python/threadpool.py", line 244, in inContextsynapse_1 | result = inContext.theWork() # type: ignore[attr-defined]synapse_1 | File "/usr/local/lib/python3.9/site-packages/twisted/python/threadpool.py", line 260, in <lambda>synapse_1 | inContext.theWork = lambda: context.call( # type: ignore[attr-defined]synapse_1 | File "/usr/local/lib/python3.9/site-packages/twisted/python/context.py", line 117, in callWithContextsynapse_1 | return self.currentContext().callWithContext(ctx, func, *args, **kw)synapse_1 | File "/usr/local/lib/python3.9/site-packages/twisted/python/context.py", line 82, in callWithContextsynapse_1 | return func(*args, **kw)synapse_1 | File "/usr/local/lib/python3.9/site-packages/twisted/enterprise/adbapi.py", line 282, in _runWithConnectionsynapse_1 | result = func(conn, *args, **kw)synapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/storage/database.py", line 850, in inner_funcsynapse_1 | return func(db_conn, *args, **kwargs)synapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/storage/database.py", line 609, in new_transactionsynapse_1 | r = func(cursor, *args, **kwargs)synapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/storage/databases/main/user_directory.py", line 472, in _update_profile_in_user_dir_txnsynapse_1 | self.db_pool.simple_upsert_txn(synapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/storage/database.py", line 1098, in simple_upsert_txnsynapse_1 | return self.simple_upsert_txn_native_upsert(synapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/storage/database.py", line 1224, in simple_upsert_txn_native_upsertsynapse_1 | txn.execute(sql, list(allvalues.values()))synapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/storage/database.py", line 310, in executesynapse_1 | self._do_execute(self.txn.execute, sql, *args)synapse_1 | File "/usr/local/lib/python3.9/site-packages/synapse/storage/database.py", line 343, in _do_executesynapse_1 | return func(sql, *args)synapse_1 | ValueError: A string literal cannot contain NUL (0x00) characters.