From 2410d4ae4e89f39c41e916ff999fa1f817a95b5a Mon Sep 17 00:00:00 2001 From: potter Date: Wed, 12 Feb 2025 16:09:36 +0900 Subject: [PATCH 1/5] :wrench: Insert digest_backtrace to fingerprint after initialize MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit rails 7.1부터 ActionView::Template::Error에 backtrace 메소드가 생김. 이로 인해 initialize에 backtrace 메소드를 호출하는 digest_backtrace가 문제가 되어 이렇게 수정함 --- lib/coaster/core_ext/standard_error.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/coaster/core_ext/standard_error.rb b/lib/coaster/core_ext/standard_error.rb index 3f64076..7937d71 100644 --- a/lib/coaster/core_ext/standard_error.rb +++ b/lib/coaster/core_ext/standard_error.rb @@ -63,7 +63,8 @@ def after_logging_blocks end end - attr_accessor :tags, :level, :tkey, :fingerprint + attr_accessor :tags, :level, :tkey + attr_writer :fingerprint def initialize(message = nil, cause = $!) @fingerprint = Coaster.default_fingerprint.dup @@ -122,11 +123,12 @@ def initialize(message = nil, cause = $!) @digest_message = self.class.digest_message(msg) set_backtrace(message.backtrace) if message.is_a?(Exception) @fingerprint << @digest_message - @fingerprint << digest_backtrace @fingerprint.compact! self end + # @return [Array, NilClass] fingerprint + def fingerprint; @fingerprint.is_a?(Array) && @fingerprint + [digest_backtrace] end def safe_message; message || '' end def digest_message; @digest_message ||= self.class.digest_message(message) end def digest_backtrace; @digest_backtrace ||= backtrace ? Digest::MD5.hexdigest(cleaned_backtrace.join("\n"))[0...8] : nil end From ad408fd86964716b944ca5ba0e98b5f3aaa253ca Mon Sep 17 00:00:00 2001 From: potter Date: Wed, 12 Feb 2025 16:12:19 +0900 Subject: [PATCH 2/5] :arrow_up: Bump up to 1.4.24 --- lib/coaster/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/coaster/version.rb b/lib/coaster/version.rb index 98ec8b3..fc794a3 100644 --- a/lib/coaster/version.rb +++ b/lib/coaster/version.rb @@ -1,3 +1,3 @@ module Coaster - VERSION = '1.4.23' + VERSION = '1.4.24' end From c7d7028611f12075b59effda868b82264c41b323 Mon Sep 17 00:00:00 2001 From: potter Date: Wed, 12 Feb 2025 16:14:42 +0900 Subject: [PATCH 3/5] Update Gemfile.lock --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index a724551..caff56a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - coaster (1.4.22) + coaster (1.4.24) activesupport (>= 7.0.7) attr_extras (~> 5.2) i18n (>= 1.0) @@ -137,7 +137,7 @@ GEM nokogiri (1.16.5) mini_portile2 (~> 2.8.2) racc (~> 1.4) - oj (3.16.7) + oj (3.16.9) bigdecimal (>= 3.0) ostruct (>= 0.2) ostruct (0.6.1) From f10219fb9170f4f0b09a2064afcd2db6ca231b26 Mon Sep 17 00:00:00 2001 From: buzz Date: Wed, 12 Feb 2025 16:31:59 +0900 Subject: [PATCH 4/5] fix test --- lib/coaster/core_ext/standard_error.rb | 1 + test/test_standard_error.rb | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/coaster/core_ext/standard_error.rb b/lib/coaster/core_ext/standard_error.rb index 7937d71..9edfa8e 100644 --- a/lib/coaster/core_ext/standard_error.rb +++ b/lib/coaster/core_ext/standard_error.rb @@ -234,6 +234,7 @@ def to_inspection_hash(options: {}, _h: {}.with_indifferent_access, _depth: 0) http_status: http_status, message: message, instance_variables: {}.with_indifferent_access ) + digest_backtrace # for @digest_backtrace instance_variables.sort.each do |var| if inspection_vars.include?(var) val = instance_variable_get(var) diff --git a/test/test_standard_error.rb b/test/test_standard_error.rb index e5660ea..090112f 100644 --- a/test/test_standard_error.rb +++ b/test/test_standard_error.rb @@ -213,7 +213,7 @@ def test_to_detail MESSAGE: Test example error (Coaster::TestStandardError::ExampleError) cause{Test sample error (Coaster::TestStandardError::SampleError)} @attributes: {\"frog\"=>\"rams\", \"wat\"=>\"cha\"} @coaster: true - @digest_backtrace: NilClass + @digest_backtrace: #{e.digest_backtrace} @digest_message: a8c7c1 @fingerprint: ["a8c7c1"] @ins_var: [\"Coaster::TestStandardError::SampleError\", {\"h\"=>1}] @@ -231,7 +231,7 @@ def test_to_detail MESSAGE: Test sample error (Coaster::TestStandardError::SampleError) @attributes: {"frog"=>"rams"} @coaster: true - @digest_backtrace: NilClass + @digest_backtrace: #{e.cause.digest_backtrace} @digest_message: cbe233 @fingerprint: ["cbe233"] @level: "error" From f63045d987c283b28ac0e8a184ff6a8d9808d00a Mon Sep 17 00:00:00 2001 From: buzz Date: Wed, 12 Feb 2025 16:33:03 +0900 Subject: [PATCH 5/5] bump version --- lib/coaster/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/coaster/version.rb b/lib/coaster/version.rb index fc794a3..db8b633 100644 --- a/lib/coaster/version.rb +++ b/lib/coaster/version.rb @@ -1,3 +1,3 @@ module Coaster - VERSION = '1.4.24' + VERSION = '1.4.25' end