Gallio.Utility.exe considered evil
I just blogged about this problem I was having with Gallio/MbUnit. I don’t regard the issue as fixed, but I’ve certainly worked around it.
I found that the delay happened when the tool Gallio.Utility.exe was being run during the startup process of Icarus. I noticed that the same thing happened when I tried to run other included tools like the control panel, and it also happened when using TestDriven to run an MbUnit test from VS. I had the impression that the tool was being run multiple times, but that turned out to be a mistake — the tool was simply running for a rather long time, jumping up and down a bit in the task manager list. I finally ran the tool on its own and found that (a) it has something to do with the plugins that Gallio apparently uses (for purposes unclear to me, I have to admit) and (b) even to just run the tool and display the usage info message in a console, it takes 25 seconds or so.
So, simple solutions are sometimes the best: I deleted Gallio.Utility.exe. Next run of Icarus, it was restored. Okay, MSI is more cleverer than I. Or so it thinks — I went and configured the file access permissions on the file and removed all access permissions. Hah, take that, MSI. Next run, Icarus comes up within about 3 seconds, taking another 2-3 to load my test assembly. Hah!
Running a test through TestDriven from VS takes about 3.9 seconds now, so it’s at least 2 times slower compared to running the same test through the CodeRush test runner. Weird, but then who am I to complain.
Now, could somebody please fix that Utility program before I end up needing it for something?
This is probably a red herring. Gallio.Utility.exe needs to run exactly once after installation to setup a few things. MSI should take care of that.
The first time a user runs any Gallio process it builds a plugin cache. That’s what’s taking 25 seconds and that’s also why we cache it. Once the cache is built, subsequent runs should be practically instantaneous.
We’ve been getting reports that the true culprit has to do with the way that we are looking for GAC’d assemblies used by the Visual Studio 2010 plugin. Fixing this is pretty straightforward.
It’s also possible that the plugin cache is being unnecessarily invalidated or something. I need to look into that.
LikeLike
Hi Jeff,
Thanks for the feedback! If there’s something I can do to help you see what’s happening on my system, let me know.
LikeLike
Please try v3.1 build 494 or v3.2 build 363 or newer from http://ccnet.gallio.org/Distributables/
LikeLike
Hi Jeff,
Finally found the time to try out a newer version. I got this package: GallioBundle-3.2.378.0-Setup-x86.msi
There’s good and bad news. The good news is that the problem with the Utility program hanging seems to be gone – Icarus comes up very quickly and I couldn’t see the tool in the task manager at all. The bad news is that VS 2010 support doesn’t seem to work at all. I have the RC installed and I get error messages when starting it, first about the Gallio add-in, then about the Gallio Shell Package, both of which can’t be loaded.
I’ll update my bug report in your system in a minute.
LikeLike
And another update: I got version 3.1.503 and tried that, and it doesn’t have any problems in VS 2010 (mind you, although the installer says something about the VS 2010 integration, I have yet to find any such integration in there) and it fixes my original problem as well.
LikeLike
Hehe, I just fixed that bug from v3.2.378 a couple of days ago. v3.2.385 will hopefully fix a similar issue with VS 2008.
Getting there…
LikeLike
Hi Oliver!
Many thanks to you posts. I’m experiencing the same problem with Gallio..
I see that latest release GallioBundle-3.2.456.0-Setup-x86.msi, going to try that, hopefully issue is fixed there.
LikeLike
Yeap, just installed on VS2008.. could confirm that problem is gone)
Galio is good software especially than start work good !
LikeLike
my happiness was not so long.. with this version I’m not able to run all tests of test assembly and it throws expections on start of each test.
gonna try earlier versions.
http://code.google.com/p/mb-unit/issues/detail?id=673
LikeLike