Project

General

Profile

Actions

Defect #6327

closed

Error parsing svn output: #<REXML::ParseException: No close tag for /lists/list>

Added by Joonas Pulakka over 13 years ago. Updated about 13 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
SCM
Target version:
-
Start date:
2010-09-08
Due date:
% Done:

0%

Estimated time:
Resolution:
Affected version:

Description

  • Redmine: 1.0.1
  • Database version: MySQL 5.0
  • Ruby version: 1.8.7
  • Rails version: 2.3.5 (the one that came with Redmine in the vendor/ directory)
  • Subversion: 1.5.1

I'm trying to access repository using file:/// url (the repository is in the same server as Redmine). It doesn't work. redmine/log/production.log contains the following:

Shelling out: svn list --xml 'file:///var/svn/repository/'@HEAD --no-auth-cache --non-interactive
Error parsing svn output: #<REXML::ParseException: No close tag for /lists/list>
/usr/lib/ruby/1.8/rexml/parsers/treeparser.rb:28:in `parse'
/usr/lib/ruby/1.8/rexml/document.rb:228:in `build'
/usr/lib/ruby/1.8/rexml/document.rb:43:in `initialize'
etc...

When I run that exact svn command from shell as www-data user (as Redmine runs under Passenger), I get the following output, which seems perfectly valid:

poenttoe:/usr/local/lib/redmine-1.0.1$ svn list --xml 'file:///var/svn/repository/'@HEAD --no-auth-cache --non-interactive
<?xml version="1.0"?>
<lists>
<list
   path="file:///var/svn/repository">
<entry
   kind="dir">
<name>app</name>
<commit
   revision="34">
<author>jpulakka</author>
<date>2010-09-07T12:55:46.978106Z</date>
</commit>
</entry>
<entry
   kind="dir">
<name>components</name>
<commit
   revision="46">
<author>jpulakka</author>
<date>2010-09-07T13:53:52.115011Z</date>
</commit>
</entry>
<entry
   kind="dir">
<name>lib</name>
<commit
   revision="33">
<author>jpulakka</author>
<date>2010-09-07T12:41:20.975111Z</date>
</commit>
</entry>
</list>
</lists>

Seems somewhat similar to #3929 and #6312.

Actions #1

Updated by Joonas Pulakka over 13 years ago

One notion: when provided with slightly wrong URL such as @'file://var/svn/repository/' (missing a slash), svn spits out something like this:

<?xml version="1.0"?>
<lists>
<list
   path="file://var/svn/repository">
svn: Unable to open an ra_local session to URL
svn: Local URL 'file://var/svn/repository' contains unsupported hostname

which would explain the "No close tag for /lists/list" parsing error - the tags are not indeed closed since the XML output is interrupted by an error message.

Is there a way to set up the logger so that the svn output, that Redmine tries to parse, would be there? Even though I do get proper output when executing the command that Redmine claims to be "Shelling out", could it be that Redmine is not getting the same output from svn for some reason?

Actions #2

Updated by Joonas Pulakka over 13 years ago

  • Status changed from New to Resolved

Found it! Apache's error.log contained stuff like this:

svn: Unable to open an ra_local session to URL
svn: Unable to open repository 'file:///var/svn/repository'
svn: Can't open file '/var/svn/repository/format': Permission denied

Obviously Redmine was not executing the svn command as www-data as I thought it would. That resulted in error message in the svn output, which Redmine considered just malformed XML.

One config file, redmine/config/email.yml, was owned by root (even though all other config files were owned by www-data). Chowning it to www-data solved the problem. I have no idea why that file had such an effect, but... now it works.

This kind of problems could be more easily solved by adding a couple of debugging features:
  • Show svn output in the log.
  • Show which user Redmine runs as (this is not always obvious).
Actions #3

Updated by Toshi MARUYAMA over 13 years ago

  • Category set to SCM
Actions #4

Updated by Toshi MARUYAMA about 13 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF