Project

General

Profile

Error parsing svn output » History » Version 13

Andrey Ivanov, 2024-02-04 07:57

1 1 Anthony C
h1. Error parsing svn output
2
3 8 Toshi MARUYAMA
h2. Background
4
5 9 Toshi MARUYAMA
Redmine is Rails application running on web server (Apache etc.).
6 8 Toshi MARUYAMA
And Redmine calls "svn" commdand on web server.
7
So, you need to configure web server process *uid* correctly.
8
Check what your web server uid is.
9
(E.g. "ps -ef", "top")
10
11
h2. Introduction
12
13 1 Anthony C
If after adding a repository you get an error "The entry or revision was not found in the repository" on the Repository tab, check in your log folder (e.g. /var/log/redmine/default) for production.log.
14
15 2 Anthony C
If you find this error in production.log there's probably an error when the redmine user runs the svn command:
16 1 Anthony C
> Error parsing svn output: #<REXML::ParseException: No close tag for /lists/list>
17
18
(Redmine still tries to parse the output of the svn command as XML, but errors aren't formatted as XML, thus the parse error.)
19
20
To troubleshoot try running the command as the redmine user to see what the error is, for example:
21
> sudo -u www-data svn list --xml 'https://svn.server.address/reponame'@HEAD
22
23
(You may have to add "www-data ALL=(ALL) NOPASSWD:ALL" to /etc/sudoers)
24
25
Now resolve the error so that you get only clean xml from the command every time.
26
27
If you get prompted to accept the server's certificate every time you need to give the redmine user a directory to store svn configuration in. Create a directory somewhere and make sure the redmine user is owner, for example:
28
> sudo mkdir /usr/share/redmine/svn
29 3 Anthony C
30 1 Anthony C
> sudo chown www-data:www-data /usr/share/redmine/svn
31
32 7 Toshi MARUYAMA
On *Redmine 1.1.x or lesser*,
33
open REDMINE_ROOT/lib/redmine/scm/adapters/subversion_adapter.rb and go to line 27
34 5 Toshi MARUYAMA
source:tags/1.1.3/lib/redmine/scm/adapters/subversion_adapter.rb#L27
35
 and change:
36 1 Anthony C
37
> SVN_BIN = "svn"
38
39
to, for example:
40
41
> SVN_BIN = "svn --config-dir /usr/share/redmine/svn"
42
43
Now you should be able to permanently accept the certificate.
44 5 Toshi MARUYAMA
45 12 Marcel Müller
If you get (after testing with @svn list --xml URL@) the message "svn: Unable to parse URL" check your installed SVN client version. Older versions have problems with file names with a space, update to a recent version to fix this problem.
46
47 5 Toshi MARUYAMA
*TODO:*
48 7 Toshi MARUYAMA
On *Redmine 1.2 or greater*, this line changed.
49 6 Toshi MARUYAMA
source:tags/1.2.3/lib/redmine/scm/adapters/subversion_adapter.rb#L35
50 1 Anthony C
51 10 Pierre Labrie
h2. Note for Bitnami Redmine installation on Windows
52
53 13 Andrey Ivanov
The Redmine servers(*@Thin@* for versions > 2.0] by default run under the @System@ account and this does not work with wrong SSL certificate for SVN server. The solution is to change the process account for a service user with logon privilege, connect to SVN and accept permanently the certificate for that user. Don't forget to change the user for the two *@Thin@* or *@Mongrel@* services running in load balancing.
54 11 Andrey Ivanov
55
Another possible solution to parliamentary accept wrong SVN certificate is to use "psexec":http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx. Command below shows console for @System account where svn command may be issued and certificate permanently accepted:
56
> psexec -i -s cmd.exe
57 10 Pierre Labrie
58
Redmine code in *scm\adapter\abstact_adapter.rb* should trap connection errors and should not relies on "@No close tag for /lists/list>@" to inform us of this problem. The stderr is captured in a log when running in dev environment but not very useful in production. 
59
60 4 Anonymous
h2. "SVN: Connection closed unexpectedly" when using SVN with SSH
61
62
When you execute
63
> sudo -u www-data svn list --xml 'svn+ssh://svn.server.address/reponame'@HEAD
64
65
and receive the error "SVN: Connection closed unexpectedly", you may enable the shell for the user www-data on the machine, hosting the svn repository.
66
Simply edit /etc/passwd and change the entry for the respective user so it ends with /bin/bash instead of /bin/false or /sbin/nologin.
67
This should solve the problem.
68
69 1 Anthony C
Source(s):
70
http://www.redmine.org/boards/2/topics/11896
71
http://www.thinkplexx.com/learn/howto/scm/svn/fix-permanent-error-validating-server-certificate-problem-with-subversion