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

Re: Problem launching Embarcadero ER/Studio after installing TortoiseSVN

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: 2007-04-28 15:54:04 CEST

Jim Brodrick wrote:
> The latest two released versions of TortoiseSVN (1.4.2 and 1.4.3) are
> incompatible with the latest release (7.1.2) of Embarcadero ER/Studio.
> Our application crashes on launch after TortiseSVN has been installed.
> The crash does not happen with TortoiseSVN 1.4.1.
>
> The crash appears to be related to hooking dlls loaded with our
> application. I have done Dependency Walker traces with TortoiseSVN
> 1.4.1 and 1.4.2. In 1.4.2, tortoisesvn.dll gets a stack overflow error
> at one point, then ntdll crashes a little while later. I can zip the
> traces up as text files and send them to you if that will help.

I've downloaded ERStudio 7.1 (the trial version), installed it and tried
to reproduce the crash. And now I'm in a really bad mood:

* the installer fills up the whole screen, but doesn't take into account
   that some people have the taskbar enlarged to two (or more) columns.
   First of all: an installer must *never*, *ever* take the whole screen.
   I'd like to keep working on my own stuff while some app gets
   installed, especially if it takes as long as yours.
* After installing, I tried to start your app. Nothing happened. Nada.
   No error message, nothing. Using some tools I found that the app
   really got started, but quit right away. Now I started to wonder:
   was the installation ok? Do I miss some files? A registration key
   perhaps? My best guess: you have some global crash handler which
   'cleanly' exits your app if something goes wrong. But that's a bad
   idea - at least an error message or something would be nice.
* Fired up the dependency walker. Found out that while you're installing
   the MFC7.1 dll's, you don't install the *LOC dlls of MFC7.1. Which
   means while you won't get a crash by this, you'll eventually get into
   serious problems on non-english OS.
* Started the dependeny walker profiling. I guess that's what you did
   to find out that somehow TSVN was involved. Yes, the output of that
   profiling might look like it happens in the tsvn dll, but it doesn't.
* Startet VS2005, made it start ERSTUDIO.exe. *now* I got the crash.
* some long analysis later I found out that:
   - it's not the fault of TSVN.
   - while the tsvn dll is loaded, no piece of code inside the dll is
     ever called.
   - the stack overflow you mentioned happens in ERSTUDIO.exe, not the
     tsvn dll.
* since I now know why the crash happens, I tried to uninstall your app
   (it's a trial version after all, and I really have absolutely no use
   for it). See the emphasis on 'tried' to uninstall?
   Every attempt to uninstall your app only shows an error dialog:

---------------------------
>SetupDLL\SetupDLL.cpp (469)

pAPP:Embarcadero ER/Studio 7.1.2

PVENDOR:Embarcadero Technologies, Inc.

PGUID:975147A4-5167-444C-B52D-FA2A24F9F3CD

$10.1.0.238

@Windows XP Service Pack 2 (2600) BT_OTHER 376.22
---------------------------

really nice!
Now I had to manually remove your app, and search the registry for
entries it installed.

Some hints about your app:
* any application is required to put an entry in the software panel for
later uninstalling. Just a shortcut from the programs menu is not enough
(actually, it's against the windows guidelines to put such a shortcut
there). Your app doesn't have an entry to uninstall it in the software
panel.
* You install some 'shared dlls' of your own, under
HKLM\Software\Microsoft\windows\currentversion\shareddlls. But that
shared dll is in your apps installation path. Which means that entry is
bogus and wrong. Only put your dlls there if you put those dlls in a
shared folder.
* test your installer, and especially your uninstaller. Believe me: if a
user can't uninstall a trial version, he will *never* consider buying
your product, even if he really could use it otherwise.
* Entering a lot of personal information on your website just to get a
trial version is bad. Has your marketing department not realized yet
that most people just enter bogus data there anyway? Trial versions
should be easy available.

And once again: fix your uninstaller!!!!!!

Oh, and a little hint on where you can look to find out why your app
crashes: uninstall TSVN, but then install two or three other shell
extensions. Doesn't matter what kind of shell extensions, just install a
few of them (TSVN is maybe a little bit bigger than others, that's why
you may have to install more than just one other extension). And you'll
get the same effect.

> CONFIDENTIALITY NOTICE: This email message is for the sole use of the intended recipient(s)
> and may contain confidential and privileged information. Any unauthorized review, use,
> disclosure or distribution is prohibited. If you are not the intended recipient, please
> contact the sender by reply email and destroy all copies of the original message.

By sending an email to ANY of my addresses you are agreeing that:
  1. I am by definition, "the intended recipient"
  2. All information in the email is mine to do with as I see fit and
     make such financial profit, political mileage, or good joke as it
     lends itself to. In particular, I may quote it on usenet.
  3. I may take the contents as representing the views of your company.
  4. This overrides any disclaimer or statement of confidentiality that
     may be included on your message.

Stefan

-- 
        ___
   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
    /_/   \_\     http://tortoisesvn.net
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tortoisesvn.tigris.org
For additional commands, e-mail: users-help@tortoisesvn.tigris.org
Received on Sat Apr 28 15:54:23 2007

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

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