[Trac] Re: Trac interaction with Subversion

G. Pulig gpulig at ciena.com
Thu May 20 22:49:05 UTC 2004
G. Pulig wrote:
> Nicholas Riley wrote:
> 
>> On Thu, May 20, 2004 at 01:55:22PM -0400, G. Pulig wrote:
>>
>>>     Any idea how I can tighten down the permissions for Trac in
>>> Apache so it doesn't trounce my svn client users and my database?
>>> Other than what is in INSTALL, are there any other special
>>> configurations I can do for Trac?
>>
>>
>>
>> You might try setting the umask in trac.cgi.  Change:
>>
>> try:
>>     import trac.core
>>     trac.core.cgi_start()
>>
>> to:
>>
>> try:
>>     import trac.core
>>     import os
>>     os.umask(0)
>>     trac.core.cgi_start()
>>
>> This should ensure that Subversion doesn't reset the permissions on
>> the Subversion BDB files.
>>
> Hi Nicholas-
> 
>     That doesn't seem to do it...  I can reproduce the problem pretty 
> readily...  To test this, for example, I removed my Subversion view and 
> then started a file:/// checkout of the repository.  With the above 
> changes in the trac.cgi file, I brought up Trac and clicked on 
> Timelines.  The minute I did that, my checkout window popped up with:
> 
> subversion/libsvn_fs/bdb/bdb-err.c:61: (apr_err=160029)
> svn: Berkeley DB error while beginning Berkeley DB transaction for 
> filesystem /usr/local/svn/ipiEmbeddedSoftware/db:
> DB_RUNRECOVERY: Fatal error, run database recovery
> 
>     And I had to recover my database...  Any other things I could look 
> at?  Again, thank you for helping me with this!
> 
>     G
Hi Nicholas-

	I was rereading your post, and I think your track about permissions was 
correct...  In my case, even though my local svn client users are part 
of the UNIX group with write permissions to the repository, their main 
group is not the svn group.  Their log files inside the repository 
reflect this.

	I added the Apache user to the primary user group, and now, at least 
with a test repository, I haven't been able to reproduce the crash... 
I'll test it more tomorrow and see.

	Thanks!

	G