[Major Bug] HTTP 500 after upgrading to GitLab 8.10.0-ce.1 on Debian
After upgrading to GitLab 8.10.0-ce.1
I get the following error on every GitLab page
500 Whoops, something went wrong on our end.
After some tests I could find out that the method trusted_proxy?(ip)
will be called 2 times per HTTP request. First with the parameter ip = "127.0.0.1"
and a second time with ip = "(null)"
. It seems that the second call should not be happened. The following fix seems to work.
But I don't really know what I do. Patch only for your own risk.
--- embedded/service/gitlab-rails/config/initializers/trusted_proxies.rb.old 2016-07-24 02:00:04.614912557 +0200
+++ embedded/service/gitlab-rails/config/initializers/trusted_proxies.rb 2016-07-24 02:02:35.718541997 +0200
@@ -6,6 +6,10 @@
module Rack
class Request
def trusted_proxy?(ip)
+ if ip.casecmp("(null)") == 0
+ return false
+ end
+
Rails.application.config.action_dispatch.trusted_proxies.any? { |proxy| proxy === ip }
end
end
System:
$> uname -a
Linux {servername} 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 GNU/Linux
$> grep '^deb.*gitlab' /etc/apt/sources.list
deb https://packages.gitlab.com/gitlab/gitlab-ce/debian/ jessie main
deb-src https://packages.gitlab.com/gitlab/gitlab-ce/debian/ jessie main
$> dpkg-query -W gitlab-ce
gitlab-ce 8.10.0-ce.1
If I request a GitLab page then the following error occurs
$> gitlab-ctl tail
==> /var/log/gitlab/unicorn/unicorn_stderr.log <==
E, [2016-07-24T02:25:10.358354 #23414] ERROR -- : app error: invalid address (IPAddr::InvalidAddressError)
E, [2016-07-24T02:25:10.358560 #23414] ERROR -- : /opt/gitlab/embedded/lib/ruby/2.1.0/ipaddr.rb:559:in `in6_addr'
E, [2016-07-24T02:25:10.358630 #23414] ERROR -- : /opt/gitlab/embedded/lib/ruby/2.1.0/ipaddr.rb:496:in `initialize'
E, [2016-07-24T02:25:10.358807 #23414] ERROR -- : /opt/gitlab/embedded/lib/ruby/2.1.0/ipaddr.rb:514:in `new'
E, [2016-07-24T02:25:10.358968 #23414] ERROR -- : /opt/gitlab/embedded/lib/ruby/2.1.0/ipaddr.rb:514:in `coerce_other'
E, [2016-07-24T02:25:10.359016 #23414] ERROR -- : /opt/gitlab/embedded/lib/ruby/2.1.0/ipaddr.rb:170:in `include?'
E, [2016-07-24T02:25:10.359062 #23414] ERROR -- : /opt/gitlab/embedded/service/gitlab-rails/config/initializers/trusted_proxies.rb:9:in `block in trusted_proxy?'
E, [2016-07-24T02:25:10.359125 #23414] ERROR -- : /opt/gitlab/embedded/service/gitlab-rails/config/initializers/trusted_proxies.rb:9:in `each'
E, [2016-07-24T02:25:10.359173 #23414] ERROR -- : /opt/gitlab/embedded/service/gitlab-rails/config/initializers/trusted_proxies.rb:9:in `any?'
E, [2016-07-24T02:25:10.359225 #23414] ERROR -- : /opt/gitlab/embedded/service/gitlab-rails/config/initializers/trusted_proxies.rb:9:in `trusted_proxy?'
E, [2016-07-24T02:25:10.359279 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rack-1.6.4/lib/rack/request.rb:365:in `block in reject_trusted_ip_addresses'
E, [2016-07-24T02:25:10.359319 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rack-1.6.4/lib/rack/request.rb:365:in `reject'
E, [2016-07-24T02:25:10.359381 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rack-1.6.4/lib/rack/request.rb:365:in `reject_trusted_ip_addresses'
E, [2016-07-24T02:25:10.359428 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rack-1.6.4/lib/rack/request.rb:356:in `ip'
E, [2016-07-24T02:25:10.359469 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/actionpack-4.2.7/lib/action_dispatch/http/request.rb:226:in `ip'
E, [2016-07-24T02:25:10.359514 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/railties-4.2.7/lib/rails/rack/logger.rb:53:in `started_request_message'
E, [2016-07-24T02:25:10.359559 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/railties-4.2.7/lib/rails/rack/logger.rb:37:in `block in call_app'
E, [2016-07-24T02:25:10.359599 #23414] ERROR -- : /opt/gitlab/embedded/lib/ruby/2.1.0/logger.rb:372:in `add'
E, [2016-07-24T02:25:10.359667 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activerecord-session_store-1.0.0/lib/active_record/session_store/extension/logger_silencer.rb:38:in `add_with_threadsafety'
E, [2016-07-24T02:25:10.359707 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activesupport-4.2.7/lib/active_support/logger.rb:77:in `add'
E, [2016-07-24T02:25:10.359756 #23414] ERROR -- : /opt/gitlab/embedded/lib/ruby/2.1.0/logger.rb:434:in `info'
E, [2016-07-24T02:25:10.359795 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/railties-4.2.7/lib/rails/rack/logger.rb:37:in `call_app'
E, [2016-07-24T02:25:10.359835 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/railties-4.2.7/lib/rails/rack/logger.rb:20:in `block in call'
E, [2016-07-24T02:25:10.359898 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activesupport-4.2.7/lib/active_support/tagged_logging.rb:68:in `block in tagged'
E, [2016-07-24T02:25:10.359987 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activesupport-4.2.7/lib/active_support/tagged_logging.rb:26:in `tagged'
E, [2016-07-24T02:25:10.360041 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activesupport-4.2.7/lib/active_support/tagged_logging.rb:68:in `tagged'
E, [2016-07-24T02:25:10.360087 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/railties-4.2.7/lib/rails/rack/logger.rb:20:in `call'
E, [2016-07-24T02:25:10.360173 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/request_store-1.3.0/lib/request_store/middleware.rb:9:in `call'
E, [2016-07-24T02:25:10.360214 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/actionpack-4.2.7/lib/action_dispatch/middleware/request_id.rb:21:in `call'
E, [2016-07-24T02:25:10.360259 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rack-1.6.4/lib/rack/methodoverride.rb:22:in `call'
E, [2016-07-24T02:25:10.360299 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rack-1.6.4/lib/rack/runtime.rb:18:in `call'
E, [2016-07-24T02:25:10.360344 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rack-1.6.4/lib/rack/lock.rb:17:in `call'
E, [2016-07-24T02:25:10.360401 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rack-1.6.4/lib/rack/sendfile.rb:113:in `call'
E, [2016-07-24T02:25:10.360448 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/sentry-raven-1.1.0/lib/raven/integrations/rack.rb:53:in `call'
E, [2016-07-24T02:25:10.360504 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/railties-4.2.7/lib/rails/engine.rb:518:in `call'
E, [2016-07-24T02:25:10.360557 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/railties-4.2.7/lib/rails/application.rb:165:in `call'
E, [2016-07-24T02:25:10.360618 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/railties-4.2.7/lib/rails/railtie.rb:194:in `public_send'
E, [2016-07-24T02:25:10.360666 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/railties-4.2.7/lib/rails/railtie.rb:194:in `method_missing'
E, [2016-07-24T02:25:10.360719 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rack-1.6.4/lib/rack/urlmap.rb:66:in `block in call'
E, [2016-07-24T02:25:10.360766 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rack-1.6.4/lib/rack/urlmap.rb:50:in `each'
E, [2016-07-24T02:25:10.360805 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/rack-1.6.4/lib/rack/urlmap.rb:50:in `call'
E, [2016-07-24T02:25:10.360865 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/unicorn-4.9.0/lib/unicorn/http_server.rb:580:in `process_client'
E, [2016-07-24T02:25:10.360914 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/unicorn-worker-killer-0.4.4/lib/unicorn/worker_killer.rb:52:in `process_client'
E, [2016-07-24T02:25:10.360971 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/unicorn-4.9.0/lib/unicorn/http_server.rb:674:in `worker_loop'
E, [2016-07-24T02:25:10.361012 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/unicorn-4.9.0/lib/unicorn/http_server.rb:529:in `spawn_missing_workers'
E, [2016-07-24T02:25:10.361057 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/unicorn-4.9.0/lib/unicorn/http_server.rb:140:in `start'
E, [2016-07-24T02:25:10.361109 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/unicorn-4.9.0/bin/unicorn:126:in `<top (required)>'
E, [2016-07-24T02:25:10.361164 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/bin/unicorn:23:in `load'
E, [2016-07-24T02:25:10.361210 #23414] ERROR -- : /opt/gitlab/embedded/service/gem/ruby/2.1.0/bin/unicorn:23:in `<main>'