mirror of
https://github.com/lunaisnotaboy/mastodon.git
synced 2024-08-22 00:15:09 +00:00
* Fix account deletion sometimes failing because of optimistic locks In some rare occasions[1], deleting accounts would fail with a `StaleObjectError` exception. Indeed, account deletion manually sets the `AccountStat` values without handling cases where the optimistic locking on `AccountStat` would fail. To my knowledge, with the rewrite of account counters in #15913, the `DeleteAccountService` is now the only place that changes the counters in a way that is not atomic. Since in this specific case, we do not care about the previous values of the account counters, it appears we don't need locking at all for this table anymore. [1]: https://discourse.joinmastodon.org/t/account-cant-be-deleted/3602 * Bump MAX_SUPPORTED_VERSION in maintenance script
23 lines
655 B
Ruby
23 lines
655 B
Ruby
# frozen_string_literal: true
|
|
# == Schema Information
|
|
#
|
|
# Table name: account_stats
|
|
#
|
|
# id :bigint(8) not null, primary key
|
|
# account_id :bigint(8) not null
|
|
# statuses_count :bigint(8) default(0), not null
|
|
# following_count :bigint(8) default(0), not null
|
|
# followers_count :bigint(8) default(0), not null
|
|
# created_at :datetime not null
|
|
# updated_at :datetime not null
|
|
# last_status_at :datetime
|
|
#
|
|
|
|
class AccountStat < ApplicationRecord
|
|
self.locking_column = nil
|
|
|
|
belongs_to :account, inverse_of: :account_stat
|
|
|
|
update_index('accounts#account', :account)
|
|
end
|