Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Broken on node master (soon to be Node 10) #87

Open
mcollina opened this issue Feb 9, 2018 · 4 comments · May be fixed by #93
Open

Broken on node master (soon to be Node 10) #87

mcollina opened this issue Feb 9, 2018 · 4 comments · May be fixed by #93

Comments

@mcollina
Copy link

mcollina commented Feb 9, 2018

This module is currently failing on node citgm, very likely because of some V8 updates. This module will stop working in the next Node.js major if it is not updated.

Full log:

       > weak@1.0.1 install /home/iojs/build/workspace/citgm-smoker/nodes/ppcbe-ubuntu1404/citgm_tmp/fb64afdd-19f8-4b35-9a26-3cbb28572c55/weak
 > node-gyp rebuild
 make: Entering directory `/home/iojs/build/workspace/citgm-smoker/nodes/ppcbe-ubuntu1404/citgm_tmp/fb64afdd-19f8-4b35-9a26-3cbb28572c55/weak/build'
   CXX(target) Release/obj.target/weakref/src/weakref.o
   SOLINK_MODULE(target) Release/obj.target/weakref.node
   COPY Release/weakref.node
 make: Leaving directory `/home/iojs/build/workspace/citgm-smoker/nodes/ppcbe-ubuntu1404/citgm_tmp/fb64afdd-19f8-4b35-9a26-3cbb28572c55/weak/build'
 added 20 packages in 8.163s
 > weak@1.0.1 test /home/iojs/build/workspace/citgm-smoker/nodes/ppcbe-ubuntu1404/citgm_tmp/fb64afdd-19f8-4b35-9a26-3cbb28572c55/weak
 > mocha -gc --reporter spec
   weak()
     Buffer
       ✓ should invoke callback before destroying Buffer 
   weak()
     garbage collection callback
       ✓ should accept a function as second argument 
       ✓ should invoke the callback before the target is gc'd 
       ✓ should invoke *all* callbacks in the internal "callback" Array 
       ✓ should preempt code for GC callback but not nextTick callbacks 
   callbacks()
     ✓ should return the Weakref's "callback" Array 
   removeCallback()
     ✓ removed callbacks should not be called 
   removeCallbacks()
     ✓ removed callbacks should not be called 
   create()
     ✓ should throw on non-"object" values 
   exports
     ✓ should be a function 
     ✓ should have a function "get" 
     ✓ should have a function "create" 
     ✓ should have a function "isWeakRef" 
     ✓ should have a function "isNearDeath" 
     ✓ should have a function "isDead" 
     ✓ should have a function "callbacks" 
     ✓ should have a function "addCallback" 
     ✓ should have a function "removeCallback" 
     ✓ should have a function "removeCallbacks" 
     ✓ should be a circular reference to "create" 
   Weakref
     ✓ weak() should return a `Weakref` instance 
     ✓ should proxy named gets to the target 
     ✓ should proxy named sets to the target 
     ✓ should proxy named deletes to the target 
     ✓ should proxy indexed gets to the target 
     ✓ should proxy indexed sets to the target 
     ✓ should proxy indexed deletes to the target 
 #
 # Fatal error in ../deps/v8/src/keys.cc, line 481
 # Check failed: element->ToUint32(&number).
 #
 Trace/breakpoint trap (core dumped)
 npm ERR! Test failed.  See above for more details.
@targos
Copy link

targos commented Apr 6, 2018

Reduced test case:

var weak = require('./')
var o = { a: 'a' };
var r = weak(o);
Object.keys(r)

@targos
Copy link

targos commented Apr 6, 2018

Debug stack trace:

#0  0x0000000001597fd9 in v8::base::OS::Abort() ()
#1  0x00000000015941fb in V8_Fatal(char const*, int, char const*, ...) ()
#2  0x0000000000f1c393 in v8::internal::(anonymous namespace)::CollectInterceptorKeysInternal(v8::internal::Handle<v8::internal::JSReceiver>, v8::internal::Handle<v8::internal::JSObject>, v8::internal::Handle<v8::internal::InterceptorInfo>, v8::internal::KeyAccumulator*, v8::internal::(anonymous namespace)::IndexedOrNamed) ()
#3  0x0000000000f1d741 in v8::internal::KeyAccumulator::CollectOwnElementIndices(v8::internal::Handle<v8::internal::JSReceiver>, v8::internal::Handle<v8::internal::JSObject>) ()
#4  0x0000000000f1ea0a in v8::internal::KeyAccumulator::CollectOwnKeys(v8::internal::Handle<v8::internal::JSReceiver>, v8::internal::Handle<v8::internal::JSObject>) ()
#5  0x0000000000f1f715 in v8::internal::KeyAccumulator::CollectKeys(v8::internal::Handle<v8::internal::JSReceiver>, v8::internal::Handle<v8::internal::JSReceiver>) ()
#6  0x0000000000f1fad0 in v8::internal::KeyAccumulator::GetKeys(v8::internal::Handle<v8::internal::JSReceiver>, v8::internal::KeyCollectionMode, v8::internal::PropertyFilter, v8::internal::GetKeysConversion, bool) ()
#7  0x00000000010ed562 in v8::internal::Runtime_ObjectKeys(int, v8::internal::Object**, v8::internal::Isolate*) ()
``

@BridgeAR
Copy link

@TooTallNate PTAL

@lxe
Copy link

lxe commented Apr 25, 2019

Is this module even going to be possible after NearDeath deprecation?

v8/v8@06193b0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants