Skip to content

Commit bed583f

Browse files
committed
Don't report empty stacktraces
1 parent a3ae3c9 commit bed583f

File tree

3 files changed

+16
-9
lines changed

3 files changed

+16
-9
lines changed

lib/sentry/event.ex

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -418,15 +418,10 @@ defmodule Sentry.Event do
418418

419419
defp coerce_exception(exception, stacktrace_or_nil, _message, handled?)
420420
when is_exception(exception) do
421-
stacktrace =
422-
if is_list(stacktrace_or_nil) do
423-
%Interfaces.Stacktrace{frames: stacktrace_to_frames(stacktrace_or_nil)}
424-
end
425-
426421
%Interfaces.Exception{
427422
type: inspect(exception.__struct__),
428423
value: Exception.message(exception),
429-
stacktrace: stacktrace,
424+
stacktrace: coerce_stacktrace(stacktrace_or_nil),
430425
mechanism: %Interfaces.Exception.Mechanism{handled: handled?}
431426
}
432427
end
@@ -441,7 +436,7 @@ defmodule Sentry.Event do
441436
defp add_thread_with_stacktrace(%__MODULE__{} = event, stacktrace) when is_list(stacktrace) do
442437
thread = %Interfaces.Thread{
443438
id: UUID.uuid4_hex(),
444-
stacktrace: %Interfaces.Stacktrace{frames: stacktrace_to_frames(stacktrace)}
439+
stacktrace: coerce_stacktrace(stacktrace)
445440
}
446441

447442
%__MODULE__{event | threads: [thread]}
@@ -464,6 +459,17 @@ defmodule Sentry.Event do
464459
|> create_event()
465460
end
466461

462+
defp coerce_stacktrace(nil) do
463+
nil
464+
end
465+
466+
defp coerce_stacktrace(stacktrace) when is_list(stacktrace) do
467+
case stacktrace_to_frames(stacktrace) do
468+
[] -> nil
469+
frames -> %Interfaces.Stacktrace{frames: frames}
470+
end
471+
end
472+
467473
defp stacktrace_to_frames(stacktrace) when is_list(stacktrace) do
468474
in_app_module_allow_list = Config.in_app_module_allow_list()
469475

test/logger_backend_test.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ defmodule Sentry.LoggerBackendTest do
4343
assert event.message.formatted =~ ~s<** (stop) bad return value: "I am throwing"\n>
4444
assert event.message.formatted =~ ~s<Last message: {:"$gen_cast",>
4545
assert event.message.formatted =~ ~s<State: []>
46-
assert thread.stacktrace.frames == []
46+
assert thread.stacktrace == nil
4747
end
4848

4949
test "abnormal GenServer exit is reported" do

test/sentry/logger_handler_test.exs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,8 @@ defmodule Sentry.LoggerHandlerTest do
184184

185185
if System.otp_release() >= "26" do
186186
assert [] = event.exception
187-
assert [_thread] = event.threads
187+
assert [thread] = event.threads
188+
assert thread.stacktrace == nil
188189
assert event.extra.genserver_state == ":no_state"
189190
assert event.extra.last_message =~ "{:run, #Function"
190191
end

0 commit comments

Comments
 (0)