Opened 16 years ago
Closed 16 years ago
#8161 closed defect (worksforme)
Bug in svn_fs.py : apr_pool_clear(self._pool) call (wrong argument count!?)
Reported by: | Owned by: | ||
---|---|---|---|
Priority: | high | Milestone: | |
Component: | version control | Version: | 0.11rc1 |
Severity: | critical | Keywords: | needinfo |
Cc: | Branch: | ||
Release Notes: | |||
API Changes: | |||
Internal Changes: |
Description (last modified by )
Hi,
I got following exception on svn_fs.py clear function call:
trac/versioncontrol/svn_fs.py", line 184, in clear self.apr_pool_clear(self._pool) TypeError: apr_terminate() takes exactly 0 arguments (1 given)
Traceback:
".../eggs/Trac-0.11.4rc1-py2.5.egg/trac/web/main.py", line 435, in _dispatch_request Code fragment: 430. try: 431. if not env and env_error: 432. raise HTTPInternalError(env_error) 433. try: 434. dispatcher = RequestDispatcher(env) 435. dispatcher.dispatch(req) 436. except RequestDone: 437. pass 438. resp = req._response or [] 439. 440. except HTTPException, e: * File ".../eggs/Trac-0.11.4rc1-py2.5.egg/trac/web/main.py", line 248, in dispatch Code fragment: 243. raise 244. except Exception, e: 245. self.log.error("Exception caught while post-processing" 246. " request: %s", 247. exception_to_unicode(e, traceback=True)) 248. raise err[0], err[1], err[2] 249. except PermissionError, e: 250. raise HTTPForbidden(to_unicode(e)) 251. except ResourceNotFound, e: 252. raise HTTPNotFound(e) 253. except TracError, e: * File ".../eggs/Trac-0.11.4rc1-py2.5.egg/trac/web/main.py", line 175, in dispatch Code fragment: 170. if not req.path_info or req.path_info == '/': 171. chosen_handler = self.default_handler 172. # pre-process any incoming request, whether a handler 173. # was found or not 174. chosen_handler = self._pre_process_request(req, 175. chosen_handler) 176. except TracError, e: 177. raise HTTPInternalError(e) 178. if not chosen_handler: 179. if req.path_info.endswith('/'): 180. # Strip trailing / and redirect * File ".../eggs/Trac-0.11.4rc1-py2.5.egg/trac/web/main.py", line 298, in _pre_process_request Code fragment: 293. req.outcookie['trac_form_token']['secure'] = True 294. return req.outcookie['trac_form_token'].value 295. 296. def _pre_process_request(self, req, chosen_handler): 297. for filter_ in self.filters: 298. chosen_handler = filter_.pre_process_request(req, chosen_handler) 299. return chosen_handler 300. 301. def _post_process_request(self, req, *args): 302. nbargs = len(args) 303. resp = args * File ".../eggs/Trac-0.11.4rc1-py2.5.egg/trac/versioncontrol/api.py", line 86, in pre_process_request Code fragment: 81. 82. def pre_process_request(self, req, handler): 83. from trac.web.chrome import Chrome, add_warning 84. if handler is not Chrome(self.env): 85. try: 86. self.get_repository(req.authname).sync() 87. except TracError, e: 88. add_warning(req, _("Can't synchronize with the repository " 89. "(%(error)s). Look in the Trac log for more " 90. "information.", error=to_unicode(e.message))) 91. * File ".../eggs/Trac-0.11.4rc1-py2.5.egg/trac/versioncontrol/cache.py", line 140, in sync Code fragment: 135. # -- compare them and try to resync if different 136. if self.youngest != repos_youngest: 137. self.log.info("repos rev [%s] != cached rev [%s]" % 138. (repos_youngest, self.youngest)) 139. if self.youngest: 140. next_youngest = self.repos.next_rev(self.youngest) 141. else: 142. next_youngest = None 143. try: 144. next_youngest = self.repos.oldest_rev 145. # Ugly hack needed because doing that everytime in * File ".../eggs/Trac-0.11.4rc1-py2.5.egg/trac/versioncontrol/svn_fs.py", line 592, in next_rev Code fragment: 587. rev = self.normalize_rev(rev) 588. next = rev + 1 589. youngest = self.youngest_rev 590. subpool = Pool(self.pool) 591. while next <= youngest: 592. subpool.clear() 593. try: 594. for _, next in self._history(path, rev+1, next, subpool): 595. return next 596. except (SystemError, # "null arg to internal routine" in 1.2.x 597. core.SubversionException): # in 1.3.x * File ".../eggs/Trac-0.11.4rc1-py2.5.egg/trac/versioncontrol/svn_fs.py", line 184, in clear Code fragment: 179. """Assert that this memory_pool is still valid.""" 180. assert self.valid(); 181. 182. def clear(self): 183. """Clear embedded memory pool. Invalidate all subpools.""" 184. self.apr_pool_clear(self._pool) 185. self._mark_valid() 186. 187. def destroy(self): 188. """Destroy embedded memory pool. If you do not destroy 189. the memory pool manually, Python will destroy it
Here are the version informations:
Trac: 0.11.4rc1 Python: 2.5.4 (r254:67916, Mar 19 2009, 14:58:42) [GCC 4.1.2 20070626 (Red Hat 4.1.2-14)] setuptools: 0.6c9 SQLite: 3.6.11 pysqlite: 2.5.5 Genshi: 0.5.1 Pygments: 1.0 Subversion: 1.5.6 (r36142) jQuery: 1.2.6 apr: 1.3.3 apr-util: 1.3.4
Attachments (0)
Change History (5)
comment:1 by , 16 years ago
Description: | modified (diff) |
---|---|
Keywords: | needinfo added |
Milestone: | 0.11.4 |
comment:2 by , 16 years ago
I running Trac in own Python-2.5.4 installation enclosed by virtualenv. mod_python is a own compilation with this Python interpreter.
follow-up: 4 comment:3 by , 16 years ago
Well, the question was if inside the Apache configuration of your mod_python interpreter, you are using the:
PythonInterpreter main_interpreter
as explained in TracModPython.
follow-up: 5 comment:4 by , 16 years ago
OK, YES and NO! The bug does not occured in a mod_python environment! The bug occured in ClueMapper wrapped Trac project. Which has a own web server build on repoze.who.
But as I now detected there may be possible that this problems occured while using psyco and Trac. I disabled the psyco and the error does not occured until now!?
comment:5 by , 16 years ago
Resolution: | → worksforme |
---|---|
Status: | new → closed |
Replying to michael.lindig@…:
I disabled the psyco and the error does not occured until now!?
Ok, I'm closing this ticket. Please reopen if you can reproduce the error without Psyco.
Looks like this is a new one, though it's probably only a duplicate of #2611 / #3455.
Are you running Trac in the main Python interpreter? For mod_python, this requires using the directive
PythonInterpreter main_interpreter
and for mod_wsgi, the directiveWSGIApplicationGroup %{GLOBAL)
.