git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* repo consistency under crashes and power failures?
@ 2013-07-15 17:48 Greg Troxel
  2013-07-15 17:51 ` Jonathan Nieder
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Greg Troxel @ 2013-07-15 17:48 UTC (permalink / raw)
  To: git

[-- Attachment #1: Type: text/plain, Size: 998 bytes --]


Clearly there is the possibility of creating a corrupt repository when
receiving objects and updating refs, if a crash or power failure causes
data not to get written to disk but that data is pointed to.  Journaling
mitigates this, but I'd argue that programs should function safely with
only the guarantees from POSIX.

I am curious if anyone has actual experiences to share, either

  a report of corruption after a crash (where corruption means that
  either 1) git fsck reports worse than dangling objects or 2) some ref
  did not either point to the old place or the new place)

  experiments intended to provoke corruption, like dropping power during
  pushes, or forced panics in the kernel due to timers, etc.

Alternatively, is there somewhere a first-principles analysis vs POSIX
specs (such as fsyncing object files before updating refs to point to
them, which I realize has performance negatives)?

(I have not done experiments, but have observed no corruption.)

    Thanks,
    Greg

[-- Attachment #2: Type: application/pgp-signature, Size: 194 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-07-27  3:10 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-15 17:48 repo consistency under crashes and power failures? Greg Troxel
2013-07-15 17:51 ` Jonathan Nieder
2013-07-16  6:17 ` Johannes Sixt
2013-07-27  3:10 ` Jeff King

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).