Project

General

Profile

Actions

Defect #33195

closed

500 error when having only one SCM enabled

Added by Txinto Vaz about 4 years ago. Updated about 4 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
SCM
Target version:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Resolution:
Invalid
Affected version:

Description

Look at this code

 def build_new_repository_from_params
    print params
    print ("\n-------------\n")
    print params[:repository_scm]
    print ("\n-------2-----\n")
    print Redmine::Scm::Base.all
    print ("\n-------3-----\n")
    print Setting.enabled_scm
    print ("\n-------4-----\n")
    print (Redmine::Scm::Base.all & Setting.enabled_scm)
    print ("\n-------5-----\n")
    print (Redmine::Scm::Base.all & Setting.enabled_scm).first
    print ("\n-------6-----\n")
    scm = params[:repository_scm] || (Redmine::Scm::Base.all & Setting.enabled_scm).first
    unless @repository = Repository.factory(scm)
      render_404
      return
    end

    @repository.project = @project
    @repository.safe_attributes = params[:repository]
    @repository
  end

And look at these two traces:

  • The first one when you only have Git enabled as SCM (fails)
  • The second one when you have Git and Bazaar enabled (works)
App 3169 output: lib/redmine/sudo_mode.rb:65:in `sudo_mode'
App 3169 output: I, [2020-03-24T19:56:15.246929 #3169]  INFO -- : Started GET "/projects/demo/repositories/new" for 95.16.232.60 at 2020-03-24 19:56:15 +0000
App 3169 output: I, [2020-03-24T19:56:15.248246 #3169]  INFO -- : Processing by RepositoriesController#new as */*
App 3169 output: I, [2020-03-24T19:56:15.248387 #3169]  INFO -- :   Parameters: {"project_id"=>"demo"}
App 3169 output: I, [2020-03-24T19:56:15.259065 #3169]  INFO -- :   Current user: admin (id=1)
App 3169 output: {"controller"=>"repositories", "action"=>"new", "project_id"=>"demo"}
App 3169 output:
App 3169 output: -------------
App 3169 output:
App 3169 output: -------2-----
App 3169 output: ["Subversion", "Mercurial", "Cvs", "Bazaar", "Git", "Filesystem"]
App 3169 output:
App 3169 output: -------3-----
App 3169 output: ---
App 3169 output: - Git
App 3169 output:
App 3169 output: -------4-----
App 3169 output: I, [2020-03-24T19:56:15.260911 #3169]  INFO -- : Completed 500 Internal Server Error in 12ms (ActiveRecord: 6.9ms)
App 3169 output: F, [2020-03-24T19:56:15.294974 #3169] FATAL -- :
App 3169 output: F, [2020-03-24T19:56:15.295096 #3169] FATAL -- : TypeError (no implicit conversion of String into Array):
App 3169 output: F, [2020-03-24T19:56:15.295120 #3169] FATAL -- :
App 3169 output: F, [2020-03-24T19:56:15.295142 #3169] FATAL -- : app/controllers/repositories_controller.rb:300:in `&'
App 3169 output: app/controllers/repositories_controller.rb:300:in `build_new_repository_from_params'
App 3169 output: lib/redmine/sudo_mode.rb:65:in `sudo_mode'

App 3169 output: I, [2020-03-24T19:56:46.663214 #3169]  INFO -- : Started GET "/projects/demo/repositories/new" for 95.16.232.60 at 2020-03-24 19:56:46 +0000
App 3169 output: I, [2020-03-24T19:56:46.664097 #3169]  INFO -- : Processing by RepositoriesController#new as HTML
App 3169 output: I, [2020-03-24T19:56:46.664179 #3169]  INFO -- :   Parameters: {"project_id"=>"demo"}
App 3169 output: I, [2020-03-24T19:56:46.672322 #3169]  INFO -- :   Current user: admin (id=1)
App 3169 output: {"controller"=>"repositories", "action"=>"new", "project_id"=>"demo"}
App 3169 output:
App 3169 output: -------------
App 3169 output:
App 3169 output: -------2-----
App 3169 output: ["Subversion", "Mercurial", "Cvs", "Bazaar", "Git", "Filesystem"]
App 3169 output:
App 3169 output: -------3-----
App 3169 output: ["Bazaar", "Git"]
App 3169 output:
App 3169 output: -------4-----
App 3169 output: ["Bazaar", "Git"]
App 3169 output:
App 3169 output: -------5-----
App 3169 output: Bazaar
App 3169 output:
App 3169 output: -------6-----
App 3169 output: I, [2020-03-24T19:56:46.698968 #3169]  INFO -- :   Rendering repositories/new.html.erb within layouts/base
App 3169 output: I, [2020-03-24T19:56:46.704682 #3169]  INFO -- :   Rendered repositories/_form.html.erb (3.1ms)
App 3169 output: I, [2020-03-24T19:56:46.705038 #3169]  INFO -- :   Rendered repositories/new.html.erb within layouts/base (5.9ms)
App 3169 output: I, [2020-03-24T19:56:46.708987 #3169]  INFO -- :   Rendered plugins/additionals/app/views/additionals/_html_head.html.slim (1.0ms)
App 3169 output: I, [2020-03-24T19:56:46.709287 #3169]  INFO -- :   Rendering plugins/wiki_graphviz_plugin/app/views/wiki_graphviz/_head.html.erb
App 3169 output: I, [2020-03-24T19:56:46.709553 #3169]  INFO -- :   Rendered plugins/wiki_graphviz_plugin/app/views/wiki_graphviz/_head.html.erb (0.2ms)
App 3169 output: I, [2020-03-24T19:56:46.709938 #3169]  INFO -- :   Rendered plugins/additionals/app/views/additionals/_body_top.slim (0.1ms)
App 3169 output: I, [2020-03-24T19:56:46.724633 #3169]  INFO -- :   Rendered plugins/additionals/app/views/additionals/_content.html.slim (0.2ms)
App 3169 output: I, [2020-03-24T19:56:46.725207 #3169]  INFO -- :   Rendered plugins/additionals/app/views/additionals/_body_bottom.html.slim (0.3ms)
App 3169 output: I, [2020-03-24T19:56:46.725593 #3169]  INFO -- : Completed 200 OK in 61ms (Views: 22.5ms | ActiveRecord: 13.3ms)

Possible root cause: when you have only one SCM enabled, the result of the & operation is a String, not an array. This is causing it to fail.

A workaround is to enable another SCM.

Regards.

Actions

Also available in: Atom PDF