Skip to content

Commit 69f20ac

Browse files
cursoragentarmenzg
andcommitted
fix(logs): Reset autofetch timer and duration per query, add request limit
- Reset autoFetchStartTime and autoFetchDuration when queryKeyWithInfinite changes - Add maxAutoFetchRequests counter to prevent API flooding - Reset request counter in resumeAutoFetch Fixes: - Bug 1: Autofetch timer now resets for each new query instead of using mount time - Bug 2: Resume duration no longer leaks into later searches - Bug 3: Request count limit prevents flooding API with rapid requests Co-authored-by: Armen Zambrano G. <armenzg@users.noreply.github.com>
1 parent 1662cb0 commit 69f20ac

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

static/app/views/explore/logs/useLogsQuery.tsx

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -694,13 +694,24 @@ export function useInfiniteLogsQuery({
694694
const [autoFetchDuration, setAutoFetchDuration] = useState(
695695
FLEX_TIME_INITIAL_SEARCH_DURATION_MS
696696
);
697+
const [autoFetchRequestCount, setAutoFetchRequestCount] = useState(0);
698+
const maxAutoFetchRequests = 50;
699+
700+
useEffect(() => {
701+
setAutoFetchStartTime(Date.now());
702+
setAutoFetchDuration(FLEX_TIME_INITIAL_SEARCH_DURATION_MS);
703+
setAutoFetchRequestCount(0);
704+
}, [queryKeyWithInfinite]);
705+
697706
const canAutoFetchNextPage =
698707
!!highFidelity &&
699708
hasNextPage &&
700709
nextPageHasData &&
701710
(lastPageLength === 0 || _data.length < limit);
702711
const shouldAutoFetchNextPage =
703-
canAutoFetchNextPage && Date.now() - autoFetchStartTime < autoFetchDuration;
712+
canAutoFetchNextPage &&
713+
Date.now() - autoFetchStartTime < autoFetchDuration &&
714+
autoFetchRequestCount < maxAutoFetchRequests;
704715

705716
const autoFetchPageCount = useRef(0);
706717
const prevShouldAutoFetch = useRef(false);
@@ -735,6 +746,7 @@ export function useInfiniteLogsQuery({
735746
}
736747

737748
autoFetchPageCount.current += 1;
749+
setAutoFetchRequestCount(prev => prev + 1);
738750
_fetchNextPage();
739751
}, [shouldAutoFetchNextPage, isFetchingNextPage, _fetchNextPage, nextPageCursor]);
740752

@@ -770,6 +782,7 @@ export function useInfiniteLogsQuery({
770782
resumeAutoFetch: () => {
771783
setAutoFetchStartTime(Date.now());
772784
setAutoFetchDuration(FLEX_TIME_RESUME_SEARCH_DURATION_MS);
785+
setAutoFetchRequestCount(0);
773786
},
774787
dataScanned,
775788
bytesScanned: totalBytesScanned,

0 commit comments

Comments
 (0)