From 8232f76c482d3046055bd7bf224ef7835d0fa399 Mon Sep 17 00:00:00 2001
From: Eugen Rochko <eugen@zeonfederated.com>
Date: Mon, 3 Apr 2017 22:54:46 +0200
Subject: [PATCH] Add check for visibility.nil? even though it can't ever be,
 to check for race conditions

---
 app/lib/exceptions.rb                    | 1 +
 app/services/fan_out_on_write_service.rb | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/app/lib/exceptions.rb b/app/lib/exceptions.rb
index 200da9fe16..9bc802c120 100644
--- a/app/lib/exceptions.rb
+++ b/app/lib/exceptions.rb
@@ -4,4 +4,5 @@ module Mastodon
   class Error < StandardError; end
   class NotPermittedError < Error; end
   class ValidationError < Error; end
+  class RaceConditionError < Error; end
 end
diff --git a/app/services/fan_out_on_write_service.rb b/app/services/fan_out_on_write_service.rb
index 402b84b2f8..df404cbef1 100644
--- a/app/services/fan_out_on_write_service.rb
+++ b/app/services/fan_out_on_write_service.rb
@@ -4,6 +4,8 @@ class FanOutOnWriteService < BaseService
   # Push a status into home and mentions feeds
   # @param [Status] status
   def call(status)
+    raise Mastodon::RaceConditionError if status.visibility.nil?
+
     deliver_to_self(status) if status.account.local?
 
     if status.direct_visibility?
-- 
GitLab