mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-09 04:36:11 +10:00
Merge branch '7-10-3' into '7-10-stable'
7.10.3 cc @job See merge request !1816
This commit is contained in:
@@ -43,6 +43,10 @@ v 7.10.0 (unreleased)
|
||||
- Prevent sending empty messages to HipChat (Chulki Lee)
|
||||
- Improve UI for mobile phones on dashboard and project pages
|
||||
- Add room notification and message color option for HipChat
|
||||
- Allow to use non-ASCII letters and dashes in project and namespace name. (Jakub Jirutka)
|
||||
- Add footnotes support to Markdown (Guillaume Delbergue)
|
||||
- Add current_sign_in_at to UserFull REST api.
|
||||
- Make Sidekiq MemoryKiller shutdown signal configurable
|
||||
|
||||
v 7.10.2
|
||||
- Fix CI links on MR page
|
||||
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
# This migration is a duplicate of 20150425164651_change_collation_for_tag_names.acts_as_taggable_on_engine.rb
|
||||
# It shold be applied before the index additions to ensure that `name` is case sensitive.
|
||||
|
||||
class GitlabChangeCollationForTagNames < ActiveRecord::Migration
|
||||
def up
|
||||
if ActsAsTaggableOn::Utils.using_mysql?
|
||||
execute("ALTER TABLE tags MODIFY name varchar(255) CHARACTER SET utf8 COLLATE utf8_bin;")
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,16 @@
|
||||
class RemoveDuplicateTags < ActiveRecord::Migration
|
||||
def up
|
||||
select_all("SELECT name, COUNT(id) as cnt FROM tags GROUP BY name HAVING COUNT(id) > 1").each do |tag|
|
||||
duplicate_ids = select_all("SELECT id FROM tags WHERE name = '#{tag["name"]}'").map{|tag| tag["id"]}
|
||||
origin_tag_id = duplicate_ids.first
|
||||
duplicate_ids.delete origin_tag_id
|
||||
|
||||
execute("UPDATE taggings SET tag_id = #{origin_tag_id} WHERE tag_id IN(#{duplicate_ids.join(",")})")
|
||||
execute("DELETE FROM tags WHERE id IN(#{duplicate_ids.join(",")})")
|
||||
end
|
||||
end
|
||||
|
||||
def down
|
||||
|
||||
end
|
||||
end
|
||||
@@ -3,8 +3,15 @@ class AddMissingUniqueIndices < ActiveRecord::Migration
|
||||
def self.up
|
||||
add_index :tags, :name, unique: true
|
||||
|
||||
remove_index :taggings, :tag_id
|
||||
remove_index :taggings, [:taggable_id, :taggable_type, :context]
|
||||
# pre-GitLab v6.7.0 may not have these indices since there were no
|
||||
# migrations for them
|
||||
if index_exists?(:taggings, :tag_id)
|
||||
remove_index :taggings, :tag_id
|
||||
end
|
||||
|
||||
if index_exists?(:taggings, [:taggable_id, :taggable_type, :context])
|
||||
remove_index :taggings, [:taggable_id, :taggable_type, :context]
|
||||
end
|
||||
add_index :taggings,
|
||||
[:tag_id, :taggable_id, :taggable_type, :context, :tagger_id, :tagger_type],
|
||||
unique: true, name: 'taggings_idx'
|
||||
|
||||
@@ -36,3 +36,5 @@ The MemoryKiller is controlled using environment variables.
|
||||
Existing jobs get 30 seconds to finish. After that, the MemoryKiller tells
|
||||
Sidekiq to shut down, and an external supervision mechanism (e.g. Runit) must
|
||||
restart Sidekiq.
|
||||
- `SIDEKIQ_MEMORY_KILLER_SHUTDOWN_SIGNAL`: defaults to 'SIGTERM'. The name of
|
||||
the final signal sent to the Sidekiq process when we want it to shut down.
|
||||
|
||||
@@ -7,6 +7,7 @@ module Gitlab
|
||||
GRACE_TIME = (ENV['SIDEKIQ_MEMORY_KILLER_GRACE_TIME'] || 15 * 60).to_s.to_i
|
||||
# Wait 30 seconds for running jobs to finish during graceful shutdown
|
||||
SHUTDOWN_WAIT = (ENV['SIDEKIQ_MEMORY_KILLER_SHUTDOWN_WAIT'] || 30).to_s.to_i
|
||||
SHUTDOWN_SIGNAL = (ENV['SIDEKIQ_MEMORY_KILLER_SHUTDOWN_SIGNAL'] || 'SIGTERM').to_s
|
||||
|
||||
# Create a mutex used to ensure there will be only one thread waiting to
|
||||
# shut Sidekiq down
|
||||
@@ -24,19 +25,19 @@ module Gitlab
|
||||
|
||||
Sidekiq.logger.warn "current RSS #{current_rss} exceeds maximum RSS "\
|
||||
"#{MAX_RSS}"
|
||||
Sidekiq.logger.warn "spawned thread that will shut down PID "\
|
||||
"#{Process.pid} in #{GRACE_TIME} seconds"
|
||||
Sidekiq.logger.warn "this thread will shut down PID #{Process.pid} "\
|
||||
"in #{GRACE_TIME} seconds"
|
||||
sleep(GRACE_TIME)
|
||||
|
||||
Sidekiq.logger.warn "sending SIGUSR1 to PID #{Process.pid}"
|
||||
Process.kill('SIGUSR1', Process.pid)
|
||||
|
||||
Sidekiq.logger.warn "waiting #{SHUTDOWN_WAIT} seconds before sending "\
|
||||
"SIGTERM to PID #{Process.pid}"
|
||||
"#{SHUTDOWN_SIGNAL} to PID #{Process.pid}"
|
||||
sleep(SHUTDOWN_WAIT)
|
||||
|
||||
Sidekiq.logger.warn "sending SIGTERM to PID #{Process.pid}"
|
||||
Process.kill('SIGTERM', Process.pid)
|
||||
Sidekiq.logger.warn "sending #{SHUTDOWN_SIGNAL} to PID #{Process.pid}"
|
||||
Process.kill(SHUTDOWN_SIGNAL, Process.pid)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user