Skip to content

A visitor waits for a record whose bytes are not on the server yet - #1334

Merged
noha merged 1 commit into
mainfrom
a-visitor-waits-for-a-record-not-yet-written
Oct 9, 2026
Merged

noha merged 1 commit into
mainfrom
a-visitor-waits-for-a-record-not-yet-written

Conversation

@noha

@noha noha commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

The metabase check of 674726be, with #1332 in place, found 1:2168 at position 12324667346 although the objects file, opened anew, ended at 12324316892: the writer's index had reached the NFS server before its records. Over NFS the writer's bytes reach the server in no order between files, and opening the file again does not help there; only time does.

SoilVisitor>>reread:recordAt:in: - in the error path of #recordAt: only - opens the objects file anew and reads again, and while the record is still past the end of the file of a read-only database it waits (#rereadDelays, half a minute in all) and tries again. A record inside the file is damaged, not late, and is given up at once, as is any record of a writable database.

The metabase check of 674726be, with #1332 in place, found 1:2168 at position
12324667346 although the objects file, opened anew, ended at 12324316892: the
writer's index had reached the NFS server before its records, as writeback
keeps no order between files. Opening the file again does not help there;
only time does.

So the rereading moves out of SoilVisitor, where #1332 put it for every reader
and every failed read, into SoilTrackingVisitor>>visitRecordAt:, which catches
the SoilUnreadableRecord anyway. It reads again only a record that is late
(#isLate:): of a read-only database, at or past the size of the objects file
the reader knows. It opens the file anew, reads at once, and then after the
pauses of #rereadDelays, half a minute in all. A record inside the file is
damaged and named at once. SoilVisitor>>recordAt: names an unreadable record
again, as before #1332.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@noha
noha force-pushed the a-visitor-waits-for-a-record-not-yet-written branch from bc88c01 to aa0b86a Compare October 9, 2026 19:15
@noha
noha merged commit 37a72be into main Oct 9, 2026
5 checks passed
@noha
noha deleted the a-visitor-waits-for-a-record-not-yet-written branch October 10, 2026 14:50
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.

1 participant