Skip to content

A jump left on its way is written as he leaves; the scrubber test waits in reads (#309) - #335

Open
arimendelow wants to merge 4 commits into
mainfrom
gf-309-scrubber-jump
Open

arimendelow wants to merge 4 commits into
mainfrom
gf-309-scrubber-jump

Conversation

@arimendelow

Copy link
Copy Markdown
Contributor

Cause, two faults:

  • App: leaving with a jump still on its way logged "its target kept" and then wrote it only after reading the page. The jump's chapter, still loading, held that read until iOS had ended Gatefold, so the reopen came back at the book's start. Run 43277705735: "leaving a jump still on its way; its target kept at … 0.62883", no place write after it, then "place read: opening on none".
  • Test: testAScrubberJumpKeepsThePlace read the page it settled on 20 s plus sleep(2) after the drag. In that run the jump's chapter was still loading 25 s after the drag (load average 528), so the test read the page from before the jump and failed at :72.

Fix:

Proof:

  • Probes, each run once, only these two tests on iPad:
    • Red, the at-once write removed: run 43313011769. Leaving logged the target kept, the held write never landed, and the reopen read "opening on none". The test failed on the reopen showing the book's start, which has no words, for 200 reads after ready. testAScrubberJumpKeepsThePlace passed, the jump landing after 78 reads.
    • Green, this fix: run 43313016177. "the jump's target written on leaving, at once, at 0.628827", reopen "opening on … total 0.62883"; both tests passed, the jump landing after 24 reads.
    • Both runs are red only on the offline CI scripts check, which objects to the probe's trimmed workflow.
  • Unit tests: two new LeavingAScrubberJumpOnItsWayTests (inactive and close, the write's wait held) fail without the fix and pass with it; the 19 leave tests pass.

An independent review found no blocker. Its should-fixes are in: the landing is judged with the veil down, and the helper is placed away from #325's so the two merge cleanly. When #325 lands, its writeContentsTargetAtOnce and this writeJumpTargetAtOnce could become one helper.

Fixes #309

…ts in reads (#309)

Leaving with a scrubber jump still on its way logged its target as kept, then
wrote it only after reading the page, which the jump's chapter still loading
held until iOS had ended Gatefold: the reopen came back at the book's start
(run 43277705735). The target is now written at once, in leaving's own turn,
as a turn is (#301); the ordinary write still follows.

-GatefoldHoldLeaveWrites holds that ordinary write for good, so the scrubber
leave test proves the at-once write alone reaches the reopen.

testAScrubberJumpKeepsThePlace read the page 22 s after the drag on wall time,
while the jump's chapter was still loading. It now waits for the page to move
in reads, and reads the page left and the reopen with #315's settle, moved to
a shared PageReads.
…write retires older writes and sits apart from #325's (#309)

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

A scrubber jump sometimes doesn't move the page (testAScrubberJumpKeepsThePlace :72)

1 participant