Skip to content
This repository has been archived by the owner on Mar 4, 2020. It is now read-only.

patches for Electron #6

Closed
wants to merge 17 commits into from
Closed

Conversation

deepak1556
Copy link
Member

Went by this minimal route as other options were to use our NodeDebugger from atom::Nodemain but it depends on base::commandLine to parse args. Another was to replicate node::ParseDebugOpt and start the debugger agent directly which didnt seem a nice idea. any thoughts ?

Related electron/electron#1416

zcbenz and others added 16 commits April 1, 2015 21:24
We need to hack the search paths of the require function so we can
load libraries from embedded applications without modifications of
node's module code.
On cygwin both stdout and stderr are treated as unknown file types, this fixes
them.
With this other projects would be possible to include node as a third
party library and embed a node engine in their applications.
This callback is called when loop's watcher queue changes, when polling
kqueue in new thread, we need to get notified when there are new events
needed to be watched.
The uv_err_name would return NULL on unknown system error, which then would
crash V8 by creating string from NULL.
We need to reference DSO constructors to make sure they can actually be
linked to the final binary, see http://git.io/DRIqCg.
@deepak1556
Copy link
Member Author

@deepak1556
Copy link
Member Author

@deepak1556 deepak1556 changed the title Exposing startdebug, use_debug_agent and debug_wait_connect patches for Electron Apr 15, 2015
@zcbenz
Copy link
Contributor

zcbenz commented Apr 20, 2015

patch for module lookup https://gist.github.com/deepak1556/b6986a78ef25fd3c4098 , related electron/electron#1390

Path merged to atom@7699253.

@zcbenz zcbenz closed this Apr 20, 2015
@zcbenz
Copy link
Contributor

zcbenz commented Apr 20, 2015

patch for module lookup https://gist.github.com/deepak1556/b6986a78ef25fd3c4098 , related electron/electron#1390

We should filter out those paths on electron side. The number of patches in this repo should be as minimal as possible.

@deepak1556
Copy link
Member Author

cool will do, Thanks!

codebytere pushed a commit that referenced this pull request Dec 12, 2017
Currently when running the test without an internet connection there are
two JavaScript test failures and one cctest. The cctest only fails on
Mac as far as I know. (I've only tested using Mac and Linux thus far).

This commit moves the two JavaScript tests to test/internet.

The details for test_inspector_socket_server.cc:

[ RUN      ] InspectorSocketServerTest.FailsToBindToNodejsHost
make[1]: *** [cctest] Segmentation fault: 11
make: *** [test] Error 2

lldb output:

[ RUN      ] InspectorSocketServerTest.FailsToBindToNodejsHost
Process 63058 stopped
* thread #1: tid = 0x7b175, 0x00007fff96d04384
* libsystem_info.dylib`_gai_simple + 87, queue =
* 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1,
* address=0x0)
    frame #0: 0x00007fff96d04384 libsystem_info.dylib`_gai_simple + 87
libsystem_info.dylib`_gai_simple:
->  0x7fff96d04384 <+87>: movw   (%rdx), %ax
    0x7fff96d04387 <+90>: movw   %ax, -0x2a(%rbp)
    0x7fff96d0438b <+94>: movq   %r13, -0x38(%rbp)
    0x7fff96d0438f <+98>: movq   0x18(%rbp), %rcx

(lldb) bt
* thread #1: tid = 0x7b175, 0x00007fff96d04384
* libsystem_info.dylib`_gai_simple + 87, queue =
* 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1,
* address=0x0)
  * frame #0: 0x00007fff96d04384 libsystem_info.dylib`_gai_simple + 87
    frame #1: 0x00007fff96cfe98b libsystem_info.dylib`search_addrinfo +
179
    frame #2: 0x00007fff96cfafef libsystem_info.dylib`si_addrinfo + 2255
    frame #3: 0x00007fff96cfa67b libsystem_info.dylib`getaddrinfo + 179
    frame #4: 0x00000001017d8888
cctest`uv__getaddrinfo_work(w=0x00007fff5fbfe210) + 72 at
getaddrinfo.c:102
    frame #5: 0x00000001017d880e
cctest`uv_getaddrinfo(loop=0x000000010287cb80, req=0x00007fff5fbfe1c8,
cb=0x0000000000000000, hostname="nodejs.org", service="0",
hints=0x00007fff5fbfe268) + 734 at getaddrinfo.c:192
    frame #6: 0x000000010171f781
cctest`node::inspector::InspectorSocketServer::Start(this=0x00007fff5fbfe658)
+ 801 at inspector_socket_server.cc:398
    frame #7: 0x00000001016ed590
cctest`InspectorSocketServerTest_FailsToBindToNodejsHost_Test::TestBody(this=0x0000000105001fd0)
+ 288 at test_inspector_socket_server.cc:593

I'm not sure about the exact cause for this but when using a standalone
c program to simulate this it seems like when the ai_flags
`AI_NUMERICSERV` is set, which is done in inspector_socket_server.cc
line 394, the servname (the port in the FailsToBindToNodejsHost test) is
expected to be a numeric port string to avoid looking it up in
/etc/services. When the port is 0 as is it was before this commit the
segment fault occurs but not if it is non-zero.

PR-URL: nodejs/node#16255
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants