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).