All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Shawn O. Pearce" <spearce@spearce.org>
To: Robin Rosenberg <robin.rosenberg@dewire.com>
Cc: git@vger.kernel.org
Subject: [JGIT PATCH 0/5] Make ObjectLoader safer during repack
Date: Wed, 22 Apr 2009 20:36:18 -0700	[thread overview]
Message-ID: <1240457783-21434-1-git-send-email-spearce@spearce.org> (raw)

This is a start to fixing the ObjectLoader save during repack
problems I talked about yesterday.  It applies on top of the
WindowedFile+PackFile patch I sent earlier today.

Patch 1 and 2 are trivial.

Patch 3 fixes the broken 10/10 test case I raised yesterday.

Patch 4 introduces that test case.

Patch 5 starts to fix PackWriter to be safe during repack.
Its still a bit iffy.  The basic logic here is sound, but I'm more
worried about someone else calling PackFile.close() and closing the
underlying RandomFile while we are otherwise accessing the file
during the copyRaw in PackWriter.  I *think* its impossible for
that to occur, but I haven't proven it to myself yet, and its late,
so this one is RFC for now.

Shawn O. Pearce (5):
  Remove throws IOException from UnpackedObjectLoader.getCachedBytes
  Add missing @Override annotations to UnpackedObjectLoader
  Fully materialize an ObjectLoader before returning it from
    ObjectDatabase
  Test that ObjectLoader stays valid across repacks
  Teach PackWriter to recover from removed/replaced packs

 .../org/spearce/jgit/lib/ConcurrentRepackTest.java |   40 +++++++
 .../jgit/lib/DeltaOfsPackedObjectLoader.java       |    7 +-
 .../spearce/jgit/lib/DeltaPackedObjectLoader.java  |   41 +++----
 .../jgit/lib/DeltaRefPackedObjectLoader.java       |    9 +-
 .../src/org/spearce/jgit/lib/ObjectDirectory.java  |    3 +-
 .../src/org/spearce/jgit/lib/ObjectLoader.java     |   23 +---
 .../src/org/spearce/jgit/lib/PackFile.java         |   14 +-
 .../src/org/spearce/jgit/lib/PackWriter.java       |  118 +++++++++++++-------
 .../org/spearce/jgit/lib/PackedObjectLoader.java   |   78 +++++++++++--
 .../org/spearce/jgit/lib/UnpackedObjectLoader.java |    4 +-
 .../spearce/jgit/lib/WholePackedObjectLoader.java  |   21 ++--
 .../src/org/spearce/jgit/lib/WindowCache.java      |   59 +++++++----
 12 files changed, 280 insertions(+), 137 deletions(-)

             reply	other threads:[~2009-04-23  3:38 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-23  3:36 Shawn O. Pearce [this message]
2009-04-23  3:36 ` [JGIT PATCH 1/5] Remove throws IOException from UnpackedObjectLoader.getCachedBytes Shawn O. Pearce
2009-04-23  3:36   ` [JGIT PATCH 2/5] Add missing @Override annotations to UnpackedObjectLoader Shawn O. Pearce
2009-04-23  3:36     ` [JGIT PATCH 3/5] Fully materialize an ObjectLoader before returning it from ObjectDatabase Shawn O. Pearce
2009-04-23  3:36       ` [JGIT PATCH 4/5] Test that ObjectLoader stays valid across repacks Shawn O. Pearce
2009-04-23  3:36         ` [JGIT RFC PATCH 5/5] Teach PackWriter to recover from removed/replaced packs Shawn O. Pearce

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1240457783-21434-1-git-send-email-spearce@spearce.org \
    --to=spearce@spearce.org \
    --cc=git@vger.kernel.org \
    --cc=robin.rosenberg@dewire.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.