Opened on 08/22/2015 at 09:12:40 PM
#2943 new defect
Trac opens too many files
| Reported by: | matze | Assignee: | |
|---|---|---|---|
| Priority: | P3 | Milestone: | |
| Module: | Infrastructure | Keywords: | |
| Cc: | fred, philll | Blocked By: | |
| Blocking: | Platform: | Unknown / Cross platform | |
| Ready: | yes | Confidential: | no |
| Tester: | Unknown | Verified working: | no |
| Review URL(s): | |||
Description
The Issue-Tracker is down from time too time because the Python processes exceed the maximum number of open files (ulimit). Although I've already tried to just increase that limit, they continued to fail. Interestingly the log-files list errors for /dev/urandom exclusively, so this is most likely a software bug but not a scaling issue:
2015-08-22 06:42:48,281 Trac[chrome] ERROR: Error with navigation contributor QueryModule: OSError: [Errno 24] Too many open files: '/dev/urandom' 2015-08-22 06:42:48,293 Trac[chrome] ERROR: Error with navigation contributor TicketModule: OSError: [Errno 24] Too many open files: '/dev/urandom' 2015-08-22 06:42:48,306 Trac[chrome] ERROR: Error with navigation contributor AdminModule: OSError: [Errno 24] Too many open files: '/dev/urandom' 2015-08-22 06:42:48,307 Trac[chrome] ERROR: Error with navigation contributor SearchModule: OSError: [Errno 24] Too many open files: '/dev/urandom' 2015-08-22 06:42:48,323 Trac[chrome] ERROR: Error with navigation contributor QueryModule: OSError: [Errno 24] Too many open files: '/dev/urandom' 2015-08-22 06:42:48,375 Trac[chrome] ERROR: Error with navigation contributor TicketModule: OSError: [Errno 24] Too many open files: '/dev/urandom'
Meanwhile errors like the following are logged:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/trac/web/main.py", line 497, in _dispatch_request
dispatcher.dispatch(req)
File "/usr/local/lib/python2.7/dist-packages/trac/web/main.py", line 170, in dispatch
if handler.match_request(req):
File "/usr/local/lib/python2.7/dist-packages/trac/attachment.py", line 468, in match_request
req.args['realm'] = realm
File "/usr/local/lib/python2.7/dist-packages/trac/web/api.py", line 316, in __getattr__
value = self.callbacks[name](self)
File "/usr/local/lib/python2.7/dist-packages/trac/web/api.py", line 299, in <lambda>
'args': lambda req: arg_list_to_args(req.arg_list),
File "/usr/local/lib/python2.7/dist-packages/trac/web/api.py", line 316, in __getattr__
value = self.callbacks[name](self)
File "/usr/local/lib/python2.7/dist-packages/trac/web/api.py", line 648, in _parse_arg_list
fs = _FieldStorage(fp, environ=self.environ, keep_blank_values=True)
File "/usr/lib/python2.7/cgi.py", line 508, in __init__
self.read_multi(environ, keep_blank_values, strict_parsing)
File "/usr/local/lib/python2.7/dist-packages/trac/web/api.py", line 173, in read_multi
cgi.FieldStorage.read_multi(self, *args, **kwargs)
File "/usr/lib/python2.7/cgi.py", line 637, in read_multi
environ, keep_blank_values, strict_parsing)
File "/usr/lib/python2.7/cgi.py", line 510, in __init__
self.read_single()
File "/usr/lib/python2.7/cgi.py", line 647, in read_single
self.read_lines()
File "/usr/lib/python2.7/cgi.py", line 669, in read_lines
self.read_lines_to_outerboundary()
File "/usr/lib/python2.7/cgi.py", line 697, in read_lines_to_outerboundary
line = self.fp.readline(1<<16)
File "/usr/local/lib/python2.7/dist-packages/trac/web/_fcgi.py", line 205, in readline
self._waitForData()
File "/usr/local/lib/python2.7/dist-packages/trac/web/_fcgi.py", line 159, in _waitForData
self._conn.process_input()
File "/usr/local/lib/python2.7/dist-packages/trac/web/_fcgi.py", line 685, in process_input
rec.read(self._sock)
File "/usr/local/lib/python2.7/dist-packages/trac/web/_fcgi.py", line 504, in read
raise EOFError
Haven't looked into whether those are the reason for the issue or a symptom yet.
Attachments (0)
Note: See
TracTickets for help on using
tickets.
