You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by David Aldrich <da...@gmail.com> on 2021/07/15 14:54:00 UTC

svn: E160013: File not found: transaction '41-1j'

I'm trying to rename a directory and I get this error on commit:

Adding         TML/RIC_Initial_Use_Case_Analysis
svn: E155011: Commit failed (details follow):
svn: E155011: Directory '/<snip>/Feasibility Studies/Use Case
Analysis/TML/RIC_Initial_Use_Case_Analysis' is out of date
svn: E160013: File not found: transaction '41-1j', path
'/Feasibility%20Studies/Use%20Case%20Analysis/TML/RIC_Initial_Use_Case_Analysis'

I guess the problem is associated with the fact that the path contains
spaces.

Any advice on how to resolve this please?

Re: svn: E160013: File not found: transaction '41-1j'

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
David Aldrich wrote on Thu, Jul 15, 2021 at 17:18:47 +0100:
> Another team member had attempted the rename earlier today but it failed
> with a permissions error.

That's probably unrelated, but still, please quote the error message.

> Could there be some incomplete transaction lurking in the database that is
> causing a tree conflict?

No.  What you're seeing isn't a tree conflict.  Conflicts are
a client-side concept and are triggered by update/switch/merge operations.
Besides, if an incomplete transaction _could_ somehow cause a conflict,
then it could also be updated to, and we'd have noticed that.

(Background reading pointers for interested devs: svn_fs_root_t;
NODES.op_depth.)

Cheers,

Daniel

Re: svn: E160013: File not found: transaction '41-1j'

Posted by David Aldrich <da...@gmail.com>.
Hi Daniel and Nathan

Thanks for your replies.

The client is svn 1.13.0
The server is 1.14.0
Protocol is http

Before the rename I see:

$ ls
<snip>  'Traffic Steering'   drafts

The svn mv yields:

$ svn mv Traffic%20Steering RIC_Initial_Use_Case_Analysis
svn: E155010: Path '/home/<snip>/SVNProj/mnd-ric/Feasibility Studies/Use
Case Analysis/TML/Traffic%20Steering' does not exist

Is that helpful?

Best regards
David

On Fri, Jul 16, 2021 at 1:31 PM Daniel Shahaf <d....@daniel.shahaf.name>
wrote:

> Nathan Hartman wrote on Thu, Jul 15, 2021 at 16:52:18 -0400:
> > Also, you might try using %20 in place of spaces and see if that makes
> > a difference. Perhaps by mistake one of those spaces is a different
> > codepoint, so looks like a regular space, but isn't.
>
> Good idea, but there's no reason to try blindly; running «svn ls» on the
> containing directory and «svn info» on the file, both of which you have
> suggested above, is sufficient to rule this out.
>
> Speaking of which, going back to the original error message, there's
> something I didn't notice at first:
>
> > > > > svn: E160013: File not found: transaction '41-1j', path
> '/Feasibility%20Studies/Use%20Case%20Analysis/TML/RIC_Initial_Use_Case_Analysis'
>
> This is a libsvn_fs_fs error message, and the path is percent-escaped.
> However, libsvn_fs_fs shouldn't be seeing percent-escaped paths at all.
>
> What's the version number on the client and server?
>
> > If it's a httpd-based server, do httpd's logs show anything that seems
> > significant?
>
> As mentioned upthread, svnserve has logs too, and successful commits
> would also show up in «svn log ^/».
>
> > Dumb question: Could the server be low on disk space?
>
> I don't see how that could cause an E160013?
>
> Cheers,
>
> Daniel
>

Re: svn: E160013: File not found: transaction '41-1j'

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
Nathan Hartman wrote on Thu, Jul 15, 2021 at 16:52:18 -0400:
> Also, you might try using %20 in place of spaces and see if that makes
> a difference. Perhaps by mistake one of those spaces is a different
> codepoint, so looks like a regular space, but isn't.

Good idea, but there's no reason to try blindly; running «svn ls» on the
containing directory and «svn info» on the file, both of which you have
suggested above, is sufficient to rule this out.

Speaking of which, going back to the original error message, there's
something I didn't notice at first:

> > > > svn: E160013: File not found: transaction '41-1j', path '/Feasibility%20Studies/Use%20Case%20Analysis/TML/RIC_Initial_Use_Case_Analysis'

