Skip to content

paginationでnext_cursorが進まない場合に無限ループする #13

Description

@mimo-3

概要

pagination responseが has_more=true なのに next_cursor が欠落、または前回と同じ値の場合、cursorの進行を検証せず同じrequestを繰り返します。

該当箇所

  • src/client/pagination.rs:71-84(POST)
  • src/client/pagination.rs:125-137(GET)

影響

API異常、schema変更、proxy/cache不具合などでCLIが終了せず、request送信とメモリ消費を続ける可能性があります。明示的なtimeoutや最大page数もありません。

修正案

  • has_more=true かつ next_cursor=None をtyped errorにする
  • 新cursorが直前cursorと同じ場合もerrorにする
  • 重複cursorをHashSetで検出する
  • 防御的な最大page数またはrequest budgetを追加する

完了条件

  • cursor欠落・同一・循環時に有限時間でerror終了する
  • 正常paginationは従来どおり完走する
  • GET/POST双方に異常responseのテストがある

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions