I have a website that suddenly began to crash Internet Explorer.
The website loads and runs javascript, but somewhere there the machine explodes. I don't even get the script error, it just crashes. I tried to manually go through each js line with a built-in debugger, but then, of course, the problem does not arise.
If I decide to debug the application when it crashes, I see the following message.
Unhandled exception at 0x6c5dedf5 in iexplore.exe: 0xC0000005: read access violation location 0x00000090.
The top 5 items in the call stack look like this:
Vgx.dll! 6c5dedf5 ()
[The frames below may be incorrect and / or missing, characters loaded for VGX.dll]
Vgx.dll! 6c594d70 ()
Vgx.dll! 6c594f63 ()
Vgx.dll! 6c595350 ()
Vgx.dll! 6c58f5e3 ()
mshtml.dll! 6f88dd17 ()
VGX.dll seems to be part of the vml renderer, and I actually use VML. I am not surprised because I had so many problems with vml, attributes must be set in a certain order, sometimes you cannot set attributes when you have elements attached to dom or vice versa (all undocumented by the way), but then problems usually can be played during debugging, but not now :(
The problem also occurs without plugins.
Is there a better way than trial and error to solve this problem?
Edit: Adding a console displaying each suspicious modification to the DOM caused the problem only occasionally. (the console is also implemented in javascript on the same page, I can see the result even after a crash, since the window is still visible). Apparently, this looks like some kind of race condition.
I managed to track it even more, and it seems to happen when you delete an object from the DOM too quickly after adding it. (most likely, only for vml elements with some special attribute, they no longer tried) And it cannot be fixed by adding a dead loop before removeChild (in any case, this is a pretty bad solution), the page should be displayed once after addChild browser before you can call removeChild. Sigh