On Wed, Mar 09, 2022 at 12:03:11PM -0800, Junio C Hamano wrote: > Patrick Steinhardt writes: > > >> If the user cares about fsynching loose object files in the right > >> way, we shouldn't leave loose ref files not following the safe > >> safety level, regardless of how this new core.fsync knobs would look > >> like. > >> > >> I think we three are in agreement on that. > > > > Is there anything I can specifically do to help out with this topic? We > > have again hit data loss in production because we don't sync loose refs > > to disk before renaming them into place, so I'd really love to sort out > > this issue somehow so that I can revive my patch series which fixes the > > known repository corruption [1]. > > How about doing a series to unconditionally sync loose ref creation > and modification? > > Alternatively, we could link it to the existing configuration to > control synching of object files. > > I do not think core.fsyncObjectFiles having "object" in its name is > a good reason not to think those who set it to true only care about > the loose object files and nothing else. It is more sensible to > consider that those who set it to true cares about the repository > integrity more than those who set it to false, I would think. > > But that (i.e. doing it conditionally and choose which knob to use) > is one extra thing that needs justification, so starting from > unconditional fsync_or_die() may be the best way to ease it in. I'd be happy to revive my old patch series, but this kind of depends on where we're standing with the other patch series by Neeraj. If you say that we'll likely not land his patch series for the upcoming release, but a small patch series which only starts to sync loose refs may have a chance, then I'd like to go down that path as a stop-gap solution. Otherwise it probably wouldn't make a lot of sense. Patrick