From f60af3249036eda7318d7259a0854f20fd452f64 Mon Sep 17 00:00:00 2001 From: Eugene Stepanov Date: Wed, 29 Jan 2020 15:55:29 +0300 Subject: [PATCH] Circular references processor should not change user data I understand that it's not memory-efficient, but you are working with business rules which might rely on references. Consider opting out this behavior, or display a warning somewhere, and this behavior should be documented. I spent 6 hours of debugging code because of the sentry event. Imagine my feelings when I figure out it's caused by raven. --- lib/raven/processor/removecircularreferences.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/raven/processor/removecircularreferences.rb b/lib/raven/processor/removecircularreferences.rb index 0f6acaf34..6fc580663 100644 --- a/lib/raven/processor/removecircularreferences.rb +++ b/lib/raven/processor/removecircularreferences.rb @@ -6,9 +6,9 @@ def process(value, visited = []) case value when Hash - !value.frozen? ? value.merge!(value) { |_, v| process v, visited } : value.merge(value) { |_, v| process v, visited } + value.merge(value) { |_, v| process v, visited } when Array - !value.frozen? ? value.map! { |v| process v, visited } : value.map { |v| process v, visited } + value.map { |v| process v, visited } else value end