From 517af45e32535efe1494c0e1e59304a5a7771dba Mon Sep 17 00:00:00 2001 From: ThibG Date: Mon, 7 Sep 2020 18:00:15 +0200 Subject: Fix multiple boosts of a same toot erroneously appearing in TL (#14759) * Check for and record reblog info atomically Instead of using ZREVRANK to determine whether a reblog is a new reblog or not, use ZADD's NX option to perform the check/addition option atomically. * Replace ZREVRANK call with ZSCORE key which is more efficient * Make tests a bit stricter * Fix off-by-one --- spec/lib/feed_manager_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'spec') diff --git a/spec/lib/feed_manager_spec.rb b/spec/lib/feed_manager_spec.rb index 5088d1742..d86dd7993 100644 --- a/spec/lib/feed_manager_spec.rb +++ b/spec/lib/feed_manager_spec.rb @@ -444,8 +444,8 @@ RSpec.describe FeedManager do expect(Redis.current.exists?(reblog_set_key)).to be true expect(Redis.current.zrange(reblogs_key, 0, -1)).to eq [reblogged.id.to_s] - # Push everything off the end of the feed. - FeedManager::MAX_ITEMS.times do + # Push everything past the reblog falloff. + FeedManager::REBLOG_FALLOFF.times do FeedManager.instance.push_to_home(receiver, Fabricate(:status)) end -- cgit