This is a libsvn_fs_fs error message, and the path is percent-escaped.
However, libsvn_fs_fs shouldn't be seeing percent-escaped paths at all.

What's the version number on the client and server?

> If it's a httpd-based server, do httpd's logs show anything that seems
> significant?

As mentioned upthread, svnserve has logs too, and successful commits
would also show up in «svn log ^/».

> Dumb question: Could the server be low on disk space?

I don't see how that could cause an E160013?

Cheers,

Daniel

Re: svn: E160013: File not found: transaction '41-1j'

Posted by Nathan Hartman <ha...@gmail.com>.
On Thu, Jul 15, 2021 at 12:18 PM David Aldrich
<da...@gmail.com> wrote:
>
> Hi Nathan
>
> Thanks for your answer. I didn't make this clear, but I do understand the concept of Update and had updated the working copy before attempting the rename.
>
> I have, just now, made a clean checkout and repeated the rename, but I get a similar result.
>
> Another team member had attempted the rename earlier today but it failed with a permissions error.
>
> Could there be some incomplete transaction lurking in the database that is causing a tree conflict?
>
> Or some other problem, possibly associated with the use of spaces?
>
> Best regards
> David


Hello David,

The E155011 "Directory ... is out of date" error is Subversion trying
to be helpful by wrapping what could be an obscure commit error with a
more friendly one; however in this case it wasn't helpful.

The E160013 "File not found: transaction..." error is the important
one in this case.

I doubt that spaces in the path are causing the issue; my $employer's
repo contains filenames and directories with spaces and we have
renamed things many times without issues; however I won't completely
discount that possibility. There might be some edge case.

Let's try to narrow down the cause:

