在GItlab给用户分配权限返回500

  • Choerodon平台版本:0.21.0

  • 运行环境:自主搭建

  • 问题描述:
    所有项目下创建应用服务失败,但是在gitlab里面有生成相应的应用服务,手动去gitlab下面给刚生成的应用添加用户失败,报错500,而且在猪齿鱼里面创建应用的时候其他模块也报错

  • 报错信息(请尽量使用代码块或系统截图的形式展现):
    gitlab-service

devops-service

oauth-service

应该是这个问题导致了创建应用服务失败了,流程应该是创建仓库成功后,给成员加权限失败了,所以界面显示失败,但是 gitlab 那边有仓库. 所以要先解决下这个问题。

再提供下gitlab的日志呢。从这个pod可以查处

问题已经解决了,贴上解决方法给大家有个参考吧:

Started POST "/operation-tsy/ssasdasd/project_members" for 10.233.64.38 at 2020-11-21 11:08:18 +0800
Processing by Projects::ProjectMembersController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"[FILTERED]", "user_ids"=>"3", "access_level"=>"30", "expires_at"=>"", "namespace_id"=>"operation-tsy", "project_id"=>"ssasdasd"}
Completed 500 Internal Server Error in 75ms (ActiveRecord: 28.1ms)
  
ActiveRecord::StatementInvalid (PG::DataCorrupted: ERROR:  could not read block 16 in file "base/16384/17576": read only 0 of 8192 bytes
: INSERT INTO "members" ("access_level", "source_id", "source_type", "user_id", "type", "created_at", "updated_at", "created_by_id", "notification_level") VALUES (30, 218, 'Project', 3, 'ProjectMember', '2020-11-21 03:08:18.390170', '2020-11-21 03:08:18.390170', 1, 3) RETURNING "id"):
  
config/initializers/peek.rb:18:in `async_exec_params'
config/initializers/peek.rb:18:in `exec_params'
app/models/member.rb:178:in `add_user'
lib/gitlab/metrics/instrumentation.rb:161:in `block in add_user'
lib/gitlab/metrics/method_call.rb:36:in `measure'
lib/gitlab/metrics/instrumentation.rb:161:in `add_user'
app/models/member.rb:204:in `block (2 levels) in add_users'
app/models/member.rb:203:in `map!'
app/models/member.rb:203:in `block in add_users'
app/models/member.rb:202:in `add_users'
app/models/project_team.rb:48:in `add_users'
app/models/project.rb:306:in `add_users'
app/services/members/create_service.rb:15:in `execute'
lib/gitlab/metrics/instrumentation.rb:161:in `block in execute'
lib/gitlab/metrics/method_call.rb:36:in `measure'
lib/gitlab/metrics/instrumentation.rb:161:in `execute'
app/controllers/concerns/membership_actions.rb:9:in `create'
lib/gitlab/session.rb:11:in `with_session'
app/controllers/application_controller.rb:439:in `set_session_storage'
lib/gitlab/i18n.rb:55:in `with_locale'
lib/gitlab/i18n.rb:61:in `with_user_locale'
app/controllers/application_controller.rb:435:in `set_locale'
lib/gitlab/middleware/rails_queue_duration.rb:27:in `call'
lib/gitlab/metrics/rack_middleware.rb:17:in `block in call'
lib/gitlab/metrics/transaction.rb:57:in `run'
lib/gitlab/metrics/rack_middleware.rb:17:in `call'
lib/gitlab/middleware/multipart.rb:103:in `call'
lib/gitlab/request_profiler/middleware.rb:16:in `call'
lib/gitlab/middleware/go.rb:20:in `call'
lib/gitlab/etag_caching/middleware.rb:13:in `call'
lib/gitlab/middleware/correlation_id.rb:16:in `block in call'
lib/gitlab/middleware/correlation_id.rb:15:in `call'
lib/gitlab/middleware/read_only/controller.rb:40:in `call'
lib/gitlab/middleware/read_only.rb:18:in `call'
lib/gitlab/middleware/basic_health_check.rb:25:in `call'
lib/gitlab/request_context.rb:26:in `call'
lib/gitlab/metrics/requests_rack_middleware.rb:29:in `call'
lib/gitlab/middleware/release_env.rb:12:in `call'
==> /var/log/gitlab/gitlab-rails/production_json.log <==
{"method":"POST","path":"/operation-tsy/ssasdasd/project_members","format":"html","controller":"Projects::ProjectMembersController","action":"create","status":500,"error":"ActiveRecord::StatementInvalid: PG::DataCorrupted: ERROR:  could not read block 16 in file \"base/16384/17576\": read only 0 of 8192 bytes\n: INSERT INTO \"members\" (\"access_level\", \"source_id\", \"source_type\", \"user_id\", \"type\", \"created_at\", \"updated_at\", \"created_by_id\", \"notification_level\") VALUES (30, 218, 'Project', 3, 'ProjectMember', '2020-11-21 03:08:18.390170', '2020-11-21 03:08:18.390170', 1, 3) RETURNING \"id\"","duration":76.12,"view":0.0,"db":28.07,"time":"2020-11-21T03:08:18.321Z","params":[{"key":"utf8","value":"✓"},{"key":"authenticity_token","value":"[FILTERED]"},{"key":"user_ids","value":"3"},{"key":"access_level","value":"30"},{"key":"expires_at","value":""},{"key":"namespace_id","value":"operation-tsy"},{"key":"project_id","value":"ssasdasd"}],"remote_ip":"10.233.64.38","user_id":1,"username":"root","ua":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36","queue_duration":30.63,"correlation_id":"qq2uV9G0o16"}
==> /var/log/gitlab/gitlab-workhorse/current <==
2020-11-21_03:08:18.40400 gitlab.ls.com 127.0.0.1:0 - - [2020/11/21:11:08:18 +0800] "POST /operation-tsy/ssasdasd/project_members HTTP/1.1" 500 2926 "http://gitlab.ls.com/operation-tsy/ssasdasd/project_members" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36" 0.129
==> /var/log/gitlab/nginx/gitlab_access.log <==
10.233.64.38 - - [21/Nov/2020:11:08:18 +0800] "POST /operation-tsy/ssasdasd/project_members HTTP/1.1" 500 2926 "http://gitlab.ls.com/operation-tsy/ssasdasd/project_members" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"

根据gitlab报错是:PG::DataCorrupted: ERROR: could not read block 16 in file “base/16384/17576”: read only 0 of 8192 bytes ;也就是postgresql报错,发现member表无法插入数据;网上百度了下说是要重建索引;但是没有按照网上的办法来,就直接把这个表结构copy了一份,原表重命名,新表代替原表;居然神奇的好了;怀疑数据损坏导致的表出问题;最初怀疑是磁盘坏块 :thinking:
问题就这样解决了,不过感觉这个雷还是存在,只能做好每天的数据库备份了!

现在的问题应该是新建的项目无法分配权限的问题了,之前的项目没有问题;百度一堆都没有解决方法 :joy:

没有你说的那个应用 :rofl: