[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Log caching: Crash in `Get merge logs' without access to the repository root

From: Evgeny Kotkov <evgeny.kotkov_at_visualsvn.com>
Date: Fri, 11 Mar 2016 01:58:38 +0300

Stefan Küng <tortoisesvn_at_gmail.com> writes:

> No crash for me with a nightly build.
> And I also don't get a crash with 1.9.3 x64.
> Testing against a VisualSVN server 3.5, both with an existing repo and a
> completely new one with only revision 1 where trunk/branches/tags was
> created.
>
> I denied access to root (verified using the repo browser) but allowed rw
> access to trunk/branches/tags. Showed the log for trunk, clicked
> "include merged revisions", and I also tried with the command line.
>
> no crash in all tests.
>
> disabled log cache in the settings, retried all the tests. Again: no crash.

I re-tested that in a clean environment with TortoiseSVN 1.9.3.27038-x64 and
was able to reproduce the crash. The same applies as well to the nightly
build 1.9.99.27234-dev-x64. One thing worth mentioning is that in a clean
environment, using the `Get merge logs' context command or clicking on the
`Include merged revisions' checkbox shows a `Want to go offline?' dialog.
In order to trigger the crash, one should click on either `Offline for now'
or the `Permanently offline' button. (If the choice is remembered, the crash
will happen immediately).

In order to reproduce this issue with an existing repository, it might be
required to clean the log cache for that repository in TSVN Settings | Log
Caching | Cached Repositories.

Would it be possible for you to try that again?

Since you're testing with VisualSVN Server, I also scripted the reproduction
in VisualSVN Server PowerShell (the script creates a new repository, sets up
the access rules and crashes TortoiseProc.exe):

$repos = New-SvnRepository tsvn-merge-log-crash
$repos | New-SvnRepositoryItem -Path /trunk -Type Folder
$repos | Add-SvnAccessRule -AccountId BU -Path / -Access NoAccess
$repos | Add-SvnAccessRule -AccountId BU -Path /trunk -Access ReadWrite
$exe = 'C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe'
& $exe @('/command:log', '/merge', "/path:$($repos.URL)trunk")

> Well, that's not really an issue with TSVN but with the svn library.
> You would get the same if you run
> svn log https://server/svn/trunk -v -g

I see that svn log -v -g is much faster than displaying the log in TSVN,
e.g., for https://demo-server.visualsvn.com/tortoisesvn/branches/1.9.x the
svn log -v -g completes in around 21 seconds, while showing the same log with
TSVN requires 5 minutes (14x slower).

This difference comes from the fact that svn does 8 requests, whereas TSVN
does 1151 different requests to complete the operation:

svn log -gv https://demo-server.visualsvn.com/tortoisesvn/branches/1.9.x > nul

(Requires 8 requests, completes in ~21 second).

    CONNECT
    OPTIONS /tortoisesvn/branches/1.9.x
    OPTIONS /tortoisesvn/branches/1.9.x
    OPTIONS /tortoisesvn/branches/1.9.x
    CONNECT
    OPTIONS /tortoisesvn/branches/1.9.x
    OPTIONS /tortoisesvn/branches/1.9.x
    REPORT /tortoisesvn/!svn/rvr/27235/branches/1.9.x

TortoiseSVN Log - Show All, Include merged revisions

(Requires 1151 requests, completes in ~300 seconds, 14x slower).

    CONNECT
    OPTIONS /tortoisesvn/branches/1.9.x
    OPTIONS /tortoisesvn/branches/1.9.x
    OPTIONS /tortoisesvn/branches/1.9.x
    CONNECT
    OPTIONS /tortoisesvn/branches/1.9.x
    OPTIONS /tortoisesvn/branches/1.9.x
    REPORT /tortoisesvn/!svn/rvr/27235/branches/1.9.x
    CONNECT
    OPTIONS /tortoisesvn
    OPTIONS /tortoisesvn
    REPORT /tortoisesvn/!svn/rvr/27230
    CONNECT
    OPTIONS /tortoisesvn
    OPTIONS /tortoisesvn
    REPORT /tortoisesvn/!svn/rvr/27130
    CONNECT
    OPTIONS /tortoisesvn
    OPTIONS /tortoisesvn
    REPORT /tortoisesvn/!svn/rvr/27030
    CONNECT
    OPTIONS /tortoisesvn
    OPTIONS /tortoisesvn
    REPORT /tortoisesvn/!svn/rvr/26930
    ... (remaining 1127 requests)

Regards,
Evgeny Kotkov

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=3165296

To unsubscribe from this discussion, e-mail: [dev-unsubscribe_at_tortoisesvn.tigris.org].

merge-log-crash-1.png merge-log-crash-2.png merge-log-crash-3.png merge-log-crash-nightly.png
Received on 2016-03-11 14:14:01 CET

This is an archived mail posted to the TortoiseSVN Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.