git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[JGIT PATCH 0/5] Make ObjectLoader safer during repack

From
Shawn O. Pearce <spearce@spearce.org>
Date
Apr 23, 2009, 03:36 UTC
Message-ID
<1240457783-21434-1-git-send-email-spearce@spearce.org>

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(-)
Next: Shawn O. Pearce
Message 1 of 6 in “Make ObjectLoader safer during repack”
  1. 0/5 Make ObjectLoader safer during repackShawn O. Pearce, Apr 23, 2009
  2. 1/5 Remove throws IOException from UnpackedObjectLoader.getCachedBytesShawn O. Pearce, Apr 23, 2009
  3. 2/5 Add missing @Override annotations to UnpackedObjectLoaderShawn O. Pearce, Apr 23, 2009
  4. 3/5 Fully materialize an ObjectLoader before returning it from ObjectDatabaseShawn O. Pearce, Apr 23, 2009
  5. 4/5 Test that ObjectLoader stays valid across repacksShawn O. Pearce, Apr 23, 2009
  6. 5/5 Teach PackWriter to recover from removed/replaced packsShawn O. Pearce, Apr 23, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.