[#530] Prevents user `info` from being overwritten because of race conditions

and non-partial update of embed (in WebFinger.ensure_keys_present and other places).
This commit is contained in:
Ivan Tashkinov 2019-01-21 14:16:51 +03:00
parent 52006f8f8a
commit aa480f4a8b
1 changed files with 6 additions and 4 deletions

View File

@ -140,8 +140,9 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
additional
),
{:ok, activity} <- insert(create_data, local),
:ok <- maybe_federate(activity),
{:ok, _actor} <- User.increase_note_count(actor) do
# Changing note count prior to federation in order not to reload `actor` (potentially updated by federator)
{:ok, _actor} <- User.increase_note_count(actor),
:ok <- maybe_federate(activity) do
{:ok, activity}
end
end
@ -288,8 +289,9 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
with {:ok, _} <- Object.delete(object),
{:ok, activity} <- insert(data, local),
:ok <- maybe_federate(activity),
{:ok, _actor} <- User.decrease_note_count(user) do
# Changing note count prior to federation in order not to reload `actor` (potentially updated by federator)
{:ok, _actor} <- User.decrease_note_count(user),
:ok <- maybe_federate(activity) do
{:ok, activity}
end
end