JasonDaly.name

PHP, Ruby, Symfony, Rails, Doctrine, MooTools. Web Development.
March 26, 2009

Trac - SubversionException: Can’t set position pointer in file…

When recompiling SVN 1.5.5 from source, making sure to include the swig-py bindings to allow Trac to read from local SVN repositories, I used the following ./configure command

./configure --prefix=/usr/local/svn-1.5.5/ --with-apr=/usr/local/apr/bin --with-apr-util=/usr/local/apr/bin --with-neon=/usr/bin --with-apxs=/usr/local/apache/bin/apxs 

When trying to view my repository I was presented with the following error in my trac.log file

SubversionException: ("Can't set position pointer in file '/var/svn/db/revs/135': Invalid argument", 22)

After some research1 I found the most common cause of this error is that Subversion was compiled against a different version of apr and apr-util than apache was. I found apache compiled with cPanel’s EA3 uses

/usr/local/apache/bin

as it’s path for apr and apr-util. Changing the flags to reflect this when compiling Subversion I was left with

./configure --prefix=/usr/local/svn-1.5.5 --with-apr=/usr/local/apache/bin --with-apr-util=/usr/local/apache/bin --with-neon=/usr/bin --with-apxs=/usr/local/apache/bin/apxs

make swig-py
make install
make install-swig-py
cd /usr/local/svn-1.5.5/lib/svn-python/
cp -r libsvn/* /usr/lib/python2.4/site-packages/libsvn
cp -r svn/* /usr/lib/python2.4/site-packages/svn
service httpd restart

I also ran the following out of habit after recompiling SVN before restarting httpd.

trac-admin TRAC_ENV_PATH resync

Tags: python trac svn subversion httpd centos linux