[packages/gitlab-ce] revert https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5281

glen glen at pld-linux.org
Mon Aug 22 21:54:54 CEST 2016


commit 38a358e2787b977aa92d3267ffcc775c55987e3b
Author: Elan Ruusamäe <glen at delfi.ee>
Date:   Mon Aug 22 22:54:04 2016 +0300

    revert https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5281
    
    a hack due https://github.com/ruby-prof/ruby-prof/pull/191

 gitlab-ce.spec    |   2 +
 revert-5281.patch | 247 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 249 insertions(+)
---
diff --git a/gitlab-ce.spec b/gitlab-ce.spec
index bd7ff52..ec6815f 100644
--- a/gitlab-ce.spec
+++ b/gitlab-ce.spec
@@ -37,6 +37,7 @@ Source12:	clean-vendor.sh
 Source13:	nginx.conf
 Patch0:		3774.patch
 Patch1:		pld.patch
+Patch2:		revert-5281.patch
 URL:		https://www.gitlab.com/gitlab-ce/
 BuildRequires:	cmake
 BuildRequires:	gmp-devel
@@ -96,6 +97,7 @@ mv config/gitlab.yml.example config/gitlab.yml
 mv config/unicorn.rb.example config/unicorn.rb
 #%patch0 -p1
 %patch1 -p1
+%patch2 -p1
 
 # use mysql for now
 mv config/database.yml.mysql config/database.yml
