Stop reading dates at the first sign the server is unreachable
A window of cells whose thumbnails were cached but whose dates were not sent a header read per cell, and offline each one was three attempts at a 15 s connect timeout: `is_transient` counts a network error as worth retrying, and `read_metadata_only` returned a bare bool that could not say why a read failed. So the grid sat on "reading N dates" for minutes against a server that was not there, and no banner went up, because nothing in that loop ever reported the connection. `read_metadata_only` now returns a `DateRead`: reached, failed, or offline. An offline error is returned on the first attempt rather than retried — a dead server answers the second exactly as the first — while a 423 lock is still retried, which is what the retry was for. The grid's worker stops on it and sends `Offline`, as its fetch loop already did, so the banner goes up and the bar stops. The sweep's lanes stop on it too, one timeout each rather than one per image.
This commit is contained in:
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user