Mark a file the decoder cannot open, so the sweep stops fetching it

A decode failure in the face sweep was counted, logged at debug where
nobody saw it, and left unmarked — so the next pass fetched the same
file and failed the same way. For the 521 MB panorama behind rawler's
panic that was half a gigabyte per sweep, on a tablet. It is now marked
examined with nothing found and a zero edge, which is what a later "try
again with a better decoder" pass would select on, and the warning
names the file. The failure count is unchanged: it did fail.
This commit is contained in:
2026-09-19 10:45:08 +02:00
parent c0b1e78f7c
commit f8addbee53
2 changed files with 42 additions and 19 deletions
+18 -18
View File
File diff suppressed because one or more lines are too long
+24 -1
View File
@@ -4298,7 +4298,30 @@ pub fn spawn_face_sweep(
}
}
Err(e) => {
log::debug!("face sweep: {}: {e}", req.path);
// A file the decoder cannot open fails the same
// way on every pass, and every pass fetched it
// first: a 521 MB panorama the decoder refuses
// was downloaded once per sweep, on a tablet,
// and reported at debug level where nobody saw
// it. It is marked examined with nothing found,
// so the next pass does not fetch it again; the
// zero edge is what says why, and is what a
// later "try again with a better decoder" pass
// would select on. The count still says it
// failed, because it did.
log::warn!("face sweep: {}: {e}", req.path);
if let Err(e) = dr_catalog::faces::record_detections(
catalog.connection(),
dr_types::ImageId(req.image_id as u64),
&model_id,
0,
&[],
) {
log::warn!(
"face sweep: marking {} as unreadable: {e}",
req.image_id
);
}
lane_failed += 1;
}
}