Timeouts surprenants
Nous avons découvert à nos dépends la logique de timeout de Matrix Media Repo : https://github.com/turt2live/matrix-media-repo/blob/master/util/time.go#L16
Pour toute requête de download de media, il y a un timeout par défaut à 20 seconds, que le client peut étendre en spécifiant timeout_ms
en query string, mais qui max à 60 secondes. Ce timeout est très fréquemment déclenché dans trois cas :
- lorsqu'un client Matrix récupère un media sur notre media repo et que le chargement dépasse le timeout (quelque valeur, ou bien 60 secondes au pire)
- lorsqu'on récupère un média sur un autre homeserver qui utilise Matrix Media Repo, auquel cas ne précisant rien c'est le 20s qui s'applique
- lorsqu'un autre homeserver récupère le media chez nous, auquel cas ne précisant rien c'est le 20s qui s'applique
Ce défaut soulève aussi la question du pourquoi c'est si lent. En premiers tests il ne semble pas que la performance de Garage soit en jeu, il est très performant en lecture ou écriture directe.