Re: [PATCH] sha1_file: introduce close_one_pack() to close packs on fd pressure
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jul 30, 2013, 15:39 UTC
- Message-ID
- <7v61vsxdiz.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <1375157113-608-1-git-send-email-bcasey@nvidia.com>
Brandon Casey <bcasey@nvidia.com> writes:
Show 10 quoted lines
> From: Brandon Casey <drafnel@gmail.com> > > When the number of open packs exceeds pack_max_fds, unuse_one_window() > is called repeatedly to attempt to release the least-recently-used > pack windows, which, as a side-effect, will also close a pack file > after closing its last open window. If a pack file has been opened, > but no windows have been allocated into it, it will never be selected > by unuse_one_window() and hence its file descriptor will not be > closed. When this happens, git may exceed the number of file > descriptors permitted by the system.
An interesting find. The patch from a cursory look reads OK.
Thanks.
> This is not likely to occur during upload-pack since upload-pack > reads each object from the pack so that it can peel tags and > advertise the exposed object.
Another interesting find. Perhaps there is a room for improvements, as packed-refs file knows what objects the tags peel to? I vaguely recall Peff was actively reducing the object access during ref enumeration in not so distant past...