Subject: | [patch] SVN::Log::Index::_handle_log() locking issue |
SVN::Log::Index::_handle_log() has this code:
sub _handle_log {
...
if ($self->{index_count}++ == $self->{optimize_count}) {
$self->{writer}->optimize ();
$self->_open_writer ();
}
}
The bug is between the call to optimize() and _open_writer(). The writer object has to be explicitly undef'd, otherwise it won't release its lock files, and further indexing will fail.
Adding a single line:
sub _handle_log {
...
if ($self->{index_count}++ == $self->{optimize_count}) {
$self->{writer}->optimize ();
undef $self->{writer}; # Force locks to be released
$self->_open_writer ();
}
}
solves the problem.
FWIW I'm doing a lot of work with SVN:: related modules at the moment. If it helps, I'm happy to take over maintainership of SVN::Log::Index.
All the best,
N