Skip to content

Commit 1f04981

Browse files
authored
Prevent infinite loop in get_user_frame_and_stacklevel (#1031)
1 parent 341e6ca commit 1f04981

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

logfire/_internal/stack_info.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,11 @@ def get_user_frame_and_stacklevel() -> tuple[FrameType | None, int]:
100100
return frame, stacklevel
101101
frame = frame.f_back
102102
stacklevel += 1
103+
if stacklevel > 10_000: # pragma: no cover
104+
# This is a safety check to prevent infinite recursion in case of a bug,
105+
# as reported in https://github.com/pydantic/logfire/issues/1028.
106+
# It should never happen in practice, but it's good to have a safety net.
107+
break
103108
return None, 0
104109

105110

0 commit comments

Comments
 (0)