Fd leaks with packed repos
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Dulwich |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Hi.
I have problem with packed repos and count of open files. Size of repo about 15M.
System:
$ lsb_release -d
Description: Ubuntu 10.04 LTS
$ python --version
Python 2.6.5
$ python -c "import dulwich; print dulwich.
(0, 8, 3)
Simple code to reproduce problem:
===
$ cat fd_leak.py
import sys
from dulwich.repo import Repo
def open_repo(path):
return Repo(path)
def get_branches(repo):
refs = repo.refs.keys()
return [x.replace(
repo_path = sys.argv[1]
for x in xrange(10000):
repo = open_repo(
ref = repo["refs/
print get_branches(repo)
input('>')
===
Before execution of the script i have no open files:
$ lsof | grep python | grep "/home/
0
After runing of script:
$ lsof | grep python | grep "/home/
59
$ lsof | grep python | grep "/home/
93
Script waiting for input:
$ lsof | grep python | grep "/home/
54
Full lsof output:
$ lsof | grep python | grep "/home/
python 20258 username mem REG 8,33 14648564 /home/username/
python 20258 username 4r REG 0,114 2473808 14648564 /home/username/
python 20258 username 5r REG 0,114 2473808 14648564 /home/username/
python 20258 username 6r REG 0,114 2473808 14648564 /home/username/
python 20258 username 7r REG 0,114 2473808 14648564 /home/username/
python 20258 username 8r REG 0,114 2473808 14648564 /home/username/
python 20258 username 9r REG 0,114 2473808 14648564 /home/username/
python 20258 username 10r REG 0,114 2473808 14648564 /home/username/
python 20258 username 11r REG 0,114 2473808 14648564 /home/username/
python 20258 username 12r REG 0,114 2473808 14648564 /home/username/
python 20258 username 13r REG 0,114 2473808 14648564 /home/username/
python 20258 username 14r REG 0,114 2473808 14648564 /home/username/
python 20258 username 15r REG 0,114 2473808 14648564 /home/username/
python 20258 username 16r REG 0,114 2473808 14648564 /home/username/
python 20258 username 17r REG 0,114 2473808 14648564 /home/username/
python 20258 username 18r REG 0,114 2473808 14648564 /home/username/
python 20258 username 19r REG 0,114 2473808 14648564 /home/username/
python 20258 username 20r REG 0,114 2473808 14648564 /home/username/
python 20258 username 21r REG 0,114 2473808 14648564 /home/username/
python 20258 username 22r REG 0,114 2473808 14648564 /home/username/
python 20258 username 23r REG 0,114 2473808 14648564 /home/username/
python 20258 username 24r REG 0,114 2473808 14648564 /home/username/
python 20258 username 25r REG 0,114 2473808 14648564 /home/username/
python 20258 username 26r REG 0,114 2473808 14648564 /home/username/
python 20258 username 27r REG 0,114 2473808 14648564 /home/username/
python 20258 username 28r REG 0,114 2473808 14648564 /home/username/
python 20258 username 29r REG 0,114 2473808 14648564 /home/username/
python 20258 username 30r REG 0,114 2473808 14648564 /home/username/
python 20258 username 31r REG 0,114 2473808 14648564 /home/username/
python 20258 username 32r REG 0,114 2473808 14648564 /home/username/
python 20258 username 33r REG 0,114 2473808 14648564 /home/username/
python 20258 username 34r REG 0,114 2473808 14648564 /home/username/
python 20258 username 35r REG 0,114 2473808 14648564 /home/username/
python 20258 username 36r REG 0,114 2473808 14648564 /home/username/
python 20258 username 37r REG 0,114 2473808 14648564 /home/username/
python 20258 username 38r REG 0,114 2473808 14648564 /home/username/
python 20258 arhibot 39r REG 0,114 2473808 14648564 /home/username/
python 20258 username 40r REG 0,114 2473808 14648564 /home/username/
python 20258 username 41r REG 0,114 2473808 14648564 /home/username/
python 20258 username 109r REG 0,114 2473808 14648564 /home/username/
python 20258 username 110r REG 0,114 2473808 14648564 /home/username/
python 20258 username 111r REG 0,114 2473808 14648564 /home/username/
python 20258 username 112r REG 0,114 2473808 14648564 /home/username/
python 20258 username 113r REG 0,114 2473808 14648564 /home/username/
python 20258 username 114r REG 0,114 2473808 14648564 /home/username/
python 20258 username 115r REG 0,114 2473808 14648564 /home/username/
python 20258 username 116r REG 0,114 2473808 14648564 /home/username/
python 20258 username 120r REG 0,114 2473808 14648564 /home/username/
python 20258 username 121r REG 0,114 2473808 14648564 /home/username/
python 20258 username 122r REG 0,114 2473808 14648564 /home/username/
python 20258 username 123r REG 0,114 2473808 14648564 /home/username/
python 20258 username 124r REG 0,114 2473808 14648564 /home/username/
python 20258 username 125r REG 0,114 2473808 14648564 /home/username/
python 20258 username 126r REG 0,114 2473808 14648564 /home/username/
Changed in dulwich: | |
status: | New → Incomplete |
status: | Incomplete → Fix Released |
FYI: It's mmap idx files but don't unmap it.