From 5c131dac5e2e7fc85bcbef6c1c8e95912b7759d4 Mon Sep 17 00:00:00 2001 From: Zeger-Jan van de Weg Date: Tue, 20 Nov 2018 13:40:45 +0100 Subject: [PATCH] Fix bug where ID is not set On HEAD~ we remove the ID from the class, which created a bug. Given we don't need the ID anymore, it has been removed and simplified. --- lib/gitlab/gitaly_client.rb | 9 ++++----- lib/peek/views/gitaly.rb | 1 - spec/lib/gitlab/gitaly_client_spec.rb | 25 +++++++++++++++++++++++++ 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/lib/gitlab/gitaly_client.rb b/lib/gitlab/gitaly_client.rb index 66666b88c15..9be553a8b86 100644 --- a/lib/gitlab/gitaly_client.rb +++ b/lib/gitlab/gitaly_client.rb @@ -296,15 +296,14 @@ module Gitlab def self.add_call_details(details) return unless Gitlab::SafeRequestStore[:peek_enabled] - Gitlab::SafeRequestStore['gitaly_call_details'] ||= {} - Gitlab::SafeRequestStore['gitaly_call_details'][id] ||= {} - Gitlab::SafeRequestStore['gitaly_call_details'][id].merge!(details) + Gitlab::SafeRequestStore['gitaly_call_details'] ||= [] + Gitlab::SafeRequestStore['gitaly_call_details'] << details end def self.list_call_details - return {} unless Gitlab::SafeRequestStore[:peek_enabled] + return [] unless Gitlab::SafeRequestStore[:peek_enabled] - Gitlab::SafeRequestStore['gitaly_call_details'] || {} + Gitlab::SafeRequestStore['gitaly_call_details'] || [] end def self.expected_server_version diff --git a/lib/peek/views/gitaly.rb b/lib/peek/views/gitaly.rb index 860963ef94f..30f95a10024 100644 --- a/lib/peek/views/gitaly.rb +++ b/lib/peek/views/gitaly.rb @@ -23,7 +23,6 @@ module Peek def details ::Gitlab::GitalyClient.list_call_details - .values .sort { |a, b| b[:duration] <=> a[:duration] } .map(&method(:format_call_details)) end diff --git a/spec/lib/gitlab/gitaly_client_spec.rb b/spec/lib/gitlab/gitaly_client_spec.rb index 3ae319456da..5eda4d041a8 100644 --- a/spec/lib/gitlab/gitaly_client_spec.rb +++ b/spec/lib/gitlab/gitaly_client_spec.rb @@ -216,4 +216,29 @@ describe Gitlab::GitalyClient do end end end + + describe 'Peek Performance bar details' do + let(:gitaly_server) { Gitaly::Server.all.first } + + before do + Gitlab::SafeRequestStore[:peek_enabled] = true + end + + context 'when the request store is active', :request_store do + it 'records call details if a RPC is called' do + gitaly_server.server_version + + expect(described_class.list_call_details).not_to be_empty + expect(described_class.list_call_details.size).to be(1) + end + end + + context 'when no request store is active' do + it 'records nothing' do + gitaly_server.server_version + + expect(described_class.list_call_details).to be_empty + end + end + end end -- GitLab