diff --git a/revert-5281.patch b/revert-5281.patch
new file mode 100644
index 0000000..d2fbcd2
--- /dev/null
+++ b/revert-5281.patch
@@ -0,0 +1,247 @@
+revert https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5281
+hack due https://github.com/ruby-prof/ruby-prof/pull/191
+
+--- b/Gemfile
++++ a/Gemfile
+@@ -334,8 +334,6 @@
+ 
+ gem 'email_reply_parser', '~> 0.5.8'
+ 
+-gem 'ruby-prof', '~> 0.15.9'
+-
+ ## CI
+ gem 'activerecord-session_store', '~> 1.0.0'
+ gem 'nested_form', '~> 0.3.2'
+--- b/Gemfile.lock
++++ a/Gemfile.lock
+@@ -620,7 +620,6 @@
+       rubocop (>= 0.40.0)
+     ruby-fogbugz (0.2.1)
+       crack (~> 0.4)
+-    ruby-prof (0.15.9)
+     ruby-progressbar (1.8.1)
+     ruby-saml (1.3.0)
+       nokogiri (>= 1.5.10)
+@@ -949,7 +948,6 @@
+   rubocop (~> 0.41.2)
+   rubocop-rspec (~> 1.5.0)
+   ruby-fogbugz (~> 0.2.1)
+-  ruby-prof (~> 0.15.9)
+   sanitize (~> 2.0)
+   sass-rails (~> 5.0.0)
+   scss_lint (~> 0.47.0)
+--- b/app/controllers/admin/requests_profiles_controller.rb
++++ /dev/null
+@@ -1,17 +0,0 @@
+-class Admin::RequestsProfilesController < Admin::ApplicationController
+-  def index
+-    @profile_token = Gitlab::RequestProfiler.profile_token
+-    @profiles      = Gitlab::RequestProfiler::Profile.all.group_by(&:request_path)
+-  end
+-
+-  def show
+-    clean_name = Rack::Utils.clean_path_info(params[:name])
+-    profile    = Gitlab::RequestProfiler::Profile.find(clean_name)
+-
+-    if profile
+-      render text: profile.content
+-    else
+-      redirect_to admin_requests_profiles_path, alert: 'Profile not found'
+-    end
+-  end
+-end
+--- b/app/views/admin/background_jobs/_head.html.haml
++++ a/app/views/admin/background_jobs/_head.html.haml
+@@ -16,7 +16,3 @@
+       = link_to admin_health_check_path, title: 'Health Check' do
+         %span
+           Health Check
+-    = nav_link(controller: :requests_profiles) do
+-      = link_to admin_requests_profiles_path, title: 'Requests Profiles' do
+-        %span
+-          Requests Profiles
+--- b/app/views/admin/requests_profiles/index.html.haml
++++ /dev/null
+@@ -1,26 +0,0 @@
+-- @no_container = true
+-- page_title 'Requests Profiles'
+-= render 'admin/background_jobs/head'
+-
+-%div{ class: container_class }
+-  %h3.page-title
+-    = page_title
+-
+-  .bs-callout.clearfix
+-    Pass the header
+-    %code X-Profile-Token: #{@profile_token}
+-    to profile the request
+-
+-  - if @profiles.present?
+-    .prepend-top-default
+-      - @profiles.each do |path, profiles|
+-        .panel.panel-default.panel-small
+-          .panel-heading
+-            %code= path
+-          %ul.content-list
+-            - profiles.each do |profile|
+-              %li
+-                = link_to profile.time.to_s(:long), admin_requests_profile_path(profile), data: {no_turbolink: true}
+-  - else
+-    %p
+-      No profiles found
+--- b/app/views/layouts/nav/_admin.html.haml
++++ a/app/views/layouts/nav/_admin.html.haml
+@@ -9,7 +9,7 @@
+       = link_to admin_root_path, title: 'Overview', class: 'shortcuts-tree' do
+         %span
+           Overview
++    = nav_link(controller: %w(system_info background_jobs logs health_check)) do
+-    = nav_link(controller: %w(system_info background_jobs logs health_check requests_profiles)) do
+       = link_to admin_system_info_path, title: 'Monitoring' do
+         %span
+           Monitoring
+--- b/app/workers/requests_profiles_worker.rb
++++ /dev/null
+@@ -1,9 +0,0 @@
+-class RequestsProfilesWorker
+-  include Sidekiq::Worker
+-
+-  sidekiq_options queue: :default
+-
+-  def perform
+-    Gitlab::RequestProfiler.remove_all_profiles
+-  end
+-end
+--- gitlabhq-8.11.0/config/initializers/request_profiler.rb	2016-08-22 15:27:22.000000000 +0300
++++ /dev/null	2007-02-13 18:29:53.000000000 +0200
+@@ -1,5 +0,0 @@
+-require 'gitlab/request_profiler/middleware'
+-
+-Rails.application.configure do |config|
+-  config.middleware.use(Gitlab::RequestProfiler::Middleware)
+-end
+--- b/lib/gitlab/request_profiler.rb
++++ /dev/null
+@@ -1,19 +0,0 @@
+-require 'fileutils'
+-
+-module Gitlab
+-  module RequestProfiler
+-    PROFILES_DIR = "#{Gitlab.config.shared.path}/tmp/requests_profiles"
+-
+-    def profile_token
+-      Rails.cache.fetch('profile-token') do
+-        Devise.friendly_token
+-      end
+-    end
+-    module_function :profile_token
+-
+-    def remove_all_profiles
+-      FileUtils.rm_rf(PROFILES_DIR)
+-    end
+-    module_function :remove_all_profiles
+-  end
+-end
+--- gitlabhq-8.11.0/lib/gitlab/request_profiler/middleware.rb	2016-08-22 15:27:22.000000000 +0300
++++ /dev/null	2007-02-13 18:29:53.000000000 +0200
+@@ -1,54 +0,0 @@
+-require 'ruby-prof'
+-require_dependency 'gitlab/request_profiler'
+-
+-module Gitlab
+-  module RequestProfiler
+-    class Middleware
+-      def initialize(app)
+-        @app = app
+-      end
+-
+-      def call(env)
+-        if profile?(env)
+-          call_with_profiling(env)
+-        else
+-          @app.call(env)
+-        end
+-      end
+-
+-      def profile?(env)
+-        header_token = env['HTTP_X_PROFILE_TOKEN']
+-        return unless header_token.present?
+-
+-        profile_token = RequestProfiler.profile_token
+-        return unless profile_token.present?
+-
+-        header_token == profile_token
+-      end
+-
+-      def call_with_profiling(env)
+-        ret = nil
+-        result = RubyProf::Profile.profile do
+-          ret = catch(:warden) do
+-            @app.call(env)
+-          end
+-        end
+-
+-        printer   = RubyProf::CallStackPrinter.new(result)
+-        file_name = "#{env['PATH_INFO'].tr('/', '|')}_#{Time.current.to_i}.html"
+-        file_path = "#{PROFILES_DIR}/#{file_name}"
+-
+-        FileUtils.mkdir_p(PROFILES_DIR)
+-        File.open(file_path, 'wb') do |file|
+-          printer.print(file)
+-        end
+-
+-        if ret.is_a?(Array)
+-          ret
+-        else
+-          throw(:warden, ret)
+-        end
+-      end
+-    end
+-  end
+-end
+--- b/lib/gitlab/request_profiler/profile.rb
++++ /dev/null
+@@ -1,43 +0,0 @@
+-module Gitlab
+-  module RequestProfiler
+-    class Profile
+-      attr_reader :name, :time, :request_path
+-
+-      alias_method :to_param, :name
+-
+-      def self.all
+-        Dir["#{PROFILES_DIR}/*.html"].map do |path|
+-          new(File.basename(path))
+-        end
+-      end
+-
+-      def self.find(name)
+-        name_dup = name.dup
+-        name_dup << '.html' unless name.end_with?('.html')
+-
+-        file_path = "#{PROFILES_DIR}/#{name_dup}"
+-        return unless File.exist?(file_path)
+-
+-        new(name_dup)
+-      end
+-
+-      def initialize(name)
+-        @name = name
+-
+-        set_attributes
+-      end
+-
+-      def content
+-        File.read("#{PROFILES_DIR}/#{name}")
+-      end
+-
+-      private
+-
+-      def set_attributes
+-        _, path, timestamp = name.split(/(.*)_(\d+)\.html$/)
+-        @request_path      = path.tr('|', '/')
+-        @time              = Time.at(timestamp.to_i).utc
+-      end
+-    end
+-  end
+-end
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/gitlab-ce.git/commitdiff/38a358e2787b977aa92d3267ffcc775c55987e3b



More information about the pld-cvs-commit mailing list