Homestyx hydra
Diffusion hydra f1b054a20fd5

Correct the interaction between overheating and offset-based paging

Description

Correct the interaction between overheating and offset-based paging

Summary:
Ref T13386. If you issue differential.query with a large offset (like 3000), it can overheat regardless of policy filtering and fail with a nonsensical error message.

This is because the overheating limit is based only on the query limit, not on the offset.

For example, querying for "limit = 100" will never examine more than 1,100 rows, so a query with "limit = 100, offset = 3000" will always fail (provided there are at least that many revisions).

Not all numbers work like you might expect them to becuase there's also a 1024-row fetch window, but basically small limits plus big offsets always fail.

Test Plan: Artificially reduced the internal window size from 1024 to 5, then ran differential.query with offset=50 and limit=3. Before: overheated with weird error message. After: clean result.

Maniphest Tasks: T13386

Differential Revision: https://secure.phabricator.com/D20728

Details

Provenance
epriestleyAuthored on Aug 21 2019, 10:54 PM
sirocylPushed on Oct 16 2024, 5:49 AM
Parents
R1:5741514aeb5b: When a client submits an overlong "sourcePath", truncate it and continue
Branches
Unknown
Tags
Unknown

Event Timeline