In issue 807059, we saw a single png -> webp conversion (star_gray.png) cause a fairly significant crash that was specific to Samsung Galaxy S5 devices running L.
We should find a way to prevent these in the future.
First step would likely be to try to repro this by flashing a Nexus device with different versions of some system libraries.
Copying over some of jzern's comments from issue 807059:
> I'm just speculating, but we could be hitting other skia wrapper (or its interaction with libwebp) bugs. This could vary release to release as with encoder changes the output file may differ hiding e.g., incremental decoder issues.
An issue with the system libs on L isn't something we do much about, except as suggested avoiding generating webp in this case. Being more tolerant of an error would be another option, but I don't know how pleasant that would be on the user side.
Note this could surface in other assets; in the backtrace in #1 I see 0x7f020267 referenced (recent_phone.webp), but that logcat does show the decode error for star_gray with no mention of recent_phone.webp.
> dwebp is available and could be used as an in-tree validation step, but cwebp producing a file that the same version couldn't decode would be highly unlikely unless there happened to be a compiler bug. That also doesn't do anything for the target platform.
Without knowing the exact cause of the decode failure it could be a handful of decode bugs in earlier versions (there's one that we knowingly don't allow the encoder to generate, others are compiler, incremental or general decode related). If we were able to isolate the cause we might be able to have a reference decoder based on the older version that uses the same logic to verify the results.
Comment 1 by twelling...@chromium.org
, Feb 22 2018Owner: jzern@chromium.org
Status: Assigned (was: Available)