You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While the original cause is not known, current code is also quite dangerous. Despite the fact that isolate object is available, the global one is used.
All the places can be changed in com_eclipsesource_v8_V8Impl.cpp to what is believed to be more thread safe code.
v8::TryCatch::TryCatch()
: isolate_(i::Isolate::Current()),
next_(isolate_->try_catch_handler()),
is_verbose_(false),
can_continue_(true),
capture_message_(true),
rethrow_(false),
has_terminated_(false) {
ResetInternal();
// Special handling for simulators which have a separate JS stack.
js_stack_comparable_address_ =
reinterpret_cast<void*>(v8::internal::SimulatorStack::RegisterCTryCatch(
isolate_, v8::internal::GetCurrentStackPosition()));
isolate_->RegisterTryCatchHandler(this);
}
v8::TryCatch::TryCatch(v8::Isolate* isolate)
: isolate_(reinterpret_cast<i::Isolate*>(isolate)),
next_(isolate_->try_catch_handler()),
is_verbose_(false),
can_continue_(true),
capture_message_(true),
rethrow_(false),
has_terminated_(false) {
ResetInternal();
// Special handling for simulators which have a separate JS stack.
js_stack_comparable_address_ =
reinterpret_cast<void*>(v8::internal::SimulatorStack::RegisterCTryCatch(
isolate_, v8::internal::GetCurrentStackPosition()));
isolate_->RegisterTryCatchHandler(this);
}
Rationale is that most likely the following code is returns null:
i::Isolate::Current()
It may seem therefore better to use a constructor to which isolate is explicitly passed rather than inferred via a static call.
We are observing the following crash on 4.8.0 release in production usually every 2-3 hours:
The text was updated successfully, but these errors were encountered: