Skip to content

fix: useEffectのcleanup未登録によるメモリリーク (generating page) #5

@kwrkb

Description

@kwrkb

概要

app/gallery/[id]/generating/page.tsxuseEffect 内で params.then() を使っているため、cleanup関数が useEffect に返されず、ページ離脱時にポーリング(setInterval)が停止しない。

再現箇所

app/gallery/[id]/generating/page.tsx:36-71

useEffect(() => {
  params.then(({ id }) => {
    // ...
    pollInterval = setInterval(checkStatus, 2000);
    return () => clearInterval(pollInterval); // ← useEffectのreturnとして登録されない
  });
}, [params, router]);

影響

  • メモリリーク: ページ離脱後もポーリングが継続
  • 不要なDBクエリが発生し続ける

対策案

  • React.use() でparamsを同期的に解決する
  • または ref にintervalを保持し、useEffectの直接returnでクリーンアップする

優先度

Critical

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions