RESOLVED INVALID 25454
ASSERT in CodeBlock::reparseForExceptionInfoIfNecessary after reloading mlb.com while stopped at a JS breakpoint
https://bugs.webkit.org/show_bug.cgi?id=25454
Summary ASSERT in CodeBlock::reparseForExceptionInfoIfNecessary after reloading mlb.c...
Geoffrey Garen
Reported 2009-04-28 12:32:05 PDT
4/22/09 3:03 AM Alexey Proskuryakov: I'm often getting an assertion failure/crash when trying to reproduce <rdar://problem/6216106>. 1. Get a local copy of <http://oakland.athletics.mlb.com/> from <rdar://problem/6425077>. 2. Open index.html, and enable debugging in Web Inspector. 3. Set a breakpoint in trays.js in function function resetMenues. 4. Hover top menu on the page, which will make JS stop on the breakpoint. 5. Reload the page. 6. Step over in JS debugger, which is still stopped. Results: an assertion failure in CodeBlock::reparseForExceptionInfoIfNecessary(): ASSERT(newCodeBlock.m_instructionCount == m_instructionCount); This is not 100% reproducible, but happens often. In release builds, a crash occurs. 4/23/09 3:12 PM Geoff Garen: Specifically, the assertion means that we compiled the same chunk of code twice, and got a different result the second time. This probably indicates an error in the bytecode and/or JIT compiler. 4/23/09 3:45 PM Geoff Garen: One clue: Simply loading this page with the debugger enabled produces many syntax and runtime errors that aren't there with the debugger disabled. So the debugger seems to be wreaking havoc on source code and/or compilation.
Attachments
oakland.athletics.mlb.com (1.50 MB, application/octet-stream)
2009-04-28 12:34 PDT, Geoffrey Garen
no flags
Geoffrey Garen
Comment 1 2009-04-28 12:34:53 PDT
Created attachment 29859 [details] oakland.athletics.mlb.com
Geoffrey Garen
Comment 2 2009-04-28 12:36:41 PDT
Cameron Zwarich (cpst)
Comment 3 2009-05-11 18:26:56 PDT
The bytecode generated after reparsing doesn't have any debug hooks, causing a difference in size between the old and the new bytecode.
Cameron Zwarich (cpst)
Comment 4 2009-05-11 18:40:38 PDT
Since debuggers detach themselves from global objects, it seems that the only way to fix this is to have CodeBlocks record whether they were generated with debug hooks.
Gavin Barraclough
Comment 5 2011-07-20 11:58:58 PDT
This ASSERT no longer exists (reparsing has been removed), and the linked radar is closed. Nothing to fix here.
Note You need to log in before you can comment on or make changes to this bug.