TortoiseSVN show 100% CPU utilization on Win7

801 views
Skip to first unread message

michael sorens

unread,
Feb 16, 2012, 7:01:29 PM2/16/12
to us...@tortoisesvn.tigris.org
I am writing a series of articles on Subversion and TortoiseSVN published on Simple-Talk.com (latest one here). I am working on a section about Collabnet's Subversion Edge so I generated a fresh Win7 VM and installed Edge as well as TortoiseSVN. The web interface to the Subversion server responds promptly as expected. As does the command line interface (e.g. svn log <file>). But attempting to do a show log on the same file from TortoiseSVN's context menu slams my CPU utilization to 100% and the operation takes anywhere from 12 to 20 seconds to complete. Checking the Apache logs confirms that it is likely a client-side issue with TortoiseSVN--the Apache logs do not show anything until the end of the delay period. Note that this delay is present with every TortoiseSVN command. Even repeating the same command twice shows no caching effect; the second try takes just as long. Any rhyme or reason to this...?

Stefan Küng

unread,
Feb 17, 2012, 12:13:41 PM2/17/12
to us...@tortoisesvn.tigris.org
On 17.02.2012 01:01, michael sorens wrote:
> I am writing a series of articles on Subversion and TortoiseSVN
> published on Simple-Talk.com (latest one here
> <http://www.simple-talk.com/dotnet/.net-framework/tortoisesvn-and-subversion-cookbook-part-4-sharing-common-code/>).

> I am working on a section about Collabnet's Subversion Edge so I
> generated a fresh Win7 VM and installed Edge as well as TortoiseSVN. The
> web interface to the Subversion server responds promptly as expected. As
> does the command line interface (e.g. svn log <file>). But attempting to
> do a show log on the same file from TortoiseSVN's context menu slams my
> CPU utilization to 100% and the operation takes anywhere from 12 to 20
> seconds to complete. Checking the Apache logs confirms that it is likely
> a client-side issue with TortoiseSVN--the Apache logs do not show
> anything until the end of the delay period. Note that this delay is
> present with *every *TortoiseSVN command. Even repeating the same

> command twice shows no caching effect; the second try takes just as
> long. Any rhyme or reason to this...?

The show log dialog not only shows the log, it also does an 'svn st' on
the working copy to find out the last revision you updated to, and that
revision is then shown in bold in the log dialog.
Also, the TSVN log dialog uses its own cache database from which it
fetches all log messages you've shown before so you don't have to fetch
those from the server again (which would be much slower).

Stefan

--
___
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest Interface to (Sub)Version Control
/_/ \_\ http://tortoisesvn.net

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

To unsubscribe from this discussion, e-mail: [users-un...@tortoisesvn.tigris.org].

Simon Large

unread,
Feb 17, 2012, 5:13:02 PM2/17/12
to us...@tortoisesvn.tigris.org

When you say every command, you mean Update, Diff, Update to Revision,
etc.? Or do you just mean every time you use TSVN->Show Log?

Note that the equivalent svn command would be svn st -v URL. The -v
makes a big difference.

The reason for the high CPU might be the access to the log cache. You
could try clearing or disabling the log cache and then you would see
the server being hit right away.

Simon

--
:       ___
:  oo  // \\      "De Chelonian Mobile"
: (_,\/ \_/ \     TortoiseSVN
:   \ \_/_\_/>    The coolest Interface to (Sub)Version Control
:   /_/   \_\     http://tortoisesvn.net

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

michael sorens

unread,
Feb 20, 2012, 4:56:59 PM2/20/12
to us...@tortoisesvn.tigris.org
I mean every different TortoiseSVN command -- including TortoiseSVN >> Settings which I just tried when I went to look at the cache settings as you suggested. One other new piece of information. When I tried Settings and Show Log just now, the CPU did not show any unusual increase, yet each operation still took 15 to 20 seconds before it opened a dialog window.

Stefan Küng

unread,
Feb 21, 2012, 5:54:54 AM2/21/12
to us...@tortoisesvn.tigris.org
On Mon, Feb 20, 2012 at 22:56, michael sorens <birdwa...@gmail.com> wrote:
> I mean every different TortoiseSVN command -- including TortoiseSVN >>
> Settings which I just tried when I went to look at the cache settings as you
> suggested. One other new piece of information. When I tried Settings and
> Show Log just now, the CPU did not show any unusual increase, yet each
> operation still took 15 to 20 seconds before it opened a dialog window.


Tell your virus scanner to behave, or configure it to leave
TortoiseProc.exe and the other binaries of TSVN alone.
If you get 100%CPU even for the settings dialog, then some other app
that injects its garbage into the TSVN process must be responsible,
because the settings dialog basically does nothing but show a dialog
when it start up.
And that simply can not take 10 seconds, even on an 486 processor. I
think even if you were using a tape band instead of a harddrive it
wouldn't take 10 seconds...

Stefan

--
       ___
  oo  // \\      "De Chelonian Mobile"
 (_,\/ \_/ \     TortoiseSVN
   \ \_/_\_/>    The coolest Interface to (Sub)Version Control
   /_/   \_\     http://tortoisesvn.net

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

michael sorens

unread,
Feb 21, 2012, 9:53:55 AM2/21/12
to us...@tortoisesvn.tigris.org
Good thought, but this is all on a VM where I have only installed Subversion Edge, TortoiseSVN, Visual Studio, and SQL Server. So *no* virus scanner is interfering.

Andre.Ziegler

unread,
Feb 21, 2012, 11:34:44 AM2/21/12
to us...@tortoisesvn.tigris.org
make a xperf trace and upload it so that Stefan can see what causes
the high CPU usage.

On 21 Feb., 15:53, michael sorens <birdwatche...@gmail.com> wrote:
> Good thought, but this is all on a VM where I have only installed
> Subversion Edge, TortoiseSVN, Visual Studio, and SQL Server. So *no* virus
> scanner is interfering.
>
>
>
>
>
>
>
>
>

> On Tue, Feb 21, 2012 at 2:54 AM, Stefan Küng <tortoise...@gmail.com> wrote:
> > On Mon, Feb 20, 2012 at 22:56, michael sorens <birdwatche...@gmail.com>


> > wrote:
> > > I mean every different TortoiseSVN command -- including TortoiseSVN >>
> > > Settings which I just tried when I went to look at the cache settings as
> > you
> > > suggested. One other new piece of information. When I tried Settings and
> > > Show Log just now, the CPU did not show any unusual increase, yet each
> > > operation still took 15 to 20 seconds before it opened a dialog window.
>
> > Tell your virus scanner to behave, or configure it to leave
> > TortoiseProc.exe and the other binaries of TSVN alone.
> > If you get 100%CPU even for the settings dialog, then some other app
> > that injects its garbage into the TSVN process must be responsible,
> > because the settings dialog basically does nothing but show a dialog
> > when it start up.
> > And that simply can not take 10 seconds, even on an 486 processor. I
> > think even if you were using a tape band instead of a harddrive it
> > wouldn't take 10 seconds...
>
> > Stefan
>
> > --
> >        ___
> >   oo  // \\      "De Chelonian Mobile"
> >  (_,\/ \_/ \     TortoiseSVN
> >    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
> >    /_/   \_\    http://tortoisesvn.net
>
> > ------------------------------------------------------
>

> >http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMess...


>
> > To unsubscribe from this discussion, e-mail: [

> > users-unsubscr...@tortoisesvn.tigris.org].
>
> ------------------------------------------------------http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMess...
>
> To unsubscribe from this discussion, e-mail: [users-unsubscr...@tortoisesvn.tigris.org].

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

michael sorens

unread,
Feb 22, 2012, 7:34:38 PM2/22/12
to us...@tortoisesvn.tigris.org
Thanks for the suggestion. I've done the xperf trace. The file is about 5MB. Do I just attach it to one of my replies here or is there a separate location to upload such a file?

Andre.Ziegler

unread,
Feb 23, 2012, 7:13:13 AM2/23/12
to us...@tortoisesvn.tigris.org
upload it to your Dropbox, SkDrive, Google docs or to an "1 click
hoster" (mediafire.com) and post a link here.

On 23 Feb., 01:34, michael sorens <birdwatche...@gmail.com> wrote:
> Thanks for the suggestion. I've done the xperf trace. The file is about
> 5MB. Do I just attach it to one of my replies here or is there a separate
> location to upload such a file?
>

> > > > To unsubscribe from this discussion, e-mail: [
> > > > users-unsubscr...@tortoisesvn.tigris.org].
>
> > > ------------------------------------------------------
> >http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMess...
>
> > > To unsubscribe from this discussion, e-mail: [
> > users-unsubscr...@tortoisesvn.tigris.org].
>
> > ------------------------------------------------------
>
> >http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMess...
>
> > To unsubscribe from this discussion, e-mail: [
> > users-unsubscr...@tortoisesvn.tigris.org].
>
> ------------------------------------------------------http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMess...
>
> To unsubscribe from this discussion, e-mail: [users-unsubscr...@tortoisesvn.tigris.org].

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

michael sorens

unread,
Feb 23, 2012, 11:32:18 AM2/23/12
to us...@tortoisesvn.tigris.org

Stefan Küng

unread,
Feb 23, 2012, 1:21:57 PM2/23/12
to us...@tortoisesvn.tigris.org
On 23.02.2012 17:32, michael sorens wrote:
> Done. The xperf data file is now available at
> https://docs.google.com/open?id=0B19mZ47mqOuHZjM0ZmEyNDUtYzdmNi00Y2M5LTg3YTYtNjM5MGM3MzNjZjMy

Which version of TSVN are you using?

Maybe a dump will get me more information:
start e.g. the settings dialog, and while it uses all CPU open the
process explorer, right-click on TortoiseProc.exe and save the dump file
somewhere (minidump should be enough).

Stefan


--
___
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest Interface to (Sub)Version Control
/_/ \_\ http://tortoisesvn.net

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

Andre.Ziegler

unread,
Feb 23, 2012, 3:22:29 PM2/23/12
to us...@tortoisesvn.tigris.org
you used the wrong flags. I need the profile data.

Run this instead:

xperf -start perf!GeneralProfiles.InBuffer && timeout -1 && xperf -
stop perf!GeneralProfiles.InBuffer TSVNissue.etl

this captures the required data. But I can see that you use TSV 1.7.3
and not the latest version. Next you use a VM with only 1 CPU core
assigned and you miss all Windows Updates including the Sp1.

On 23 Feb., 17:32, michael sorens <birdwatche...@gmail.com> wrote:
> Done. The xperf data file is now available athttps://docs.google.com/open?id=0B19mZ47mqOuHZjM0ZmEyNDUtYzdmNi00Y2M5...

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

michael sorens

unread,
Feb 23, 2012, 7:34:36 PM2/23/12
to us...@tortoisesvn.tigris.org
Version info: 1.7.3 Build 22386

I did not see any choice for selecting minidump or full dump, so all I could do was a full dump.
File uploaded to https://docs.google.com/open?id=0B19mZ47mqOuHRndzZ3RuZjdSVzJKcG1NUFo5VEsyQQ

Stefan Küng

unread,
Feb 24, 2012, 10:09:00 AM2/24/12
to us...@tortoisesvn.tigris.org
On 24.02.2012 01:34, michael sorens wrote:
> Version info: 1.7.3 Build 22386
>
> I did not see any choice for selecting minidump or full dump, so all I
> could do was a full dump.
> File uploaded to
> https://docs.google.com/open?id=0B19mZ47mqOuHRndzZ3RuZjdSVzJKcG1NUFo5VEsyQQ


Seems your system has problems with API hooking.
Delete the crashrpt.dll from the TSVN bin directory and you should be fine.

Stefan

--
___
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest Interface to (Sub)Version Control
/_/ \_\ http://tortoisesvn.net

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

michael sorens

unread,
Feb 25, 2012, 10:42:47 PM2/25/12
to us...@tortoisesvn.tigris.org
I deleted crashrpt.dll as you suggested and indeed, all TortoiseSVN commands now respond very quickly. I am curious (probably because I am not the one who would have to spend time answering this :-) whether that means there is a problem with my computer, whether it indicates a use case not covered by TortoiseSVN that will be fixed in a later version, or something else...?

I will completely understood if you do not have the time to follow-up on this.

In any case, thanks for coming up with a solution, Stefan. TortoiseSVN is a great piece of software!

Stefan Küng

unread,
Feb 27, 2012, 2:09:56 PM2/27/12
to us...@tortoisesvn.tigris.org, michael sorens
On 26.02.2012 04:42, michael sorens wrote:
> I deleted crashrpt.dll as you suggested and indeed, all TortoiseSVN
> commands now respond very quickly. I am curious (probably because I am
> not the one who would have to spend time answering this :-) whether that
> means there is a problem with my computer, whether it indicates a use
> case not covered by TortoiseSVN that will be fixed in a later version,
> or something else...?

The cause was the API hooking the crash report dll did to prevent the
c-runtime from re-setting the exception handlers. Not sure why that
would take so long on your machine. Usually that's a sign of virus
scanners since they don't like processes doing hooking.

> I will completely understood if you do not have the time to follow-up on
> this.
>
> In any case, thanks for coming up with a solution, Stefan. TortoiseSVN
> is a great piece of software!

I've replaced our own crash report dll with this one:
http://code.google.com/p/crashrpt/
which should work better.

So I hope this issue will not show up anymore.

Stefan

--
___
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest Interface to (Sub)Version Control
/_/ \_\ http://tortoisesvn.net

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

Reply all
Reply to author
Forward
0 new messages