From: Junio C Hamano Date: Tue, 30 Jul 2013 15:39:48 GMT Subject: Re: [PATCH] sha1_file: introduce close_one_pack() to close packs on fd pressure Message-ID: <7v61vsxdiz.fsf@alter.siamese.dyndns.org> In-Reply-To: <1375157113-608-1-git-send-email-bcasey@nvidia.com> Brandon Casey writes: > From: Brandon Casey > > 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...