mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2024-10-31 22:40:01 +00:00
[bugfix] on deref new account, check db again for account on ErrAlreadyExists (#1581)
Signed-off-by: kim <grufwub@gmail.com>
This commit is contained in:
parent
bfccf4e450
commit
fe6c8b8152
1 changed files with 9 additions and 2 deletions
|
@ -293,8 +293,15 @@ func (d *deref) enrichAccount(ctx context.Context, requestUser string, uri *url.
|
|||
latestAcc.CreatedAt = latestAcc.FetchedAt
|
||||
latestAcc.UpdatedAt = latestAcc.FetchedAt
|
||||
|
||||
// This is a new account, we need to place it in the database.
|
||||
if err := d.db.PutAccount(ctx, latestAcc); err != nil {
|
||||
// This is new, put it in the database.
|
||||
err := d.db.PutAccount(ctx, latestAcc)
|
||||
|
||||
if errors.Is(err, db.ErrAlreadyExists) {
|
||||
// TODO: replace this quick fix with per-URI deref locks.
|
||||
latestAcc, err = d.db.GetAccountByURI(ctx, latestAcc.URI)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("enrichAccount: error putting in database: %w", err)
|
||||
}
|
||||
} else {
|
||||
|
|
Loading…
Reference in a new issue