I just installed gitlab, the command check shows no error.
but in adding interface of a Member, menu display any member and the message "Searching..." looping.
There is no error in the logs on the server side, but only in my browser console:
Same thing happens to me, I'm using Gitlab 7.9.4 with omniauth (kerberos) authentication.
The message in english shown in my browser:
GET https://gitlab.c3sl.ufpr.br/api/v3/users.json?private_token=<FILTERED>&search=&per_page=20&active=true 500 (Internal Server Error)
It's intriguing that the browser shows an internal server error, but in fact nothing is shown in the logs.
What works:
Search for existing members of a project by name (members page);
The "search in this project" field on the top of the website;
The "name, e-mail, username" field in the admin/users page;
What doesn't work:
The "Add user(s) to the group:" in the group page;
I managed to fix this by changing my apache configuration, from:
<Location /> Require all granted ProxyPassReverse http://127.0.0.1:8080/ ProxyPassReverse http://gitlab.c3sl.ufpr.br/</Location>
to:
<Location /> Order deny,allow Allow from all ProxyPassReverse http://127.0.0.1:8080/ ProxyPassReverse http://gitlab.c3sl.ufpr.br/</Location>
The reason for the problem is that I have apache 2.2 installed by I was using configuration for apache 2.4. @AlexConquerFr, check if the same happens for you.
Started GET "/CW-Server/Minecraft" for 80.12.59.61 at 2015-04-17 17:58:00 +0200Processing by ProjectsController#show as HTMLParameters: {"namespace_id"=>"CW-Server", "id"=>"Minecraft"}Completed 200 OK in 230ms (Views: 191.5ms | ActiveRecord: 4.2ms)Started GET "/CW-Server/Minecraft?limit=20&offset=0" for 80.12.59.61 at 2015-04-17 17:58:01 +0200Processing by ProjectsController#show as JSONParameters: {"limit"=>"20", "offset"=>"0", "namespace_id"=>"CW-Server", "id"=>"Minecraft"}Cache digest for app/views/events/_commit.html.haml: 40572fcd6cf9be965312d4a16c99e4adCache digest for app/views/events/event/_push.html.haml: fa845b6e98def272860d3f3e52234cd6Cache digest for app/views/events/event/_note.html.haml: 3734c86f16ed28cd1b629277806f6cbbCache digest for app/views/events/event/_created_project.html.haml: f4a9d5f3c59283a0585e9f321bf5c802Cache digest for app/views/events/event/_common.html.haml: 50f5e319066a4a693a45072729d273b3Cache digest for app/views/events/_event.html.haml: bd92321f6ea2f3b7f7c3e241197ff476Read fragment views/events/2-20150411200229000000000/users/2-20150417150948000000000/bd92321f6ea2f3b7f7c3e241197ff476 (0.2ms)Completed 200 OK in 80ms (Views: 0.4ms | ActiveRecord: 3.2ms)Started GET "/CW-Server/Minecraft/edit" for 80.12.59.61 at 2015-04-17 17:58:03 +0200Processing by ProjectsController#edit as HTMLParameters: {"namespace_id"=>"CW-Server", "id"=>"Minecraft"}Completed 200 OK in 124ms (Views: 91.0ms | ActiveRecord: 4.2ms)Started GET "/CW-Server/Minecraft/project_members" for 80.12.59.61 at 2015-04-17 17:58:05 +0200Processing by Projects::ProjectMembersController#index as HTMLParameters: {"namespace_id"=>"CW-Server", "project_id"=>"Minecraft"}Completed 200 OK in 193ms (Views: 156.1ms | ActiveRecord: 3.1ms)Started POST "/CW-Server/Minecraft/project_members" for 80.12.59.61 at 2015-04-17 17:58:32 +0200Processing by Projects::ProjectMembersController#create as HTMLParameters: {"utf8"=>"✓", "authenticity_token"=>"nrw7za9H7F0mVphwJaNiUcPuCq3x92y5oIFPhhWdsm8=", "user_ids"=>"", "access_level"=>"10", "namespace_id"=>"CW-Server", "project_id"=>"Minecraft"}Redirected to http://git.conquerworld.fr/CW-Server/Minecraft/project_membersCompleted 302 Found in 47ms (ActiveRecord: 14.1ms)Started GET "/CW-Server/Minecraft/project_members" for 80.12.59.61 at 2015-04-17 17:58:32 +0200Processing by Projects::ProjectMembersController#index as HTMLParameters: {"namespace_id"=>"CW-Server", "project_id"=>"Minecraft"}Completed 200 OK in 223ms (Views: 179.2ms | ActiveRecord: 3.1ms)Started GET "/admin" for 80.12.59.61 at 2015-04-17 17:58:39 +0200Processing by Admin::DashboardController#index as HTMLCompleted 200 OK in 81ms (Views: 62.7ms | ActiveRecord: 6.4ms)Started GET "/admin/logs" for 80.12.59.61 at 2015-04-17 17:58:42 +0200Processing by Admin::LogsController#show as HTML
The error mentioned in the original message of the issue suggests this is a CORS header problem. What may be happening is that the GitLab JavaScript is requesting API calls to a domain that looks different from the one in which the file was originally served. Your browser is denying access to the AJAX call as a result, and you will not see any errors in the server logs because of this.
I'm not sure how you've configured GitLab and/or your Web browser, but there seems to be some inconsistency with the URLs. You may want to see if turning on the CORS header Access-Control-Allow-Origin: * solves your issue:
@AlexConquerFr, how are you configuring your GitLab instance? Are you using an Apache or nginx reverse proxy in front of GitLab? If so, can you paste the configuration file? What is external_url set to in /etc/gitlab/gitlab.rb?
# # # # # # # # # # # # # # # # # ## GitLab application config file ## # # # # # # # # # # # # # # # # ### How to use:# 1. Copy file as gitlab.yml# 2. Update gitlab -> host with your fully qualified domain name# 3. Update gitlab -> email_from# 4. If you installed Git from source, change git -> bin_path to /usr/local/bin/git# 5. Review this configuration file for other settings you may want to adjustproduction: &base # # 1. GitLab app settings # ========================== ## GitLab settings gitlab: ## Web server settings (note: host is the FQDN, do not include http://) host: git.MYDOMAIN.fr port: 82 # Set to 443 if using HTTPS, see installation.md#using-https for additional HTTPS configuration details https: false # Set to true if using HTTPS, see installation.md#using-https for additional HTTPS configuration details # Uncommment this line below if your ssh host is different from HTTP/HTTPS one # (you'd obviously need to replace ssh.host_example.com with your own host). # Otherwise, ssh host will be set to the `host:` value above ssh_host: git.MYDOMAIN.fr # WARNING: See config/application.rb under "Relative url support" for the list of # other files that need to be changed for relative url support relative_url_root: / # Uncomment and customize if you can't use the default user to run GitLab (default: 'git') user: git ## Date & Time settings # Uncomment and customize if you want to change the default time zone of GitLab application. # To see all available zones, run `bundle exec rake time:zones:all RAILS_ENV=production` # time_zone: 'UTC' ## Email settings # Uncomment and set to false if you need to disable email sending from GitLab (default: true) # email_enabled: true # Email address used in the "From" field in mails sent by GitLab email_from: gitlab@MYDOMAIN.fr email_display_name: CW GitLab # Email server smtp settings are in config/initializers/smtp_settings.rb.sample # default_can_create_group: false # default: true # username_changing_enabled: false # default: true - User can change her username/namespace ## Default theme ## BASIC = 1 ## MARS = 2 ## MODERN = 3 ## GRAY = 4 ## COLOR = 5 # default_theme: 2 # default: 2 ## Automatic issue closing # If a commit message matches this regular expression, all issues referenced from the matched text will be closed. # This happens when the commit is pushed or merged into the default branch of a project. # When not specified the default issue_closing_pattern as specified below will be used. # Tip: you can test your closing pattern at http://rubular.com # issue_closing_pattern: '((?:[Cc]los(?:e[sd]|ing)|[Ff]ix(?:e[sd]|ing)?) +(?:(?:issues? +)?#\d+(?:(?:, *| +and +)?))+)' ## Default project features settings default_projects_features: issues: true merge_requests: true wiki: true snippets: false visibility_level: "private" # can be "private" | "internal" | "public" ## Webhook settings # Number of seconds to wait for HTTP response after sending webhook HTTP POST request (default: 10) # webhook_timeout: 10 ## Repository downloads directory # When a user clicks e.g. 'Download zip' on a project, a temporary zip file is created in the following directory. # The default is 'tmp/repositories' relative to the root of the Rails app. # repository_downloads_path: tmp/repositories ## External issues trackers issues_tracker: # redmine: # title: "Redmine" # ## If not nil, link 'Issues' on project page will be replaced with this # ## Use placeholders: # ## :project_id - GitLab project identifier # ## :issues_tracker_id - Project Name or Id in external issue tracker # project_url: "http://redmine.sample/projects/:issues_tracker_id" # # ## If not nil, links from /#\d/ entities from commit messages will replaced with this # ## Use placeholders: # ## :project_id - GitLab project identifier # ## :issues_tracker_id - Project Name or Id in external issue tracker # ## :id - Issue id (from commit messages) # issues_url: "http://redmine.sample/issues/:id" # # ## If not nil, links to creating new issues will be replaced with this # ## Use placeholders: # ## :project_id - GitLab project identifier # ## :issues_tracker_id - Project Name or Id in external issue tracker # new_issue_url: "http://redmine.sample/projects/:issues_tracker_id/issues/new" # # jira: # title: "Atlassian Jira" # project_url: "http://jira.sample/issues/?jql=project=:issues_tracker_id" # issues_url: "http://jira.sample/browse/:id" # new_issue_url: "http://jira.sample/secure/CreateIssue.jspa" ## Gravatar ## For Libravatar see: http://doc.gitlab.com/ce/customization/libravatar.html gravatar: enabled: true # Use user avatar image from Gravatar.com (default: true) # gravatar urls: possible placeholders: %{hash} %{size} %{email} # plain_url: "http://..." # default: http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=identicon # ssl_url: "https://..." # default: https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=identicon # # 2. Auth settings # ========================== ## LDAP settings # You can inspect a sample of the LDAP users with login access by running: # bundle exec rake gitlab:ldap:check RAILS_ENV=production ldap: enabled: true servers: main: # 'main' is the GitLab 'provider ID' of this LDAP server ## label # # A human-friendly name for your LDAP server. It is OK to change the label later, # for instance if you find out it is too large to fit on the web page. # # Example: 'Paris' or 'Acme, Ltd.' label: 'LDAP' host: '127.0.0.1' port: 389 uid: 'uid' method: 'plain' # "tls" or "ssl" or "plain" bind_dn: 'cn=XXXXXXX,dc=MYDOMAIN,dc=fr' password: 'XXXXXXXXX' # This setting specifies if LDAP server is Active Directory LDAP server. # For non AD servers it skips the AD specific queries. # If your LDAP server is not AD, set this to false. active_directory: false # If allow_username_or_email_login is enabled, GitLab will ignore everything # after the first '@' in the LDAP username submitted by the user on login. # # Example: # - the user enters 'jane.doe@example.com' and 'p@ssw0rd' as LDAP credentials; # - GitLab queries the LDAP server with 'jane.doe' and 'p@ssw0rd'. # # If you are using "uid: 'userPrincipalName'" on ActiveDirectory you need to # disable this setting, because the userPrincipalName contains an '@'. allow_username_or_email_login: false # Base where we can search for users # # Ex. ou=People,dc=gitlab,dc=example # base: 'ou=users,dc=MYDOMAIN,dc=fr' # Filter LDAP users # # Format: RFC 4515 http://tools.ietf.org/search/rfc4515 # Ex. (employeeType=developer) # # Note: GitLab does not support omniauth-ldap's custom filter syntax. # user_filter: '(&(objectClass=inetOrgPerson)(memberOf=cn=gitlab,ou=groups,dc=MYDOMAIN,dc=fr))' # GitLab EE only: add more LDAP servers # Choose an ID made of a-z and 0-9 . This ID will be stored in the database # so that GitLab can remember which LDAP server a user belongs to. # uswest2: # label: # host: # .... ## OmniAuth settings omniauth: # Allow login via Twitter, Google, etc. using OmniAuth providers enabled: true # CAUTION! # This allows users to login without having a user account first (default: false). # User accounts will be created automatically when authentication was successful. allow_single_sign_on: false # Locks down those users until they have been cleared by the admin (default: true). block_auto_created_users: true ## Auth providers # Uncomment the following lines and fill in the data of the auth provider you want to use # If your favorite auth provider is not listed you can use others: # see https://github.com/gitlabhq/gitlab-public-wiki/wiki/Custom-omniauth-provider-configurations # The 'app_id' and 'app_secret' parameters are always passed as the first two # arguments, followed by optional 'args' which can be either a hash or an array. # Documentation for this is available at http://doc.gitlab.com/ce/integration/omniauth.html providers: # - { name: 'google_oauth2', app_id: 'YOUR_APP_ID', # app_secret: 'YOUR_APP_SECRET', # args: { access_type: 'offline', approval_prompt: '' } } - { name: 'twitter', app_id: 'XXXXXXXXXX', app_secret: 'XXXXXXXX'} - { name: 'github', app_id: 'XXXXXX', app_secret: 'XXXXXXX', args: { scope: 'user:email' } } # - { name: 'gitlab', app_id: 'YOUR_APP_ID', # app_secret: 'YOUR_APP_SECRET', # args: { scope: 'api' } } - { name: 'bitbucket', app_id: 'XXXXXXXX', app_secret: 'XXXXXXXXXX'} # # 3. Advanced settings # ========================== # GitLab Satellites satellites: # Relative paths are relative to Rails.root (default: tmp/repo_satellites/) path: /home/git/gitlab-satellites/ timeout: 30 ## Backup settings backup: path: "tmp/backups" # Relative paths are relative to Rails.root (default: tmp/backups/) # keep_time: 604800 # default: 0 (forever) (in seconds) # upload: # # Fog storage connection settings, see http://fog.io/storage/ . # connection: # provider: AWS # region: eu-west-1 # aws_access_key_id: AKIAKIAKI # aws_secret_access_key: 'secret123' # # The remote 'directory' to store your backups. For S3, this would be the bucket name. # remote_directory: 'my.s3.bucket' ## GitLab Shell settings gitlab_shell: path: /home/git/gitlab-shell/ # REPOS_PATH MUST NOT BE A SYMLINK!!! repos_path: /home/git/repositories/ hooks_path: /home/git/gitlab-shell/hooks/ # Git over HTTP upload_pack: true receive_pack: true # If you use non-standard ssh port you need to specify it ssh_port: 22 ## Git settings # CAUTION! # Use the default values unless you really know what you are doing git: bin_path: /usr/bin/git # The next value is the maximum memory size grit can use # Given in number of bytes per git object (e.g. a commit) # This value can be increased if you have very large commits max_size: 20971520 # 20.megabytes # Git timeout to read a commit, in seconds timeout: 10 # # 4. Extra customization # ========================== extra: ## Google analytics. Uncomment if you want it # google_analytics_id: '_your_tracking_id' ## Piwik analytics. # piwik_url: '_your_piwik_url' # piwik_site_id: '_your_piwik_site_id' rack_attack: git_basic_auth: # Whitelist requests from 127.0.0.1 for web proxies (NGINX/Apache) with incorrect headers # ip_whitelist: ["127.0.0.1"] # # Limit the number of Git HTTP authentication attempts per IP # maxretry: 10 # # Reset the auth attempt counter per IP after 60 seconds # findtime: 60 # # Ban an IP for one hour (3600s) after too many auth attempts # bantime: 3600development: <<: *basetest: <<: *base gravatar: enabled: true gitlab: host: localhost port: 80 # When you run tests we clone and setup gitlab-shell # In order to setup it correctly you need to specify # your system username you use to run GitLab # user: YOUR_USERNAME satellites: path: tmp/tests/gitlab-satellites/ gitlab_shell: path: tmp/tests/gitlab-shell/ repos_path: tmp/tests/repositories/ hooks_path: tmp/tests/gitlab-shell/hooks/ issues_tracker: redmine: title: "Redmine" project_url: "http://redmine/projects/:issues_tracker_id" issues_url: "http://redmine/:project_id/:issues_tracker_id/:id" new_issue_url: "http://redmine/projects/:issues_tracker_id/issues/new" ldap: enabled: false servers: main: label: ldap host: 127.0.0.1 port: 3890 uid: 'uid' method: 'plain' # "tls" or "ssl" or "plain" base: 'dc=example,dc=com' user_filter: '' group_base: 'ou=groups,dc=example,dc=com' admin_group: '' sync_ssh_keys: falsestaging: <<: *base
result bundle exec rake gitlab:check RAILS_ENV=production with git user
Checking Environment ...Git configured for git user? ... yesChecking Environment ... FinishedChecking GitLab Shell ...GitLab Shell version >= 2.6.0 ? ... OK (2.6.0)Repo base directory exists? ... yesRepo base directory is a symlink? ... noRepo base owned by git:git? ... yesRepo base access is drwxrws---? ... yesSatellites access is drwxr-x---? ... yeshooks directories in repos are links: ...Alex Conquer / test ... repository is emptyCW-Server / Minecraft ... repository is empty413 / test ... repository is emptyRunning /home/git/gitlab-shell/bin/checkCheck GitLab API access: OKCheck directories and files: /home/git/repositories/: OK /home/git/.ssh/authorized_keys: OKTest redis-cli executable: redis-cli 2.4.14Send ping to redis server: PONGgitlab-shell self-check successfulChecking GitLab Shell ... FinishedChecking Sidekiq ...Running? ... yesNumber of Sidekiq processes ... 1Checking Sidekiq ... FinishedChecking LDAP ...LDAP users with access to your GitLab server (only showing the first 100 results)Server: ldapmain DN: cn=XXXXXXXXX,ou=users,dc=MYDOMAIN,dc=fr uid: XXXXXXXXXXX DN: uid=XXXXXXXXXXX,ou=users,dc=MYDOMAIN,dc=fr uid: XXXXXXXXXX DN: uid=XXXXXXXXX,ou=users,dc=MYDOMAIN,dc=fr uid: XXXXXXXXXXChecking LDAP ... FinishedChecking GitLab ...Database config exists? ... yesDatabase is SQLite ... noAll migrations up? ... yesDatabase contains orphaned GroupMembers? ... noGitLab config exists? ... yesGitLab config outdated? ... noLog directory writable? ... yesTmp directory writable? ... yesInit script exists? ... yesInit script up-to-date? ... yesprojects have namespace: ...Alex Conquer / test ... yesCW-Server / Minecraft ... yes413 / test ... yesProjects have satellites? ...Alex Conquer / test ... can't create, repository is emptyCW-Server / Minecraft ... can't create, repository is empty413 / test ... can't create, repository is emptyRedis version >= 2.0.0? ... yesRuby version >= 2.0.0 ? ... yes (2.1.5)Your git bin path is "/usr/bin/git"Git version >= 1.7.10 ? ... yes (1.7.10)Active users: 3Checking GitLab ... Finished
I have not changed except for the port and name, This is the only site on my nginx server.
## GitLab## Contributors: randx, yin8086, sashkab, orkoden, axilleas, bbodenmiller, DouweM#### Lines starting with two hashes (##) are comments with information.## Lines starting with one hash (#) are configuration parameters that can be uncommented.###################################### CHUNKED TRANSFER ######################################## It is a known issue that Git-over-HTTP requires chunked transfer encoding [0]## which is not supported by Nginx < 1.3.9 [1]. As a result, pushing a large object## with Git (i.e. a single large file) can lead to a 411 error. In theory you can get## around this by tweaking this configuration file and either:## - installing an old version of Nginx with the chunkin module [2] compiled in, or## - using a newer version of Nginx.#### At the time of writing we do not know if either of these theoretical solutions works.## As a workaround users can use Git over SSH to push large files.#### [0] https://git.kernel.org/cgit/git/git.git/tree/Documentation/technical/http-protocol.txt#n99## [1] https://github.com/agentzh/chunkin-nginx-module#status## [2] https://github.com/agentzh/chunkin-nginx-module####################################### configuration ######################################### See installation.md#using-https for additional HTTPS configuration details.upstream gitlab { server unix:/home/git/gitlab/tmp/sockets/gitlab.socket fail_timeout=0;}## Normal HTTP hostserver { listen 0.0.0.0:82 default_server; #listen [::]:80 default_server; server_name git.MYDOMAIN.fr; ## Replace this with something like gitlab.example.com server_tokens off; ## Don't show the nginx version number, a security best practice root /home/git/gitlab/public; ## Increase this if you want to upload large attachments ## Or if you want to accept large git objects over http client_max_body_size 20m; ## See app/controllers/application_controller.rb for headers set ## Individual nginx logs for this GitLab vhost access_log /var/log/nginx/gitlab_access.log; error_log /var/log/nginx/gitlab_error.log; location / { ## Serve static files from defined root folder. ## @gitlab is a named location for the upstream fallback, see below. try_files $uri $uri/index.html $uri.html @gitlab; } ## We route uploads through GitLab to prevent XSS and enforce access control. location /uploads/ { ## If you use HTTPS make sure you disable gzip compression ## to be safe against BREACH attack. # gzip off; ## https://github.com/gitlabhq/gitlabhq/issues/694 ## Some requests take more than 30 seconds. proxy_read_timeout 300; proxy_connect_timeout 300; proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Frame-Options SAMEORIGIN; proxy_pass http://gitlab; } ## If a file, which is not found in the root folder is requested, ## then the proxy passes the request to the upsteam (gitlab unicorn). location @gitlab { ## If you use HTTPS make sure you disable gzip compression ## to be safe against BREACH attack. # gzip off; ## https://github.com/gitlabhq/gitlabhq/issues/694 ## Some requests take more than 30 seconds. proxy_read_timeout 300; proxy_connect_timeout 300; proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Frame-Options SAMEORIGIN; proxy_pass http://gitlab; } ## Enable gzip compression as per rails guide: ## http://guides.rubyonrails.org/asset_pipeline.html#gzip-compression ## WARNING: If you are using relative urls remove the block below ## See config/application.rb under "Relative url support" for the list of ## other files that need to be changed for relative url support location ~ ^/(assets)/ { root /home/git/gitlab/public; gzip_static on; # to serve pre-gzipped version expires max; add_header Cache-Control public; } error_page 502 /502.html;}