Opened 17 years ago
Closed 17 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 , 17 years ago
| Description: | modified (diff) |
|---|---|
| Keywords: | needinfo added |
| Milestone: | 0.11.4 |
comment:2 by , 17 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 , 17 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 , 17 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 , 17 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_interpreterand for mod_wsgi, the directiveWSGIApplicationGroup %{GLOBAL).