Skip to content
GitLab
项目 群组 主题 代码片段
  • /
  • 帮助
    • 帮助
    • 支持
    • 社区论坛
    • 提交反馈
  • 登录
  • L large
  • 项目信息
    • 项目信息
    • 动态
    • 标记
    • 成员
  • 仓库
    • 仓库
    • 文件
    • 提交
    • 分支
    • 标签
    • 贡献者统计
    • 分支图
    • 比较修订版本
  • 议题 21
    • 议题 21
    • 列表
    • 看板
    • 服务台
    • 里程碑
  • 合并请求 12
    • 合并请求 12
  • CI/CD
    • CI/CD
    • 流水线
    • 作业
    • 产物
    • 计划
  • 部署
    • 部署
    • 环境
    • 发布
  • 软件包与镜像库
    • 软件包与镜像库
    • 软件包库
    • 容器镜像库
    • Terraform 模块
    • 模型实验
  • 监控
    • 监控
    • 事件
  • 分析
    • 分析
    • 价值流
    • CI/CD
    • 仓库
  • Wiki
    • Wiki
  • 代码片段
    • 代码片段
  • 动态
  • 分支图
  • 创建新议题
  • 作业
  • 提交
  • 议题看板
收起侧边栏
  • 王权利
  • large
  • 议题
  • #2118

Bug in PostReceive#perform

Created by: erroric

Bug exists when Merge Request pushed with next deletion of merged branch.

In resque Failed Jobs list:

Worker
host:15362 on POST_RECEIVE at about 2 hours ago Retried about 2 hours ago
Class
PostReceive
Arguments
"project_name"
"31a9999a3d58629514babd86fe9074b961c0c0d3 "
"0000000000000000000000000000000000000000"
"refs/heads/some_branch"
"gitlab"
Exception
NoMethodError
Error
undefined method 'author' for nil:NilClass
/home/gitlab/gitlabhq/app/workers/post_receive.rb:10:in 'perform'

in post-receive hook log we can see:

project_name, babdf90b2dc02e901f99b84e1fcc2fa435063a18 , daca90f001355d6aa6cea4f4cfe91cba11a736f4 , refs/heads/some_branch, gitlab

project_name, 31a9999a3d58629514babd86fe9074b961c0c0d3 , 0000000000000000000000000000000000000000 , refs/heads/some_branch, gitlab

bug occurs in second push, when branch "some_branch" is deleted

/home/gitlab/gitlabhq/app/workers/post_receive.rb:10

 user = if identifier.eql? Gitlab.config.gitolite_admin_key
      email = project.commit(newrev).author.email

because newrev is "0000000000000000000000000000000000000000", it is not exists in project commits, so project.commit(newrev) returns nil

I think, simple way to fix it - add rescue for this statement

指派人
分配到
工时统计