Do you know which version of Subversion is running on the server? Is
it a *nix or Windows based server? What type of server is it -- if
unsure you can tell by the URL you're using to access it: local
(file://), svnserve (svn://), or httpd-based (http:// or https://).

Is the item in question pulled in via svn:externals? Is it a symlink?

Can you see the file listed if you run 'svn ls' using the server-side
URL, e.g., if your server is svnserve, something like:

$ svn ls "svn://<repo_URL>/<snip>/Feasibility Studies/Use Case
Analysis/TML/RIC_Initial_Use_Case_Analysis"

(Remember to enclose the path in quotes.)

If that's not found, gradually remove one item at a time from the end
of the path:

$ svn ls "svn://<repo_URL>/<snip>/Feasibility Studies/Use Case Analysis/TML/"

You can also run 'svn info' with the same URLs, with spaces, and then
you should see the URL encoded with %20 in place of spaces.

Also, you might try using %20 in place of spaces and see if that makes
a difference. Perhaps by mistake one of those spaces is a different
codepoint, so looks like a regular space, but isn't.

Have you (or colleagues) attempted other commit operations in the
meantime and have they succeeded or failed?

If it's a httpd-based server, do httpd's logs show anything that seems
significant?

Dumb question: Could the server be low on disk space?

As a possible workaround: You could perhaps try the rename as a
server-side operation? i.e., 'svn mv' giving the old and new
server-side URL and a commit message.

Let us know...
Nathan

P.S., You asked if any stale transactions might be lurking. You can
check with the 'svnadmin' subcommand 'lstxns'. That would need to be
run on the server. It is described here:

https://svnbook.red-bean.com/en/1.7/svn.reposadmin.maint.html#svn.reposadmin.maint.diskspace.deadtxns

(Search for "lxtxns" on that page; I suggest not to rush to delete any
you might find, in case they offer some helpful clues.)

Re: svn: E160013: File not found: transaction '41-1j'

Posted by David Aldrich <da...@gmail.com>.
Hi Nathan

Thanks for your answer. I didn't make this clear, but I do understand the
concept of Update and had updated the working copy before attempting the
rename.

I have, just now, made a clean checkout and repeated the rename, but I get
a similar result.

Another team member had attempted the rename earlier today but it failed
with a permissions error.

Could there be some incomplete transaction lurking in the database that is
causing a tree conflict?

Or some other problem, possibly associated with the use of spaces?

Best regards
David

On Thu, Jul 15, 2021 at 4:38 PM Nathan Hartman <ha...@gmail.com>
wrote:

> On Thu, Jul 15, 2021 at 10:54 AM David Aldrich
> <da...@gmail.com> wrote:
> >
> > I'm trying to rename a directory and I get this error on commit:
> >
> > Adding         TML/RIC_Initial_Use_Case_Analysis
> > svn: E155011: Commit failed (details follow):
> > svn: E155011: Directory '/<snip>/Feasibility Studies/Use Case
> Analysis/TML/RIC_Initial_Use_Case_Analysis' is out of date
> > svn: E160013: File not found: transaction '41-1j', path
> '/Feasibility%20Studies/Use%20Case%20Analysis/TML/RIC_Initial_Use_Case_Analysis'
> >
> > I guess the problem is associated with the fact that the path contains
> spaces.
> >
> > Any advice on how to resolve this please?
>
>
> Normally the "out of date" error means that the repository contains
> newer changes that your working copy does not have yet, such as, for
> example, modifications to files inside the directory you are trying to
> rename. Normally your working copy must be up-to-date with the
> repository before you commit, at least for all items that are touched
> by any kind of modifications in your working copy.
>
> Practically speaking, this means that you would need to 'update' your
> working copy first; since you have renamed a directory, you may have
> to resolve a tree conflict. Alternatively, if renaming the directory
> is the only change you're making, it might just be simpler to 'revert'
> that change in your working copy, then 'update', then rename the
> directory, and then 'commit'.
>
> There's better documentation in the SVN book:
>
> https://svnbook.red-bean.com/en/1.7/svn.tour.treeconflicts.html
>
> Search for "is out of date" on that page to jump straight to it.
>
> Hope this helps,
> Nathan
>

Re: svn: E160013: File not found: transaction '41-1j'

Posted by Nathan Hartman <ha...@gmail.com>.
On Thu, Jul 15, 2021 at 10:54 AM David Aldrich
<da...@gmail.com> wrote:
>
> I'm trying to rename a directory and I get this error on commit:
>
> Adding         TML/RIC_Initial_Use_Case_Analysis
> svn: E155011: Commit failed (details follow):
> svn: E155011: Directory '/<snip>/Feasibility Studies/Use Case Analysis/TML/RIC_Initial_Use_Case_Analysis' is out of date
> svn: E160013: File not found: transaction '41-1j', path '/Feasibility%20Studies/Use%20Case%20Analysis/TML/RIC_Initial_Use_Case_Analysis'
>
> I guess the problem is associated with the fact that the path contains spaces.
>
> Any advice on how to resolve this please?


Normally the "out of date" error means that the repository contains
newer changes that your working copy does not have yet, such as, for
example, modifications to files inside the directory you are trying to
rename. Normally your working copy must be up-to-date with the
repository before you commit, at least for all items that are touched
by any kind of modifications in your working copy.

Practically speaking, this means that you would need to 'update' your
working copy first; since you have renamed a directory, you may have
to resolve a tree conflict. Alternatively, if renaming the directory
is the only change you're making, it might just be simpler to 'revert'
that change in your working copy, then 'update', then rename the
directory, and then 'commit'.

There's better documentation in the SVN book:

https://svnbook.red-bean.com/en/1.7/svn.tour.treeconflicts.html

Search for "is out of date" on that page to jump straight to it.

Hope this helps,
Nathan

Re: svn: E160013: File not found: transaction '41-1j'

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
David Aldrich wrote on Thu, Jul 15, 2021 at 15:54:00 +0100:
> I'm trying to rename a directory and I get this error on commit:
> 
> Adding         TML/RIC_Initial_Use_Case_Analysis
> svn: E155011: Commit failed (details follow):
> svn: E155011: Directory '/<snip>/Feasibility Studies/Use Case
> Analysis/TML/RIC_Initial_Use_Case_Analysis' is out of date
> svn: E160013: File not found: transaction '41-1j', path
> '/Feasibility%20Studies/Use%20Case%20Analysis/TML/RIC_Initial_Use_Case_Analysis'

Hang on.  "Feasibility Studies" is a child of the root in the E160013
error message, but child of something other than the root in the second
E155011 line.  Is that indeed so, or did you redact the two messages
differently?

> I guess the problem is associated with the fact that the path contains
> spaces.
> 
> Any advice on how to resolve this please?

Review your start-commit and pre-commit hooks.

Review your server's logs for any concurrent commit attempts.  (This
applies to everything except file://, not only to http/https.  If you
use file://, you can implement logging in pre-commit, or look at
revisions that have in fact been committed right around the time of the
failed commit attempt.)

Cheers,

Daniel