Ok, so i'm going nuts here, v8 v.
I have a worker thread that is executed based on events raised from my object.
The thread uses the *same* isolate and context from the JS object
So the thread is initiated like below and is working.
Isolate* isolate = object_->isolate_;Isolate::Scope
isolate_scope(isolate);HandleScope handle_scope(isolate);Context::Scope
context_scope(isolate->GetCurrentContext());
...
Local<Object> new_obj(obj_templ->NewInstance()); <----
The problem arises when v8 runs out of memory and v8 calls the garbage collector
to free some space before creating the object. Then i get a crush:
#
# Fatal error in ..\..\src\frames.cc, line 1333
# CHECK(it.done()) failed
#
With the following stack:
v8::internal::OS::DebugBreak() Line 953 C++
v8::internal::OS::Abort() Line 941 C++ V8_Fatal(0x00efa784, 1333,
0x00efa770, ...) Line 86 C++ v8::internal::EntryFrame::Iterate(0x04c2e498)
Line 1333 C++ v8::internal::Isolate::Iterate(0x04c2e498, 0x017b4e8c) Line
497 C++ v8::internal::Isolate::Iterate(0x04c2e498) Line 508 C++
v8::internal::Heap::IterateStrongRoots(0x04c2e498, VISIT_ALL_IN_SCAVENGE)
Line 6383 C++ v8::internal::Heap::IterateRoots(0x04c2e498,
VISIT_ALL_IN_SCAVENGE) Line 6357 C++ v8::internal::Heap::Scavenge() Line
1395 C++ v8::internal::Heap::PerformGarbageCollection(SCAVENGER,
0x04c2e568) Line 958 C++ v8::internal::Heap::CollectGarbage(NEW_SPACE,
SCAVENGER, 0x00e23fb0, 0x00000000) Line 681 C++
v8::internal::Heap::CollectGarbage(NEW_SPACE, 0x00e23fb0) Line 546 C++
v8::internal::CopyAddConstantDescriptor({...}, {...}, {...}, FROZEN,
OMIT_TRANSITION) Line 1991 C++
v8::internal::JSObject::AddConstantProperty({...}, {...}, {...}, FROZEN,
INSERT_TRANSITION) Line 2011 C++ v8::internal::JSObject::AddProperty({...},
{...}, {...}, FROZEN, kNonStrictMode, MAY_BE_STORE_FROM_KEYED,
PERFORM_EXTENSIBILITY_CHECK, OPTIMAL_REPRESENTATION, ALLOW_AS_CONSTANT,
INSERT_TRANSITION) Line 2088 C++
v8::internal::JSObject::SetPropertyForResult({...}, 0x04c2e828, {...},
{...}, FROZEN, kNonStrictMode, MAY_BE_STORE_FROM_KEYED) Line 3958 C++
v8::internal::JSReceiver::SetProperty({...}, 0x04c2e828, {...}) Line 3421
C++ v8::internal::JSReceiver::SetProperty({...}, {...}, {...}, FROZEN,
kNonStrictMode, MAY_BE_STORE_FROM_KEYED) Line 2764 C++
v8::internal::Runtime::SetObjectProperty(0x017b3560, {...}, {...}, {...},
FROZEN, kNonStrictMode) Line 5198 C++
v8::internal::__RT_impl_Runtime_SetProperty({...}, 0x017b3560) Line 5349
C++ v8::internal::Runtime_SetProperty(4, 0x04c2e9dc, 0x017b3560) Line 5324
C++ v8::internal::Invoke(false, {...}, {...}, 2, 0x04c2eb6c, 0x04c2ec5f)
Line 119 C++ v8::internal::Execution::Call(0x017b3560, {...}, {...}, 2,
0x04c2eb6c, 0x04c2ec5f, false) Line 183 C++
v8::internal::Execution::ConfigureInstance(0x017b3560, {...}, {...},
0x04c2ec5f) Line 789 C++ v8::internal::Factory::ConfigureInstance({...},
{...}, 0x04c2ec5f) Line 1634 C++
v8::internal::HandleApiCallHelper<1>({...}, 0x017b3560) Line 1164 C++
v8::internal::Builtin_Impl_HandleApiCallConstruct({...}, 0x017b3560) Line
1221 C++ v8::internal::Builtin_HandleApiCallConstruct(2, 0x04c2ecbc,
0x017b3560) Line 1220 C++ v8::internal::Invoke(false, {...}, {...}, 1,
0x04c2ee68, 0x04c2eebf) Line 119 C++
v8::internal::Execution::Call(0x017b3560, {...}, {...}, 1, 0x04c2ee68,
0x04c2eebf, false) Line 183 C++
v8::internal::Execution::InstantiateObject({...}, 0x04c2eebf) Line 772 C++
v8::ObjectTemplate::NewInstance() Line 5308 C++
Can someone help me out here, or give me pointer of what is going wrong
here ?
Thanks.
--
--
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
---
You received this message because you are subscribed to the Google Groups
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.