sqlite[S8]: attempt to write a readonly database

3,598 views
Skip to first unread message

Adam Jensen

unread,
Apr 10, 2016, 1:29:25 PM4/10/16
to us...@subversion.apache.org
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?

Joseph Bruni

unread,
Apr 10, 2016, 5:36:24 PM4/10/16
to Adam Jensen, us...@subversion.apache.org


Sent from my iPhone
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?

Adam Jensen

unread,
Apr 10, 2016, 6:04:05 PM4/10/16
to us...@subversion.apache.org
On Sun, 10 Apr 2016 14:36:09 -0700
Joseph Bruni <jbr...@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

Nico Kadel-Garcia

unread,
Apr 10, 2016, 6:55:56 PM4/10/16
to Adam Jensen, Subversion
On Sun, Apr 10, 2016 at 6:03 PM, Adam Jensen <han...@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.
Reply all
Reply to author
Forward
0 new messages