Edgewall Software

Changes between Version 38 and Version 39 of TracSubversion


Ignore:
Timestamp:
Mar 29, 2007, 8:57:45 AM (17 years ago)
Author:
Christian Boos
Comment:

Add a check list in the #Troubleshooting section

Legend:

Unmodified
Added
Removed
Modified
  • TracSubversion

    v38 v39  
    149149This kind of error seems to happen frequently. Sometimes it seems to be related to the Trac cache being out-of-sync and needing a manual `resync` (#2739, #3301, #3728); this can happen if the repository was rebuilt and its UUID hasn't changed. Sometimes it seems to be because the repository is temporarily unavailable (#2346), and sometimes, we simply don't know yet (#3773, #3861, #3875).
    150150
     151==== Check list ====
     152
     153When there's some trouble using the Subversion bindings,
     154it usually help to perform the following checks:
     155
     156 1. Verify that you can load the bindings using the Python interactive interpreter
     157
     158{{{
     159$ python
     160Python ...
     161>>> from svn import core
     162}}}
     163If this succeeds, that's a good start.
     164
     165If it doesn't,  it usually means that your bindings are located in
     166a place they can't be loaded from. So either move the `svn` and `libsvn`
     167found in the /opt/subversion-xxx/lib/svn-python folder (or similar)
     168into your site-packages folder, or add the above folder to your PYTHON_PATH,
     169or create a [http://docs.python.org/lib/module-site.html svn.pth] file
     170in your Python site-packages folder with the above folder path as its
     171single line content.
     172
     173 2. Check the version
     174{{{
     175>>> (core.SVN_VER_MAJOR, core.SVN_VER_MINOR, core.SVN_VER_MICRO, core.SVN_VER_PATCH)
     176(1, 4, 3, 3)
     177}}}
     178Verify that the version given back matches your expectation.
     179
     180 3. Check that you're using the right binaries (Linux)
     181
     182Get the pid of the above running Python interpreter (i.e. once the
     183binding is loaded), and get the list of the libraries used by looking at the
     184corresponding map file.
     185
     186e.g.
     187{{{
     188cat /proc/10213/maps | grep .so | cut -d/ -f2- | sort -u
     189}}}
     190
     191In particular, pay attention to the `.../lib/svn-python/libsvn/_core.so` file
     192and see if it's location seems to be consistent with both those of the other
     193svn libraries (`.../lib/*.so`) and the location of the Python code part of the
     194bindings (`.../lib/svn-python/svn/core.py`).
     195
     196 3. If you're using Apache / mod_python (Linux)
     197
     198Get a similar list of libraries, but this time for one of your httpd process.
     199Then compare the two, and pay attention to any difference between the `svn`
     200libraries and the `apr` libraries. You ''have to'' have compatible APR libraries
     201between Apache and Subversion, otherwise you risk to get a wide variety of subtle
     202errors (e.g. #4985).
    151203
    152204== Known Issues ==