Opened 10 years ago
Last modified 10 years ago
#836 new defect
bitten-slave triggers git repository accesses that stay open forever
Reported by: | Martin Schulze <spam.martin.schulze@…> | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | 0.7 |
Component: | Trac plugin | Version: | dev |
Keywords: | Cc: | spam.martin.schulze@… | |
Operating System: | Linux |
Description
I recently noticed that my server started to slow down and on investigation found that my httpd process had many childprocesses like these:
/usr/bin/git --git-dir=/var/trac/git log --pretty=format:%n%H --name-status a8468e820855db3bef663321b0e4ce315351bfed -- /usr/bin/git --git-dir=/var/trac/git log --pretty=format:%n%H --name-status 192de0611cf3000e74481fb5bbce53407529153e -- /usr/bin/git --git-dir=/var/trac/git log --pretty=format:%n%H --name-status a8468e820855db3bef663321b0e4ce315351bfed -- /usr/bin/git --git-dir=/var/trac/git log --pretty=format:%n%H --name-status 192de0611cf3000e74481fb5bbce53407529153e --
Some testing showed that each visit of a bitten-slave to my server adds these 4 entries (two of which are obviously duplicate) which reference the last two commits in my repository (they both have been built successfully in two distinct build configurations so I assume that the references are to the last two (successfully) built changesets per build configuration).
The problem is that these processes don't go away and accumulate over time, finally leading to a system that is very slow because it is swapping.
I was not able to pin down the origin of the problem as I have several recent changes on the system (other linux distribution, git updates, enabled bitten-slave, bitten version update). However, I am sure that this was no problem about half a year ago.
Attachments (0)
Change History (3)
comment:1 Changed 10 years ago by Martin Schulze <spam.martin.schulze@…>
- Cc spam.martin.schulze@… added
comment:2 Changed 10 years ago by anders@…
comment:3 Changed 10 years ago by jomae
That's a Trac issue, trac:#11973. Fixed in trac:milestone:1.0.5.
I think this is a problem with the Trac Git? plugin. I have seen it myself with Trac 0.12 and Trac Git?-0.12.0.5dev, FreeBSD 9.1, Apache 2.2, python 2.7.
There is a statement in Trac Git?, in the file tracext/git/PyGIT.py, that initiates these git-log processes. I added --no-pager to that statement and the problem seems to be gone, so I think those processes hang because of the pager waiting forever for a key to be pressed.