FIX: in redis readonly raise an exception from DistributedMutex

If we detect redis is in readonly we can not correctly get a mutex
raise an exception to notify caller

When getting optimized images avoid the distributed mutex unless
for some reason it is the first call and we need to generate a thumb

In redis readonly no thumbnails will be generated
This commit is contained in:
Sam
2018-09-19 15:49:18 +10:00
parent 80229668f9
commit 5302709343
3 changed files with 49 additions and 8 deletions

View File

@ -45,4 +45,29 @@ describe DistributedMutex do
}.to raise_error(ThreadError)
end
context "readonly redis" do
before do
$redis.slaveof "127.0.0.1", "99991"
end
after do
$redis.slaveof "no", "one"
end
it "works even if redis is in readonly" do
m = DistributedMutex.new("test_readonly")
start = Time.now
done = false
expect {
m.synchronize do
done = true
end
}.to raise_error(Discourse::ReadOnly)
expect(done).to eq(false)
expect(Time.now - start).to be < (1.second)
end
end
end