Commit 8b422649 authored by Shinya Maeda's avatar Shinya Maeda
Browse files

Merge branch 'live-trace-v2' into live-trace-v2-efficient-destroy-all

...@@ -147,7 +147,7 @@ def redis_delete_data ...@@ -147,7 +147,7 @@ def redis_delete_data
end end
def redis_data_key def redis_data_key
"gitlab:ci:trace:#{build_id}:chunks:#{chunk_index}:data" "gitlab:ci:trace:#{build_id}:chunks:#{chunk_index}"
end end
def redis_lock_key def redis_lock_key
......
...@@ -332,25 +332,20 @@ ...@@ -332,25 +332,20 @@
end end
end end
describe 'deletes data in redis after chunk record destroyed' do describe 'deletes data in redis after a parent record destroyed' do
let(:project) { create(:project) } let(:project) { create(:project) }
before do before do
pipeline = create(:ci_pipeline, project: project) pipeline = create(:ci_pipeline, project: project)
@build_ids = [] create(:ci_build, :running, :trace_live, pipeline: pipeline, project: project)
@build_ids << create(:ci_build, :running, :trace_live, pipeline: pipeline, project: project).id create(:ci_build, :running, :trace_live, pipeline: pipeline, project: project)
@build_ids << create(:ci_build, :running, :trace_live, pipeline: pipeline, project: project).id create(:ci_build, :running, :trace_live, pipeline: pipeline, project: project)
@build_ids << create(:ci_build, :running, :trace_live, pipeline: pipeline, project: project).id
end end
shared_examples_for 'deletes all build_trace_chunk and data in redis' do shared_examples_for 'deletes all build_trace_chunk and data in redis' do
it do it do
@build_ids.each do |build_id| Gitlab::Redis::SharedState.with do |redis|
Gitlab::Redis::SharedState.with do |redis| expect(redis.scan_each(match: "gitlab:ci:trace:?:chunks:?").to_a.count).to eq(3)
redis.scan_each(match: "gitlab:ci:trace:#{build_id}:chunks:?") do |key|
expect(redis.exists(key)).to be_truthy
end
end
end end
expect(described_class.count).to eq(3) expect(described_class.count).to eq(3)
...@@ -359,12 +354,8 @@ ...@@ -359,12 +354,8 @@
expect(described_class.count).to eq(0) expect(described_class.count).to eq(0)
@build_ids.each do |build_id| Gitlab::Redis::SharedState.with do |redis|
Gitlab::Redis::SharedState.with do |redis| expect(redis.scan_each(match: "gitlab:ci:trace:?:chunks:?").to_a.count).to eq(0)
redis.scan_each(match: "gitlab:ci:trace:#{build_id}:chunks:?") do |key|
expect(redis.exists(key)).to be_falsey
end
end
end end
end end
end end
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment