#2611: Problem with SVN bindings (SVN 1.3.0, Trac r2771)
-----------------------------+----------------------------------------------
Reporter: Manuzhai | Owner: cboos
Type: defect | Status: new
Priority: high | Milestone: 0.9.4
Component: version control | Version: devel
Severity: major | Resolution:
Keywords: |
-----------------------------+----------------------------------------------
Changes (by cboos):
* owner: cmlenz => cboos
Comment:
I think I understand the issue: having all the imports
in one line allows two threads (A and B) to start
simultaneously the import process:
* A: trac/versioncontrol/svn_fs.py: `from svn import fs, repos, core,
delta`
* B: trac/versioncontrol/svn_fs.py: `from svn import fs, repos, core,
delta`
* A: in svn/fs.py, line 19: `from libsvn.core import *`,
* A: now in libsvn/core.py, is going through the > 3000 lines...
* B: in svn/fs.py, line 19: `from libsvn.core import *`,
* B: now in libsvn/core.py, is going through the > 3000 lines...
* A: in libsvn/core.py, line 3049: does a `_core.svn_pool_create` [[BR]]
and here, `_core` is ''really'' `_core` (i.e. the native extension)
* A: in svn/fs.py, line 29: `import svn.core as _core`
* B: in libsvn/core.py, line 3049: does a `_core.svn_pool_create` [[BR]]
and now, `_core` is '''not''' `_core` but `svn.core` and therefore,
`_core.svn_pool_create` is not the native function but the (deprecated)
compatibility function, which expects a pool as first argument...
hence the error.
Hopefully splitting the imports does solve the issue,
but the bindings should really be more robust about that
and ''not'' rename different things to a same name...
--
Ticket URL: <http://projects.edgewall.com/trac/ticket/2611>
The Trac Project <http://trac.edgewall.com/>
_______________________________________________
Trac-Tickets mailing list
[email protected]
http://lists.edgewall.com/mailman/listinfo/trac-tickets