Defect #6327
closedError parsing svn output: #<REXML::ParseException: No close tag for /lists/list>
0%
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>
Updated by Joonas Pulakka over 14 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?
Updated by Joonas Pulakka over 14 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.
- Show svn output in the log.
- Show which user Redmine runs as (this is not always obvious).
Updated by Toshi MARUYAMA almost 14 years ago
- Status changed from Resolved to Closed