Open
Description
We discovered in #2846 that if an app opts into complete file protection with NSFileProtectionComplete
, the background GC task can crash the process if it runs while the filesystem is locked. The issue is that GC generates LevelDB commits which modify the filesystem, and while file protection is active, LevelDB sees these as I/O errors.
As file protection becomes active, users can currently disable listeners and stop sending writes, but there's nothing they can currently do about the GC background task. This FR is a request to have the GC task check whether or not protection is enabled, and if so, treat that GC cycle as a no-op.
Googlers see b/147764079 for more information.