TortoiseSVN Interferes With Windows Logoff

miqrogroove
2011-04-03T17:04:58+00:00
Context menu selections showing where to find the TortoiseSVN settings.

TortoiseSVN Context Menu

Three years ago, around the time that I became actively involved in open source development, my primary Windows XP workstation started behaving strangely whenever I told it to shut down or log off my user account.  The most annoying symptom was that the “Saving your settings” step would take over 60 seconds to complete.  The CPU was pegged during that time, causing slow movement of the log off screen and mouse pointer.  During each consecutive log off, the problem seemed to get slightly worse and take slightly more time.  The Windows Event Log was filling up with warning messages labeled Event ID 1517, “Windows saved user (DOMAIN\Username) registry while an application or service was still using the registry during log off. The memory used by the user’s registry has not been freed. The registry will be unloaded when it is no longer in use.”

Troubleshooting Goes Nowhere Fast

The event log message looked like a good starting point to try to find a resolution for the problem.  In fact, the symptoms were identical to those described in Microsoft’s KB article “You experience log off problems …” According to that article, the solution is to install the Microsoft User Profile Hive Cleanup Service.  But, to make a long story short, that didn’t help at all.  I took my results and debug logs over to Experts Exchange and posted them under the title, “Troubleshooting Logoff Issues with UPHClean.”  With the help and encouragement of fellow experts, we figured out that the DCOM Server Process Launcher service was causing the registry memory issue, but the CPU was being pegged by a different process called winlogon.exe.

At the point where everyone was ready to give up with troubleshooting, we decided that the “bug” was confined to the files stored in my workstation user profile, and the simplest solution was to delete the profile and make a new one.  Problem solved.  Sort of.  Over the next several months, it became obvious that the problem had not disappeared, but was slowly creeping back.  Each log off was still taking slightly more time than the one before.  Every few months, I had to delete my user profile and start again from scratch to get my computer to shut down properly.

TortoiseSVN Becomes Suspect

I had several reasons to be suspicious of the TortoiseSVN client for Windows.  First and foremost, I had always known it to be a resource hog.  It has a resident process that in older versions used unreasonable amounts of memory, even when SVN was not in use.  Newer versions have made it less of a memory hog, but there were still things about it that bothered me.

The second major reason to be suspicious of TortoiseSVN is its default integration with Windows Explorer.  Any time Windows Explorer is open, that resident process does a scan of every subfolder in view to determine if it contains a SVN “checkout”.  When those SVN files are present, it changes the folder’s icon.  It also adds a context menu item to every folder and file.  In many other applications, I found that the context menu items added to the shellex keys of HKEY_CLASSES_ROOT became resource hogs and caused the entire operating system to slow down.

Last but not least, the log off problems began and eventually disappeared at times that coincided with the installation and removal of TortoiseSVN from my computer.  I also noticed that the problem could not be reproduced on any of my other computers, possibly because none of them had TortoiseSVN installed.

Solution

Because the Explorer context menu integration is rather critical to the usefulness of TortoiseSVN, I hoped that it was not the direct cause of my log off problem.  I left the context menu alone and, fortunately, it did not factor into the solution.

Also fortunate is the ability to disable those custom folder icons.  They serve no purpose that I know of, and seem to be the direct cause of the resource hogging, as well as my user profile corruption.

The General Settings dialog box from TortoiseSVN showing the settings tree and general options.Since the TortoiseSVN context menu is installed for every file and folder on your computer, you can find the configuration screen by right-clicking on any file or folder, and then clicking on the sub-menu item “Settings.”  Then navigate the Settings tree to the Icon Overlays page.

Settings dialog box showing the Icon Overlay options for TortoiseSVN.To fully disable the Icon Overlay feature you must change several of the default options:  Set the “Status cache” to None.  Clear all of the check boxes under Drive Types.  Then, click the OK button.  You now have a much faster and still very functional SVN client.

While this is not a definitive analysis of the underlying problem, nor is it the only possible cause of Event ID 1517, I can say with confidence that I am no longer experiencing any of the original symptoms, and I wouldn’t touch this Icon Overlay feature again with a ten-foot pole!

3 Apr 2011

Category:
Systems Engineering

Tags:
,

Discuss:
3 Comments

Comment Feed

3 Comments

  • Lazy Badger says:

    I have two different hosts with XP and TSVN, both with TSVN in action more than year (~1.5y and more) with single profile from install time to now
    No slowdown detected

    • miqrogroove says:

      I’m glad to hear this problem doesn’t affect everyone. One other major change between 1.5 – 3 years ago was the release of Windows XP SP3. But exactly which circumstances would replicate the problem, I’m not sure.

Write a Comment