Sitelet https://github.com/nodejs/node/issues/13
Skip to content

Failed assert in AsyncWrap::MakeCallback(uint32_t, int, Handle) from test-timers-unref.js on ARM #13

Description

@rvagg

Only seen on ARMv7 and goes away when you comment out this line (which does t.unref.bind(t)).

node: ../src/async-wrap-inl.h:245: v8::Handle<v8::Value> node::AsyncWrap::MakeCallback(uint32_t, int, v8::Handle<v8::Value>*): Assertion `cb->IsFunction()' failed.

https://jenkins-node-forward.nodesource.com/job/iojs+v0.12+multi/nodes=node-forward-nodesource-armv7-ubuntu1404/13/console

Could this be a libuv thing perhaps?

ARMv7 machine now hooked up to the CI cluster and will run with the rest of them.

Activity

  1. bnoordhuis commented on Nov 29, 2014

    @bnoordhuis
    Member

    It's at least partially a bug in async-wrap-inl.h because the code first casts to v8::Function before checking whether the object is really a function.

    That's not the root cause, though. The error message suggests that timer[0] (that's where JS land stores the timeout callback) is not a function. Can I get access to that machine? I probably have to do some printf-style debugging to figure out where things go wrong.

  2. rvagg commented on Nov 29, 2014

    @rvagg
    MemberAuthor

    will privmsg on irc

  3. bnoordhuis commented on Nov 29, 2014

    @bnoordhuis
    Member

    Short status update: the callback field is undefined, hence the assert.

    (gdb) call (*('v8::internal::Object'**) 0x11ed4a8)->Print()
    0x5b079385: [JSObject]
     - map = 0x5f20fb01 [FAST_HOLEY_ELEMENTS]
     - prototype = 0x5b0639d9
     {
       #domain: 0x47e08091 <undefined> (field at offset 0)
       0: 0x47e08091 <undefined>
       1: 0x47e080a1 <the hole>
       2: 0x47e080a1 <the hole>
       3: 0x47e080a1 <the hole>
       4: 0x47e080a1 <the hole>
       5: 0x47e080a1 <the hole>
       6: 0x47e080a1 <the hole>
       7: 0x47e080a1 <the hole>
       8: 0x47e080a1 <the hole>
       9: 0x47e080a1 <the hole>
       10: 0x47e080a1 <the hole>
       11: 0x47e080a1 <the hole>
       12: 0x47e080a1 <the hole>
       13: 0x47e080a1 <the hole>
       14: 0x47e080a1 <the hole>
       15: 0x47e080a1 <the hole>
       16: 0x47e080a1 <the hole>
     }
    

    Now to figure out why.

  4. self-assigned this
    on Dec 9, 2014
  5. added this to the milestone on Dec 9, 2014
  6. added a commit that references this issue on Nov 30, 2017
  7. added a commit that references this issue on Sep 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions