|
|
上周更新系统,看到Gitlab-CE有新版本,直接就更新了。今天写好代码要推送的时候,发现服务端竟然挂了,提示502错误。0 O c) E0 j& U
登陆到服务器,运行 gitlab-ctl status 查看状态,组件都正常运行。唯一的意外是:ssh登录服务器时,会出现”LANG cannot change locale (en_US.utf8)” 的提示。暂时想不到其他原因,就先解决这个问题。' ?) x4 O2 m$ D# d4 ]* i9 l
运行 locale -a 命令,发现系统中确实没有 en_US.utf8 的本地化设置文件。于是编辑 /etc/locale.gen 文件,取消 “en_US.UTF-8 UTF-8” 这一行的注释,运行 locale-gen ,生成 en_US.utf8 相关文件。2 |- } G. j' u) b$ G4 G
接着设置语言和本地化设置:2 s6 h" t3 M1 Q
export LC_ALL=en_US.UTF-8, Z) s Y9 I& F$ O5 c
export LANG=en_US.UTF-8断开ssh重新登陆,bash的警告提示消失了。运行 gitlab-ctl restart 重启Gitlab,代码能正常推送,网站能打开,似乎问题都解决了。5 `" T. E8 `- d! h0 ^
但是好事多磨,过了没多久,发现网页都是500错误。虽然能通过git正常推送和拉去代码,但是网页用不了也挺烦人的。想到上个月为了节省服务器资源,把Premethus、Grafana等用不到的组件都关了,会不会是这个原因导致的?
[' u% x4 |5 m8 v$ w于是编辑 /etc/gitlab/gitlab.rb 文件,把组件又启用。运行 gitlab-ctl reconfigure 重新配置,意外发现了,脚本无法运行成功,出现了如下提示:: q& G8 |& a$ C/ r* I
Recipe: gitlab::database_migrations' M' D/ r; Q' t" R
* ruby_block[check remote PG version] action nothing (skipped due to action :nothing)8 ?' L" V6 g# E
* rails_migration[gitlab-rails] action run
# d( U; I6 ~8 r# _2 F+ \ * bash[migrate gitlab-rails database] action run
) Q, E& e3 X7 R) R$ I8 _
1 R7 Y! |# m; H ================================================================================! Z; B* |" O% V8 Z1 X& _* F
Error executing action `run` on resource 'bash[migrate gitlab-rails database]'
& {9 j, u4 ^9 Q; a i, C$ g' W9 e ================================================================================
8 F4 J( X2 l$ G9 k% t/ }3 ~" h # ?: U2 V4 G# F
Mixlib::ShellOut::ShellCommandFailed/ X$ U* f. h7 m3 N0 K( O
------------------------------------, N, }, A* @& S" n- E
Command execution failed. STDOUT/STDERR suppressed for sensitive resource
- l8 U) m' r" w( X6 ~; A; c# x
- u& T4 ]# Y& q3 D! u) L Resource Declaration:
7 C( Q( E% ~! o2 I% ?( h' @ ---------------------
* r R* D9 C0 C$ ~: b# [/ B suppressed sensitive resource output
# S3 f& S. ^7 `# L% i% L4 H
x6 n% ?' ^; B2 I' k Compiled Resource:5 E4 ~( u' n9 q
------------------
$ ?1 k" ], l8 A1 E4 t; G suppressed sensitive resource output
! K. h1 x6 _& t1 h
7 \ A, P- G' z" q System Info:
4 n b& G8 P- ^; C5 h ------------* [" F4 C! j) m9 @3 [1 q8 O Q
chef_version=15.17.4
3 A# f1 H/ `2 D( \2 q: M% q platform=ubuntu4 ~4 z9 F( d {3 v$ r* c
platform_version=20.04 M8 a" z9 t, v7 F/ a& m1 {4 D
ruby=ruby 2.7.5p203 (2021-11-24 revision f69aeb8314) [x86_64-linux]8 X- Y2 w! h+ q, m5 e
program_name=/opt/gitlab/embedded/bin/chef-client1 l# N. p' s0 U& x* M* D3 ~& j
executable=/opt/gitlab/embedded/bin/chef-client
! L- C+ r& V L% m1 z1 Y
9 Z" L4 q3 J+ W$ K" c2 D
0 S' W# a! R5 ?% C. x9 S ================================================================================% }* Q/ P- S/ P# _6 z
Error executing action `run` on resource 'rails_migration[gitlab-rails]'5 a& `) Y/ C( E) c
================================================================================ o$ _# C. I6 z2 M( T6 W: ?
& U' n7 d D) ?6 m3 @+ d. S
Mixlib::ShellOut::ShellCommandFailed
5 g; P) A. W" Q! E! S ------------------------------------5 o% i8 d& m* m4 }2 E7 V) [
bash[migrate gitlab-rails database] (/opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/resources/rails_migration.rb line 16) had an error: Mixlib::ShellOut::ShellCommandFailed: Command execution failed. STDOUT/STDERR suppressed for sensitive resource
1 o# t) k3 D+ g7 g Z: T. \ T6 i4 {' {- X: r1 \. w" @1 \( M
Resource Declaration:% M4 y0 `0 I( E/ ?
---------------------, I/ o$ u% A' E9 K4 S/ M5 ~: q5 d$ }% b
# In /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/database_migrations.rb4 {! v* }# \- S
" w2 h6 f s2 j* c( h: x- M6 e
51: rails_migration "gitlab-rails" do/ P9 M, n2 a% @# @1 D0 S: ?$ V
52: rake_task 'gitlab:db:configure'2 @# W) P" ~& P6 I& q5 A1 g
53: logfile_prefix 'gitlab-rails-db-migrate'
4 z9 D6 ]) Y' \$ [4 k. z1 B 54: helper migration_helper+ D- h' ^8 A0 ?+ G2 ?
55:
$ R5 a7 l' q7 l 56: environment env_variables
% B4 q P7 x) x& s+ @: r$ B 57: dependent_services dependent_services
) j+ z+ k# q. ` h 58: notifies :run, "execute[clear the gitlab-rails cache]", :immediately
; _1 G! i& n U- g 59: notifies :run, "ruby_block[check remote PG version]", :immediately
& M, V! U9 i# y' t( M# K 60: , n! J. }' H; V3 Q9 v( S( C
61: only_if { migration_helper.attributes_node['auto_migrate'] }" J F; Q" @! Y* f# Y, H- C) c! W
62: end
0 O8 W; G- _$ T k" h 8 ~- J- D" h3 Y" ]& L4 E* W0 _
Compiled Resource:( x4 S1 X5 |4 Y7 ] x
------------------& x1 v/ Y& W: k( u
# Declared in /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/database_migrations.rb:51:in `from_file'
! n9 \9 P2 K' B# I! E4 |
( O6 W4 W, B4 y- {, Z+ I' r rails_migration("gitlab-rails") do& s j6 P( I( s3 u3 V
action [:run]/ R7 C; V: A% m4 m& v) D
default_guard_interpreter :default; q# Q$ I3 z* O9 k2 [ m$ X k
declared_type :rails_migration
1 k: x* o% k9 i# F( K, q cookbook_name "gitlab"
8 n0 O! t' E% S1 M6 ` recipe_name "database_migrations"& U2 B7 Q6 P9 L. q; k
rake_task "gitlab:db:configure"3 n. ]1 K* K/ ^9 F& S
logfile_prefix "gitlab-rails-db-migrate"
' X! A. K& f, s helper "*sensitive value suppressed*"; G# B8 \* B# s5 b1 w
environment "*sensitive value suppressed*"* R: R3 y" }; N0 X+ j+ y
dependent_services ["runit_service[puma]", "sidekiq_service[sidekiq]"]; o" [. K/ E8 g. r
only_if { #code block }# H2 ]. O, J) y# E) F4 Y. f6 |
end- u, I7 u8 N2 [* f8 G7 F
1 `2 k& G" l3 H; j9 C
System Info:
. \1 g* B9 s7 e6 H# f ------------
! X3 b7 H% }$ K9 ]. m- \' H chef_version=15.17.4: U4 M+ r$ ]; |! x* I
platform=ubuntu
! J+ O* b9 Y+ j platform_version=20.04+ A$ V- {4 q7 Y/ S1 G- Y
ruby=ruby 2.7.5p203 (2021-11-24 revision f69aeb8314) [x86_64-linux]
" t( a: m0 C+ P% W- C2 g/ Z, Z, u2 [ program_name=/opt/gitlab/embedded/bin/chef-client
3 z; v, l4 F& i; j2 b. y& _* G6 k" Z0 W executable=/opt/gitlab/embedded/bin/chef-client
1 N$ L( i9 v( m2 `6 D- _5 A/ y8 I + Q/ O0 ^2 s: ~1 D9 j1 Z8 e- W
Running handlers:. \2 b1 k- g7 j# y7 k! m9 f
There was an error running gitlab-ctl reconfigure:% |1 H4 D; Q# K& l, f6 ?
rails_migration[gitlab-rails] (gitlab::database_migrations line 51) had an error: Mixlib::ShellOut::ShellCommandFailed: bash[migrate gitlab-rails database] (/opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/resources/rails_migration.rb line 16) had an error: Mixlib::ShellOut::ShellCommandFailed: Command execution failed. STDOUT/STDERR suppressed for sensitive resource
9 s _2 I8 l; }& qRunning handlers complete. d P {2 n3 r) s+ S1 | R
Chef Infra Client failed. 0 resources updated in 21 seconds网上一查,发现和上次碰到的 Gitlab更新设置总是500错误 问题一样,又是Gitlab官方的锅。但是这次解决问题比之前更麻烦,步骤为:
, B$ N0 J6 O& S2 `$ n0 D1. 运行 gitlab-rake db:migrate,出现错误没关系,中间会输出一行用于终止后台任务的命令;
* e$ E' ?: s) d! N* J' r( a1 M2. 复制这条命令或者上一步控制台输出的指令: gitlab-rake gitlab:background_migrations:finalize[ProjectNamespaces::BackfillProjectNamespaces,projects,id,'[null\,"up"]']。运行这条指令可能会失败,如果失败,请重新运行上面的指令,成功说明问题解决了;
! I6 d9 O, A! s$ t ^3. 再次运行 gitlab-rake db:migrate,确认不会再报错;
5 {- h% p" M' z7 s; P% f4. 运行 gitlab-ctl reconfigure;
. U6 D3 E$ k' |/ M5. 重启Gitlab:gitlab-ctl restart。
/ n }0 f( h% W1 a# I% `需要注意的是,这个bug是在Gitlab-CE 14.10.0中引入,在14.10.1版本被修复。如果运行过reconfigure但没解决错误,是无法直接升级到14.10.1版本的。$ J6 L. t, j: j/ U8 \" I
参考1. Gitlab-ctl reconfigure doesn’t work after gitlab omnibus updated
4 {! f- g$ O0 Q2. gitlab-ctl reconfigure failing due to migration issue
2 o7 E2 w9 g8 ~0 o& D KAD:【加速器推荐】 搬瓦工官方代理服务Just My Socks,高速CN2 GIA线路流畅访问外网,被墙自动更换IP打赏赞(2) |
|