Sorry that it took this long to reply. >From what I can see, StackGuard::ResumeExecution() also causes an assertion to fail. The TERMINATE-bit has already been cleared as soon as the interrupt is being handled by Execution::HandleStackGuardInterrupt. The assert in StackGuard::ResumeExecution() is therefore bogus, as it expects the bit to be set.
I think that setting external_caught_exception_ to false should be safe. However, I stumbled upon the fields in v8::TryCatch. After resuming execution, shouldn't the has_terminated_ be set to false again? And does can_continue_ even have the correct meaning if we can continue with ResumeExecution anyways? I suggest renameing it to RevokeTerminateExecution, UnterminateExecution or something similar, since that makes clear that calling it explicitly revokes TerminateExecution. Regards, Yang On Fri, Dec 14, 2012 at 5:54 PM, Andrew Paprocki <[email protected]> wrote: > When is isolate->thread_local_top_->external_caught_exception_ supposed to > be set to false when a C++ TryCatch has caught the exception? > > I found the issue, but it seems that once my C++ TryCatch has caught the > termination exception, it is the isolate scheduled exception and > external_caught_exception_ is true. After calling ResumeExection() in the > test case, an assert is hit when trying to run another script because this > value is still true. I thought I only needed to set it to false if the > termination exception was the pending exception.. If I make > ResumeExecution() always set external_caught_exception_ to false, > everything works, but I'm not sure if that is the correct thing to do. > > -Andrew > > > On Fri, Dec 14, 2012 at 3:03 AM, Sven Panne <[email protected]>wrote: > >> On Thu, Dec 13, 2012 at 10:57 PM, Andrew Paprocki <[email protected]>wrote: >> >>> Is there any way I can see the log of the failure? I'll boot up a vm and >>> see if I can track it down in the meantime. >> >> >> Looking at out build bots, firing up a VM is not even necessary, v8's own >> test suite fails in debug mode on Linux with the CL. >> >> > > -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
