-
Notifications
You must be signed in to change notification settings - Fork 29.7k
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
Failed assert in AsyncWrap::MakeCallback(uint32_t, int, Handle) from test-timers-unref.js on ARM #13
Comments
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 |
will privmsg on irc |
Short status update: the callback field is undefined, hence the assert.
Now to figure out why. |
Fixes the following assertion on slow systems, like our ARM buildbot: $ out/Debug/node test/simple/test-timers-unref.js node: ../src/async-wrap-inl.h:101: v8::Handle<v8::Value> node::AsyncWrap::MakeCallback(uint32_t, int, v8::Handle<v8::Value>*): Assertion `cb_v->IsFunction()' failed. Aborted The reason it only manifests on slow systems is that the test starts a 1 ms interval timer, then defers timer.unref.bind({}) to the next tick. On fast systems, the test completes in under a millisecond, before the callback is called. This commit makes timer.unref() check that the receiver actually has a timeout callback property. Fixes nodejs#13. PR-URL: nodejs#165 Reviewed-By: Rod Vagg <rod@vagg.org>
This commit removes the addition of a void* cast ptr_arg_cmd. The motivation of this is that currently the jlh command does not work. For example: (lldb) jlh env()->quic_on_socket_ready_function() With this change the jlh command works as expected: (lldb) (lldb) jlh env()->quic_on_socket_ready_function() 0x3d6bd6c81c29: [Function] - map: 0x3d6babdc0751 <Map(HOLEY_ELEMENTS)> [FastProperties] - prototype: 0x3d6b6f140979 <JSFunction (sfi = 0x3d6ba9988179)> - elements: 0x3d6bbfe00bf9 <FixedArray[0]> [HOLEY_ELEMENTS] - function prototype: - initial_map: - shared_info: 0x3d6b45e48011 <SharedFunctionInfo onSocketReady> - name: 0x3d6b45e48069 <String[nodejs#13]: onSocketReady> - builtin: CompileLazy - formal_parameter_count: 1 - kind: NormalFunction - context: 0x3d6bd6ca1e51 <FunctionContext[144]> - code: 0x1c1635244721 <Code BUILTIN CompileLazy> - source code: (fd) { this[owner_symbol][kReady](fd); } - properties: 0x3d6bbfe00bf9 <FixedArray[0]> { #length: 0x3d6ba9980491 <AccessorInfo> (const accessor descriptor) #name: 0x3d6ba9980421 <AccessorInfo> (const accessor descriptor) #prototype: 0x3d6ba9980501 <AccessorInfo> (const accessor descriptor) } - feedback vector: feedback metadata is not available in SFI I'm not sure yet how the other commands that use ptr_arg_cmd are affected but thought I'd bring this up as a WIP incase others are seeing the same issue.
* Nightly patch * v12.1 patch * v12.2 patch
This reverts commit 1b8b110.
Only seen on ARMv7 and goes away when you comment out this line (which does
t.unref.bind(t)
).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.
The text was updated successfully, but these errors were encountered: