Don't give up so quickly on errors

This commit is contained in:
Neil Alexander 2021-07-30 10:50:49 +01:00
parent ddb60859b7
commit efe01519a2
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944
2 changed files with 4 additions and 8 deletions

View file

@ -240,12 +240,12 @@ func (a *KeyInternalAPI) processOtherSignatures(
func (a *KeyInternalAPI) crossSigningKeys( func (a *KeyInternalAPI) crossSigningKeys(
ctx context.Context, req *api.QueryKeysRequest, res *api.QueryKeysResponse, ctx context.Context, req *api.QueryKeysRequest, res *api.QueryKeysResponse,
) error { ) {
for userID := range req.UserToDevices { for userID := range req.UserToDevices {
keys, err := a.DB.CrossSigningKeysForUser(ctx, userID) keys, err := a.DB.CrossSigningKeysForUser(ctx, userID)
if err != nil { if err != nil {
logrus.WithError(err).Errorf("Failed to get cross-signing keys for user %q", userID) logrus.WithError(err).Errorf("Failed to get cross-signing keys for user %q", userID)
return fmt.Errorf("a.DB.CrossSigningKeysForUser (%q): %w", userID, err) continue
} }
for keyType, keyData := range keys { for keyType, keyData := range keys {
@ -264,7 +264,7 @@ func (a *KeyInternalAPI) crossSigningKeys(
sigs, err := a.DB.CrossSigningSigsForTarget(ctx, userID, keyID) sigs, err := a.DB.CrossSigningSigsForTarget(ctx, userID, keyID)
if err != nil { if err != nil {
logrus.WithError(err).Errorf("Failed to get cross-signing signatures for user %q key %q", userID, keyID) logrus.WithError(err).Errorf("Failed to get cross-signing signatures for user %q key %q", userID, keyID)
return fmt.Errorf("a.DB.CrossSigningSigsForTarget (%q key %q): %w", userID, keyID, err) continue
} }
appendSignature := func(originUserID string, originKeyID gomatrixserverlib.KeyID, signature gomatrixserverlib.Base64Bytes) { appendSignature := func(originUserID string, originKeyID gomatrixserverlib.KeyID, signature gomatrixserverlib.Base64Bytes) {
@ -303,6 +303,4 @@ func (a *KeyInternalAPI) crossSigningKeys(
} }
} }
} }
return nil
} }

View file

@ -227,9 +227,7 @@ func (a *KeyInternalAPI) QueryKeys(ctx context.Context, req *api.QueryKeysReques
res.Failures = make(map[string]interface{}) res.Failures = make(map[string]interface{})
// get cross-signing keys from the database // get cross-signing keys from the database
if err := a.crossSigningKeys(ctx, req, res); err != nil { a.crossSigningKeys(ctx, req, res)
util.GetLogger(ctx).WithError(err).Error("Failed to retrieve cross-signing keys from database")
}
// make a map from domain to device keys // make a map from domain to device keys
domainToDeviceKeys := make(map[string]map[string][]string) domainToDeviceKeys := make(map[string]map[string][]string)