On Fri, Jan 28, 2011 at 6:45 AM, Greg Geldorp ggeldorp@vmware.com wrote:
... I started by running your test binary 10,000 times on W7PROX64. Not a single crash, so that looked kind of promising. Just to be sure, I then ran the binary on a dual-core Win7 x64 machine (the W7PROX64 VM has only one core assigned to it). This resulted in an immediate crash. Tried a few more times, it crashed 9 out of 10 times.
To make sure that these crashes are related to your patch, I ran the test without your patch on the same dual-core machine. First few tries didn't produce crashes, I then ran it in a loop 10,000 times. Not a single crash.
So, it looks like your patch introduces some multi-threading issue. I haven't investigated further, perhaps I'll have some time over the weekend to dig a bit deeper.
Hmm, interesting - thanks for taking a look into this, I really appreciate it. I ran a test on a different XP SP3 machine here (this time a dual-core) and it worked just fine. So, at first I thought this must be an issue to the combination of multi-core and Windows 7. However, if the location of the exception has anything to say about it (crashing after test_Navigate2:test_LocationURL), then my guess would be that it's because of the "wb" global. I didn't notice this before (or if I did, I forgot) but test_Navigate2:test_ready_state uses the IWebBrowser2 "wb" global, which I did not initialize until after test_Navigate2. If you wouldn't mind giving it a try on your system where the error is reproducible, I've attached a revised patch where this variable is initialized properly.
Erich Hoover ehoover@mines.edu