skip column cache in unusual cases

just in case we're trying to log a redis error. blowing the stack
isn't cool

Change-Id: I396584bc45f36089f2219ee5215745fcf6444ddc
Reviewed-on: https://gerrit.instructure.com/160951
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
This commit is contained in:
James Williams 2018-08-15 14:21:57 -06:00 committed by Cody Cutrer
parent 4cb1a8f8ef
commit f6ce48e161
1 changed files with 14 additions and 1 deletions

View File

@ -261,8 +261,21 @@ module PostgreSQLAdapterExtensions
end
def column_definitions(table_name)
MultiCache.fetch(["schema", table_name]) do
return super if @nested_column_definitions
@nested_column_definitions = true
begin
got_inside = false
MultiCache.fetch(["schema", table_name]) do
got_inside = true
super
end
rescue
raise if got_inside
# we never got inside, so something is wrong with the cache,
# just ignore it
super
ensure
@nested_column_definitions = false
end
end
end