gitlab ActionView::Template::Error (undefined method `[]' for nil:NilClass): 500错误

时间:2023-03-09 09:01:25
gitlab    ActionView::Template::Error (undefined method `[]' for nil:NilClass): 500错误
Started GET "/mygroup/myproject/tree/master/MyDirectory" for 127.0.0.1 at 2014-10-22 22:42:42 +0200
Processing by Projects::TreeController#show as HTML
Parameters: {"project_id"=>"mygroup/myproject", "id"=>"master/MyDirectory"}
Completed 500 Internal Server Error in 373ms ActionView::Template::Error (undefined method `[]' for nil:NilClass):
1: - tree, commit = submodule_links(submodule_item)
2: %tr{ class: "tree-item" }
3: %td.tree-item-file-name
4: %i.fa.fa-archive
app/models/repository.rb:162:in `method_missing'
app/models/repository.rb:228:in `submodule_url_for'
app/helpers/submodule_helper.rb:6:in `submodule_links'
app/views/projects/tree/_submodule_item.html.haml:1:in `_app_views_projects_tree__submodule_item_html_haml__1960578592168380494_48290660'
app/helpers/tree_helper.rb:19:in `render_tree'
app/views/projects/tree/_tree.html.haml:42:in `_app_views_projects_tree__tree_html_haml__985986129427416040_29680420'
app/views/projects/tree/show.html.haml:9:in `_app_views_projects_tree_show_html_haml___3955057514203210948_31577660'
app/controllers/projects/tree_controller.rb:13:in `show' 这个问题让我聪明的领导给解决了
这个问题想开了,不难解决。就是.gitmodules文件中submodule项目,有一个已经不用了,删除了路径,但是在submodule中还存在,删除了,这个问题就解决了
我也参考了https://gitlab.com/gitlab-org/gitlab-ce/issues/714
由这个引发的思考和反思(为什么我一天没有反思,领导一个多小时就解决了):
1,注意前后对比,之前的版本是正常的,这个版本是不正常的,我没有做到前后对比,虽然从网上得到的结果是.gitmodules的问题,但是我没有确认一定是这个文件的问题
2,没有细心的对比不同,文件中,只有其中的一个文件没有,没有发现这个点。
3,对gitlab不了解,原来没有用过这个服务,对这个服务的应用和使用了解的不清楚。我只是从gitlab文件里边直接更改.gitmodules,但是当问题解决了的时候,我git clone 发现,.gitmodules文件没有修改过。而重新提交的文件就可以。
4,从服务源代码定位问题方向(当时我也看了,但是一看看不懂,就放弃了),总结起来还是对日志出现的报错,研究不深。
总结:
1,以后遇到问题要注意bug前后对比,找出差异
2,细心查找不同,注意观察
3,对出现问题的服务,多加了解、熟悉、使用