I run the fatal error reported by V8 when I run the following program:
var Fiber = require("fibers");
Fiber(function () {});
global.gc();
The command used to run it:
> node --expose-gc scratch.js
The text of the fatal error is as follows:
#
# Fatal error in ..\..\src\global-handles.cc, line 99
# CHECK(state_ != FREE) failed
#
I use the following versions:
- node 0.10.25 x86 (built
vcbuild x86 Debugusing VC2013) - node-fibers 1.0.1 taken from GitHub repository (not npmjs)
A confirmation error occurs below the call gc(). Here, the call stack from the GC callback redirects back fibersto the ASSERT statement:
node.exe!v8::internal::GlobalHandles::Node::Release(v8::internal::GlobalHandles * global_handles) Line 99 C++
node.exe!v8::internal::GlobalHandles::Destroy(v8::internal::Object * * location) Line 431 C++
node.exe!v8::V8::DisposeGlobal(v8::internal::Object * * obj) Line 680 C++
node.exe!v8::Persistent<v8::Object>::Dispose() Line 4241 C++
fibers.node!Fiber::`scalar deleting destructor'(unsigned int) C++
fibers.node!Fiber::WeakCallback(void * data) Line 235 C++
fibers.node!uni::WeakCallbackShim<&Fiber::WeakCallback>(v8::Persistent<v8::Value> value, void * data) Line 111 C++
node.exe!v8::internal::GlobalHandles::Node::PostGarbageCollectionProcessing(v8::internal::Isolate * isolate, v8::internal::GlobalHandles * global_handles) Line 233 C++
This fatal error does not appear in the Releasenode version . However, it seems to subtly damage the V8 engine, and ultimately it doesn't work a bit on the line in a random piece of code.
, , , . - fibers?