You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Adam Jensen <ha...@riseup.net> on 2016/04/10 19:29:03 UTC

sqlite[S8]: attempt to write a readonly database

Hi,

I am *very* new to svn. I just set up a server (svnserve, version 1.8.14 (r1692801)) on OpenBSD-5.8.
(See http://daemonforums.org/showpost.php?p=58638&postcount=2).

The repository was created with: doas -u _svn svnadmin create /var/svn/project-A
The server runs as: doas -u _svn svnserve -d -r /var/svn
Directories were created with: svn mkdir svn://minerva.bohemia.net/project-A/{trunk,tags,branches} 

Then I did an: svn checkout svn://minerva.bohemia.net/project-A
I copied some files into the new ~/project-A/trunk

Then from ~/project-A/trunk: 

svn import bin svn://minerva.bohemia.net/project-A/trunk/bin
Authentication realm: <svn://minerva.bohemia.net:3690> minerva.bohemia.net
Password for 'hanzer': **********

Adding         bin/foo.tcl
Adding         bin/getem.tcl
Adding         bin/update_db.tcl

Committed revision 5.

Warning: post commit FS processing had error:
sqlite[S8]: attempt to write a readonly database
------------------------------------------------

Is this a known problem? I see rep-cache.db might be the problem:

ls -la /var/svn/project-A/db
total 72
drwxr-sr-x  6 _svn  _svn   512 Apr 10 13:10 ./
drwxr-xr-x  6 _svn  _svn   512 Apr  9 17:35 ../
-rw-r--r--  1 _svn  _svn     2 Apr 10 13:10 current
-r--r--r--  1 _svn  _svn    22 Apr  9 17:35 format
-rw-r--r--  1 _svn  _svn     5 Apr  9 17:35 fs-type
-rw-r--r--  1 _svn  _svn  6838 Apr  9 17:35 fsfs.conf
-rw-r--r--  1 _svn  _svn     2 Apr  9 17:35 min-unpacked-rev
-rw-r--r--  1 root  _svn  3072 Apr  9 17:56 rep-cache.db
drwxr-xr-x  3 _svn  _svn   512 Apr  9 17:35 revprops/
drwxr-xr-x  3 _svn  _svn   512 Apr  9 17:35 revs/
drwxr-xr-x  2 _svn  _svn   512 Apr 10 13:10 transactions/
-rw-r--r--  1 _svn  _svn     2 Apr 10 13:10 txn-current
-rw-r--r--  1 _svn  _svn     0 Apr  9 17:35 txn-current-lock
drwxr-xr-x  2 _svn  _svn   512 Apr 10 13:10 txn-protorevs/
-rw-r--r--  1 _svn  _svn    37 Apr  9 17:35 uuid
-rw-r--r--  1 _svn  _svn     0 Apr  9 17:35 write-lock

But those permissions were set up automatically by svn. Is it a reasonable fix to just manually change rep-cache.db permissions or ownership? Or did I make a mistake when setting up the environment?

Re: sqlite[S8]: attempt to write a readonly database

Posted by Nico Kadel-Garcia <nk...@gmail.com>.
On Sun, Apr 10, 2016 at 6:03 PM, Adam Jensen <ha...@riseup.net> wrote:

>
> BTW - doas is a very simple replacement for sudo. https://news.ycombinator.com/item?id=9914693

It's an OpenBSD specific sudo replacement. It does nothing that sudo
does not already do, and writing critical security tools from scratch
to "simplify" them is often a really horrific idea.

Re: sqlite[S8]: attempt to write a readonly database

Posted by Adam Jensen <ha...@riseup.net>.
On Sun, 10 Apr 2016 14:36:09 -0700
Joseph Bruni <jb...@icloud.com> wrote:

> rep-cache couldn't be owned by root unless svnserve was running as root at the time it was last modified. You can change permissions to be correct, but there is some reason root was the UID at the time it was created. I'm not familiar with doas. I'm guessing it is similar to sudo? Maybe doas changes effective UID at odd times?

Thanks for the sanity check, it looks like I might have botched something early in the repository creation. My bad (It was my first time ;)

To verify (with svnserve running as user _svn):

doas -u _svn svnadmin create /var/svn/project-C
doas -u _svn vi /var/svn/project-C/conf/svnserve.conf

[general]
anon-access = none
auth-access = write
realm = minerva.bohemia.net
[sasl]
use-sasl = true
min-encryption = 128
max-encryption = 256

svn mkdir svn://minerva.bohemia.net/project-C/{trunk,tags,branches}
svn checkout svn://minerva.bohemia.net/project-C

Authentication realm: <svn://minerva.bohemia.net:3690> minerva.bohemia.net
Password for 'hanzer': **********

A    project-C/tags
A    project-C/trunk
A    project-C/branches
Checked out revision 1.

cd project-C/trunk
touch foo
svn add foo
svn commit
Authentication realm: <svn://minerva.bohemia.net:3690> minerva.bohemia.net
Password for 'hanzer': **********

Adding         foo
Transmitting file data .
Committed revision 2.

ls -la /var/svn/project-C/db
total 72
drwxr-sr-x  6 _svn  _svn   512 Apr 10 17:51 ./
drwxr-xr-x  6 _svn  _svn   512 Apr 10 17:48 ../
-rw-r--r--  1 _svn  _svn     2 Apr 10 17:51 current
-r--r--r--  1 _svn  _svn    22 Apr 10 17:48 format
-rw-r--r--  1 _svn  _svn     5 Apr 10 17:48 fs-type
-rw-r--r--  1 _svn  _svn  6838 Apr 10 17:48 fsfs.conf
-rw-r--r--  1 _svn  _svn     2 Apr 10 17:48 min-unpacked-rev
-rw-r--r--  1 _svn  _svn  3072 Apr 10 17:51 rep-cache.db
drwxr-xr-x  3 _svn  _svn   512 Apr 10 17:48 revprops/
drwxr-xr-x  3 _svn  _svn   512 Apr 10 17:48 revs/
drwxr-xr-x  2 _svn  _svn   512 Apr 10 17:51 transactions/
-rw-r--r--  1 _svn  _svn     2 Apr 10 17:51 txn-current
-rw-r--r--  1 _svn  _svn     0 Apr 10 17:48 txn-current-lock
drwxr-xr-x  2 _svn  _svn   512 Apr 10 17:51 txn-protorevs/
-rw-r--r--  1 _svn  _svn    37 Apr 10 17:48 uuid
-rw-r--r--  1 _svn  _svn     0 Apr 10 17:48 write-lock

All is good. Thanks!

BTW - doas is a very simple replacement for sudo. https://news.ycombinator.com/item?id=9914693


Re: sqlite[S8]: attempt to write a readonly database

Posted by Joseph Bruni <jb...@icloud.com>.

Sent from my iPhone

> On Apr 10, 2016, at 10:29 AM, Adam Jensen <ha...@riseup.net> wrote:
> 
> Hi,
> 
> I am *very* new to svn. I just set up a server (svnserve, version 1.8.14 (r1692801)) on OpenBSD-5.8.
> (See http://daemonforums.org/showpost.php?p=58638&postcount=2).
> 
> The repository was created with: doas -u _svn svnadmin create /var/svn/project-A
> The server runs as: doas -u _svn svnserve -d -r /var/svn
> Directories were created with: svn mkdir svn://minerva.bohemia.net/project-A/{trunk,tags,branches} 
> 
> Then I did an: svn checkout svn://minerva.bohemia.net/project-A
> I copied some files into the new ~/project-A/trunk
> 
> Then from ~/project-A/trunk: 
> 
> svn import bin svn://minerva.bohemia.net/project-A/trunk/bin
> Authentication realm: <svn://minerva.bohemia.net:3690> minerva.bohemia.net
> Password for 'hanzer': **********
> 
> Adding         bin/foo.tcl
> Adding         bin/getem.tcl
> Adding         bin/update_db.tcl
> 
> Committed revision 5.
> 
> Warning: post commit FS processing had error:
> sqlite[S8]: attempt to write a readonly database
> ------------------------------------------------
> 
> Is this a known problem? I see rep-cache.db might be the problem:
> 
> ls -la /var/svn/project-A/db
> total 72
> drwxr-sr-x  6 _svn  _svn   512 Apr 10 13:10 ./
> drwxr-xr-x  6 _svn  _svn   512 Apr  9 17:35 ../
> -rw-r--r--  1 _svn  _svn     2 Apr 10 13:10 current
> -r--r--r--  1 _svn  _svn    22 Apr  9 17:35 format
> -rw-r--r--  1 _svn  _svn     5 Apr  9 17:35 fs-type
> -rw-r--r--  1 _svn  _svn  6838 Apr  9 17:35 fsfs.conf
> -rw-r--r--  1 _svn  _svn     2 Apr  9 17:35 min-unpacked-rev
> -rw-r--r--  1 root  _svn  3072 Apr  9 17:56 rep-cache.db
> drwxr-xr-x  3 _svn  _svn   512 Apr  9 17:35 revprops/
> drwxr-xr-x  3 _svn  _svn   512 Apr  9 17:35 revs/
> drwxr-xr-x  2 _svn  _svn   512 Apr 10 13:10 transactions/
> -rw-r--r--  1 _svn  _svn     2 Apr 10 13:10 txn-current
> -rw-r--r--  1 _svn  _svn     0 Apr  9 17:35 txn-current-lock
> drwxr-xr-x  2 _svn  _svn   512 Apr 10 13:10 txn-protorevs/
> -rw-r--r--  1 _svn  _svn    37 Apr  9 17:35 uuid
> -rw-r--r--  1 _svn  _svn     0 Apr  9 17:35 write-lock
> 
> But those permissions were set up automatically by svn. Is it a reasonable fix to just manually change rep-cache.db permissions or ownership? Or did I make a mistake when setting up the environment?


rep-cache couldn't be owned by root unless svnserve was running as root at the time it was last modified. You can change permissions to be correct, but there is some reason root was the UID at the time it was created. I'm not familiar with doas. I'm guessing it is similar to sudo? Maybe doas changes effective UID at odd times?