Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • G gitlabhq1
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 21
    • Issues 21
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 12
    • Merge requests 12
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • gpt
  • large_projects
  • gitlabhq1
  • Issues
  • #262

Closed
Open
Created Jan 03, 2012 by Administrator@rootOwner

Error 500 on Login if Projects Limit is left empty

Created by: wilatai

I had just installed GitLab succesfully (first via WEBRick, later also via NGINX*) and I was playing around with it for half an hour or so, e.g. creating a new user, experimenting with permissions for a few (empty) test repositories, etc.

Suddenly after clicking logout as the Admin user, wanting to switch to another user I am getting the error below. The last changes I I could recall were:

  • Making the other user an 'admin' (as the original admin user)
  • Changing the password of the other user (as the original admin user)
  • Earlier changing the (displayed) name of the other user (IIRC from that other users account itself)

I would now get an Error 500. Sadly I've got practically zero knowledge of Ruby, but WEBrick gave the following output:

bundle exec rails s -e production
=> Booting WEBrick
=> Rails 3.1.1 application starting in production on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-01-03 14:51:27] INFO  WEBrick 1.3.1
[2012-01-03 14:51:27] INFO  ruby 1.9.2 (2011-07-09) [x86_64-linux]
[2012-01-03 14:51:27] INFO  WEBrick::HTTPServer#start: pid=1628 port=3000
cache: [GET /] miss


Started GET "/" for 129.125.175.79 at 2012-01-03 14:51:27 +0100
  Processing by DashboardController#index as HTML
Rendered dashboard/_sidebar.html.haml (3.7ms)
Rendered dashboard/index.html.haml within layouts/application (13.9ms)
Completed 500 Internal Server Error in 347ms

ActionView::Template::Error (undefined method `>' for nil:NilClass):
    1: %aside
    2:   %h4
    3:     - if current_user.can_create_project?
    4:       %a.button-small.button-green{:href => new_project_path} New Project
    5:     Your Projects
    6:   %ol.project-list
  app/models/user.rb:54:in `can_create_project?'
  app/views/dashboard/_sidebar.html.haml:3:in `_app_views_dashboard__sidebar_html_haml__3812077499945998929_53015460'
  app/views/dashboard/index.html.haml:4:in `_app_views_dashboard_index_html_haml__3002901999675966789_53331140'
  app/controllers/dashboard_controller.rb:8:in `index'

Now this error persisted in the original browser (Firefox), but while I was typing the above I wanted to make really sure that it wasn't some caching issue on my side.

So I fired up IE and I got a login window.. I could log in as the Admin user .. so far so good! I played with some of the settings of the user I made admin earlier; After each change checking if Firefox could display the login page again.

Ultimately I found that the culprit was an empty field for the 'projects limit' field. Any number, including 0, is fine. Leave it empty and you get thet 500 error while trying to log in. I think it could potentially save other people time dealing with this if either the projects limit field got some validation (or a little help text) or perhaps interpreting an empty field ('no limit') as e.g. 0 or so behind the scenes is a good suggestion.

It's easy now to think: I don't want a user to have any limit, clear the field.. and suddenly you've got a login problem.

( * Following: https://github.com/gitlabhq/gitlabhq/wiki/V2.0-easy-setup-for-ubuntu Thank you SOO much for this and for GitLab, love it so far! )

Assignee
Assign to
Time tracking