Re: fact-import: failed to apply delta
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 10, 2009, 22:30 UTC
- Message-ID
- <7vprhqkjrr.fsf@gitster.siamese.dyndns.org>
- In-Reply-To
- <20090210213612.GW30949@spearce.org>
"Shawn O. Pearce" <spearce@spearce.org> writes:
Show 20 quoted lines
> Daniel Barkalow <barkalow@iabervon.org> wrote: >> On Tue, 10 Feb 2009, Shawn O. Pearce wrote: >> > >> > We should dump the cached_objects table in sha1_file.c during >> > a checkpoint in fast-import. >> >> No, that one's keyed by sha1, and doesn't get collisions; it's the >> delta_base_cache that's the issue; it's keyed by struct packed_git * and >> offset. > > Uh, yea, I realize that after I sent the message. Does this patch > fix it for you? > > --8<-- > Clear the delta base cache during fast-import checkpoint > > Otherwise we may reuse the same memory address for a totally > different "struct packed_git", and a previously cached object from > the prior occupant might be returned when trying to unpack an object > from the new pack.
Can this be made more automatic?
For example if you do this every time a new pack is installed to sha1_file(), like in add_packed_git() perhaps, wouldn't that be much less error prone?