Ticket #312 (closed defect: fixed)

Opened 5 years ago

Last modified 4 years ago

subversion error with no-ascii filenames due to locale environment of svn process

Reported by: eckert Owned by: dustin
Priority: major Milestone: 0.7.10
Version: 0.7.7 Keywords:
Cc:

Description

On Linux, if a subversion repository contains non-ascii filenames the VC update step hangs.

The primary cause is setting of LC_ALL in svn subprocess environment to C locale which leads svnversion process to exit with error.

The secondary cause (for the hang) is because in slave/commands.py class SourceBase?.setup the environment variable LC_ALL is set to C locale for the svnversion process. This settings leads to subversion assumung hat filesystem encoding is ascii (svn looks in LC_CTYPE and LC_ALL) and tries to decode the non-ascii filenames into the wrong charset, which cannot be done. svnversion exits with exitcode 1 and an error message on stderr Because there is not output on stdout the line

if r[-1] == 'M' 

in slave/commands.py leads to an IndexError? which isn't caught by the gui, it only shows up in the twistd.log. The build master must be restarted to allow subsequent build to run.

Solution proposal for primary cause: setting LC_ALL in order to parse subprocess output is overkill, it also affects file system encoding and other behaviour. Use only LC_MESSAGES for that, this only affects the output. A patch is attached to this ticket.

Attachments

buildbot.diff Download (703 bytes) - added by eckert 5 years ago.
proposed patch for primary cause

Change History

Changed 5 years ago by eckert

proposed patch for primary cause

comment:1 Changed 4 years ago by dustin

  • Milestone changed from undecided to 0.7.10

This makes sense to me. I'd like to hear someone else chime in, but I'll get it in 0.7.10 unless I hear otherwise.

comment:2 Changed 4 years ago by dustin

  • Owner set to dustin
  • Status changed from new to assigned

comment:3 Changed 4 years ago by dustin

  • Status changed from assigned to closed
  • Resolution set to fixed
Created commit ca9fb9a: (refs #312) only set LC_MESSAGES for source steps
 1 files changed, 1 insertions(+), 1 deletions(-)
Note: See TracTickets for help on using tickets.