From: Peter Amstutz Date: Wed, 4 Mar 2020 20:17:49 +0000 (-0500) Subject: Fix error reporting bug in User.redirect_to X-Git-Tag: 2.1.0~278 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/d11eb815d1722e50cf5308dc6e9d99e93d3228b7 Fix error reporting bug in User.redirect_to Also improve error logging when User.register fails. no issue # Arvados-DCO-1.1-Signed-off-by: Peter Amstutz --- diff --git a/services/api/app/controllers/user_sessions_controller.rb b/services/api/app/controllers/user_sessions_controller.rb index 0a03399d1f..85f32772b1 100644 --- a/services/api/app/controllers/user_sessions_controller.rb +++ b/services/api/app/controllers/user_sessions_controller.rb @@ -33,7 +33,8 @@ class UserSessionsController < ApplicationController begin user = User.register(authinfo) rescue => e - Rails.logger.warn e + Rails.logger.warn "User.register error #{e}" + Rails.logger.warn "authinfo was #{authinfo.inspect}" return redirect_to login_failure_url end diff --git a/services/api/app/models/user.rb b/services/api/app/models/user.rb index 310c2ca698..dd447ca51a 100644 --- a/services/api/app/models/user.rb +++ b/services/api/app/models/user.rb @@ -410,10 +410,12 @@ class User < ArvadosModel user = self redirects = 0 while (uuid = user.redirect_to_user_uuid) - user = User.unscoped.find_by_uuid(uuid) - if !user - raise Exception.new("user uuid #{user.uuid} redirects to nonexistent uuid #{uuid}") + break if uuid.empty? + nextuser = User.unscoped.find_by_uuid(uuid) + if !nextuser + raise Exception.new("user uuid #{user.uuid} redirects to nonexistent uuid '#{uuid}'") end + user = nextuser redirects += 1 if redirects > 15 raise "Starting from #{self.uuid} redirect_to_user_uuid exceeded maximum number of redirects"