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

[v9.x backport] node internals' postmortem metadata (#14901, #18530, #18653, #18576) #18550

Closed
wants to merge 47 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
ea86656
net: use `_final` instead of `on('finish')`
addaleax Feb 7, 2018
1fd4e4d
src: fix deprecation warning in node_perf.cc
danbev Feb 20, 2018
15c9a71
doc: remove CII badge in README
silverwind Feb 21, 2018
dfe0bc1
cluster: fix inspector port assignment
santigimeno Feb 10, 2018
9d73910
net: inline and simplify onSocketEnd
addaleax Feb 6, 2018
ad98ff1
vm: consolidate validation
timotew Feb 12, 2018
e29acf8
tools: fix custom eslint rule errors
BridgeAR Feb 18, 2018
04f0482
build, win: vcbuild improvements
bzoz Nov 13, 2017
e3f901c
http: allow _httpMessage to be GC'ed
lpinca Feb 19, 2018
2ad7cb9
test: http2 compat response.write() error checks
trivikr Feb 18, 2018
f6e2ba4
repl: fix tab-complete warning
killagu Feb 20, 2018
8773c10
src: fix abort when taking a heap snapshot
bnoordhuis Feb 21, 2018
4bce02a
http: remove default 'drain' listener on upgrade
lpinca Feb 19, 2018
b4e13b0
doc: fix link in onboarding.md
justin0022 Feb 20, 2018
8d0cc17
doc: update description of 'clientError' event
lpinca Feb 20, 2018
d240009
doc: remove extraneous "for example" text
Trott Feb 20, 2018
5477060
url: reduce deplicated codes in `autoEscapeStr`
starkwang Feb 7, 2018
d58dcec
deps: upgrade libuv to 1.19.2
cjihrig Feb 21, 2018
0075f8c
tools: ignore VS compiler output in deps/v8
targos Feb 23, 2018
89323da
src: remove node namespace qualifiers
danbev Feb 23, 2018
eb4ab48
doc: `readable.push(undefined)` in non-object mode
Jan 21, 2018
b5ecc45
doc: add process.debugPort to doc/api/process.md
flickz Feb 11, 2018
795f39b
doc: update 2fa information in onboarding.md
Trott Feb 24, 2018
415e777
doc: mention git-node in the collaborator guide
joyeecheung Feb 23, 2018
5c727a0
doc: remove `Returns: {undefined}`
Feb 21, 2018
534de4a
build: make gyp user defined variables lowercase
danbev Oct 16, 2017
70c9ad9
tools, test: fix prof polyfill readline
killagu Feb 11, 2018
8beecb2
build: include the libuv and zlib into node
yhwang Jan 17, 2018
61436e8
process: use more direct sync I/O for stdio
addaleax Dec 30, 2017
d2a752f
src: remove `HasWriteQueue()`
addaleax Dec 30, 2017
c8741ba
src: use `DoTryWrite()` for not-all-Buffer writev()s too
addaleax Jan 10, 2018
35b0936
tty: fix console printing on Windows
addaleax Jan 17, 2018
a3aebea
test: stdio pipe behavior tests
bzoz Feb 7, 2018
367241a
src: refactor stream callbacks and ownership
addaleax Jan 8, 2018
6a70933
src: simplify handles for libuv streams
addaleax Jan 24, 2018
3e1d810
test: introduce SetUpTestCase/TearDownTestCase
danbev Feb 3, 2018
337d529
lib: add `process` to internal module wrapper
addaleax Nov 21, 2017
fc2fc21
process: refactor nextTick for clarity
apapirovski Dec 18, 2017
7f9b554
process: do not directly schedule _tickCallback in _fatalException
apapirovski Dec 23, 2017
839a3f7
timers: make setImmediate() immune to tampering
bnoordhuis Dec 18, 2017
d82efdb
src: use AliasedBuffer for TickInfo
apapirovski Dec 27, 2017
d2475cc
timers: refactor setImmediate error handling
apapirovski Dec 26, 2017
2177138
timers: allow Immediates to be unrefed
apapirovski Jan 13, 2018
b04d42d
src, test: node internals' postmortem metadata
Dec 26, 2017
7d12ef6
test: fix cctest -Wunused-variable warning
bnoordhuis Feb 2, 2018
d26e658
src: do not redefine private for GenDebugSymbols
joyeecheung Feb 8, 2018
686a66d
build: add node_lib_target_name to cctest deps
danbev Feb 5, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -122,3 +122,8 @@ deps/uv/docs/src/guide/

# do not override V8's .gitignore
!deps/v8/**
# ignore VS compiler output unhandled by V8's .gitignore
deps/v8/src/Debug/
deps/v8/src/Release/
deps/v8/src/inspector/Debug/
deps/v8/src/inspector/Release/
28 changes: 27 additions & 1 deletion COLLABORATOR_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
- [Deprecations](#deprecations)
- [Involving the TSC](#involving-the-tsc)
* [Landing Pull Requests](#landing-pull-requests)
- [Using `git-node`](#using-git-node)
- [Technical HOWTO](#technical-howto)
- [Troubleshooting](#troubleshooting)
- [I Just Made a Mistake](#i-just-made-a-mistake)
Expand Down Expand Up @@ -454,6 +455,26 @@ Additionally:
- All commits should be self-contained (meaning every commit should pass all
tests). This makes it much easier when bisecting to find a breaking change.

### Using `git-node`

In most cases, using [the `git-node` command][git-node] of [`node-core-utils`][]
should be enough to help you land a Pull Request. If you discover a problem when
using this tool, please file an issue
[to the issue tracker][node-core-utils-issues].

Quick example:

```text
$ npm install -g node-core-utils
$ git node land $PRID
```

If it's the first time you ever use `node-core-utils`, you will be prompted
to type the password of your GitHub account in the console so the tool can
create the GitHub access token for you. If you do not want to do that, follow
[the guide of `node-core-utils`][node-core-utils-credentials]
to set up your credentials manually.

### Technical HOWTO

Clear any `am`/`rebase` that may already be underway:
Expand Down Expand Up @@ -569,7 +590,8 @@ commit logs, ensure that they are properly formatted, and add

<a name="metadata"></a>
* Modify the original commit message to include additional metadata regarding
the change process. ([`node-core-utils`][] fetches the metadata for you.)
the change process. (The [`git node metadata`][git-node-metadata] command
can generate the metadata for you.)

* Required: A `PR-URL:` line that references the *full* GitHub URL of the
original pull request being merged so it's easy to trace a commit back to
Expand Down Expand Up @@ -748,6 +770,10 @@ LTS working group and the Release team.
[Stability Index]: doc/api/documentation.md#stability-index
[Enhancement Proposal]: https://github.com/nodejs/node-eps
[`--pending-deprecation`]: doc/api/cli.md#--pending-deprecation
[git-node]: https://github.com/nodejs/node-core-utils/blob/master/docs/git-node.md
[git-node-metadata]: https://github.com/nodejs/node-core-utils/blob/master/docs/git-node.md#git-node-metadata
[git-username]: https://help.github.com/articles/setting-your-username-in-git/
[`node-core-utils`]: https://github.com/nodejs/node-core-utils
[TSC]: https://github.com/nodejs/TSC
[node-core-utils-issues]: https://github.com/nodejs/node-core-utils/issues
[node-core-utils-credentials]: https://github.com/nodejs/node-core-utils#setting-up-credentials
3 changes: 0 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@
<img alt="Node.js" src="https://nodejs.org/static/images/logo-light.svg" width="400"/>
</a>
</p>
<p align="center">
<a title="CII Best Practices" href="https://bestpractices.coreinfrastructure.org/projects/29"><img src="https://bestpractices.coreinfrastructure.org/projects/29/badge"></a>
</p>

Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. For
more information on using Node.js, see the
Expand Down
22 changes: 22 additions & 0 deletions benchmark/url/url-parse.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
'use strict';
const common = require('../common.js');
const url = require('url');

const inputs = {
normal: 'http://foo.com/bar',
escaped: 'https://foo.bar/{}^`/abcd'
};

const bench = common.createBenchmark(main, {
type: Object.keys(inputs),
n: [1e7]
});

function main({ type, n }) {
const input = inputs[type] || '';

bench.start();
for (var i = 0; i < n; i += 1)
url.parse(input);
bench.end(n);
}
20 changes: 10 additions & 10 deletions common.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -44,29 +44,29 @@

'conditions': [
['GENERATOR=="ninja"', {
'OBJ_DIR': '<(PRODUCT_DIR)/obj',
'V8_BASE': '<(PRODUCT_DIR)/obj/deps/v8/src/libv8_base.a',
'obj_dir': '<(PRODUCT_DIR)/obj',
'v8_base': '<(PRODUCT_DIR)/obj/deps/v8/src/libv8_base.a',
}, {
'OBJ_DIR%': '<(PRODUCT_DIR)/obj.target',
'V8_BASE%': '<(PRODUCT_DIR)/obj.target/deps/v8/src/libv8_base.a',
'obj_dir%': '<(PRODUCT_DIR)/obj.target',
'v8_base%': '<(PRODUCT_DIR)/obj.target/deps/v8/src/libv8_base.a',
}],
['OS == "win"', {
'os_posix': 0,
'v8_postmortem_support%': 'false',
'OBJ_DIR': '<(PRODUCT_DIR)/obj',
'V8_BASE': '<(PRODUCT_DIR)/lib/v8_libbase.lib',
'obj_dir': '<(PRODUCT_DIR)/obj',
'v8_base': '<(PRODUCT_DIR)/lib/v8_libbase.lib',
}, {
'os_posix': 1,
'v8_postmortem_support%': 'true',
}],
['OS== "mac"', {
'OBJ_DIR%': '<(PRODUCT_DIR)/obj.target',
'V8_BASE': '<(PRODUCT_DIR)/libv8_base.a',
'obj_dir%': '<(PRODUCT_DIR)/obj.target',
'v8_base': '<(PRODUCT_DIR)/libv8_base.a',
}],
['openssl_fips != ""', {
'OPENSSL_PRODUCT': '<(STATIC_LIB_PREFIX)crypto<(STATIC_LIB_SUFFIX)',
'openssl_product': '<(STATIC_LIB_PREFIX)crypto<(STATIC_LIB_SUFFIX)',
}, {
'OPENSSL_PRODUCT': '<(STATIC_LIB_PREFIX)openssl<(STATIC_LIB_SUFFIX)',
'openssl_product': '<(STATIC_LIB_PREFIX)openssl<(STATIC_LIB_SUFFIX)',
}],
['OS=="mac"', {
'clang%': 1,
Expand Down
5 changes: 5 additions & 0 deletions deps/uv/AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -325,3 +325,8 @@ Anna Henningsen <anna@addaleax.net>
Jérémy Lal <kapouer@melix.org>
Ben Wijen <ben@wijen.net>
elephantp <elephantp@elephantp.blog>
Felix Yan <felixonmars@archlinux.org>
Mason X <me@masonx.ca>
Jesse Gorzinski <jgorzinski@gmail.com>
Ryuichi KAWAMATA <ryuichi.kawamata@dena.jp>
Joyee Cheung <joyeec9h3@gmail.com>
45 changes: 45 additions & 0 deletions deps/uv/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,48 @@
2018.02.22, Version 1.19.2 (Stable), c5afc37e2a8a70d8ab0da8dac10b77ba78c0488c

Changes since version 1.19.1:

* test: fix incorrect asserts (cjihrig)

* test: fix a typo in test-fork.c (Felix Yan)

* build: remove long-obsolete gyp workarounds (Ben Noordhuis)

* build: split off tests into separate gyp file (Ben Noordhuis)

* test: check uv_cond_timedwait more carefully (Jamie Davis)

* include,src: introduce UV__ERR() macro (Mason X)

* build: add url field to libuv.pc (Ben Noordhuis)

* doc: mark IBM i as Tier 3 support (Jesse Gorzinski)

* win,build: correct C2059 errors (Michael Fero)

* zos: fix timeout for condition variable (jBarz)

* win: CREATE_NO_WINDOW when stdio is not inherited (Nick Logan)

* build: fix commmon.gypi comment (Ryuichi KAWAMATA)

* doc: document uv_timer_start() on an active timer (Vladimír Čunát)

* doc: add note about handle movability (Bartosz Sosnowski)

* doc: fix syntax error in loop documentation (Bartosz Sosnowski)

* osx,stream: retry sending handle on EMSGSIZE error (Santiago Gimeno)

* unix: delay fs req register until after validation (cjihrig)

* test: add tests for bad inputs (Joyee Cheung)

* unix,win: ensure req->bufs is freed (cjihrig)

* test: add additional fs memory management checks (cjihrig)


2018.01.20, Version 1.19.1 (Stable), 8202d1751196c2374ad370f7f3779daef89befae

Changes since version 1.19.0:
Expand Down
1 change: 1 addition & 0 deletions deps/uv/SUPPORTED_PLATFORMS.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
| Linux with musl | Tier 2 | musl >= 1.0 | |
| SmartOS | Tier 2 | >= 14.4 | Maintainers: @libuv/smartos |
| Android | Tier 3 | NDK >= r15b | |
| IBM i | Tier 3 | >= IBM i 7.2 | Maintainers: @libuv/ibmi |
| MinGW | Tier 3 | MinGW32 and MinGW-w64 | |
| SunOS | Tier 3 | Solaris 121 and later | |
| Other | Tier 3 | N/A | |
Expand Down
8 changes: 4 additions & 4 deletions deps/uv/common.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@
'VCCLCompilerTool': {
'target_conditions': [
['uv_library=="static_library"', {
'RuntimeLibrary': 1, # static debug
'RuntimeLibrary': 1, # /MTd static debug
}, {
'RuntimeLibrary': 3, # DLL debug
'RuntimeLibrary': 3, # /MDd DLL debug
}],
],
'Optimization': 0, # /Od, no optimization
Expand Down Expand Up @@ -52,9 +52,9 @@
'VCCLCompilerTool': {
'target_conditions': [
['uv_library=="static_library"', {
'RuntimeLibrary': 0, # static release
'RuntimeLibrary': 0, # /MT static release
}, {
'RuntimeLibrary': 2, # debug release
'RuntimeLibrary': 2, # /MD DLL release
}],
],
'Optimization': 3, # /Ox, full optimization
Expand Down
2 changes: 1 addition & 1 deletion deps/uv/configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

AC_PREREQ(2.57)
AC_INIT([libuv], [1.19.1], [https://github.com/libuv/libuv/issues])
AC_INIT([libuv], [1.19.2], [https://github.com/libuv/libuv/issues])
AC_CONFIG_MACRO_DIR([m4])
m4_include([m4/libuv-extra-automake-flags.m4])
m4_include([m4/as_case.m4])
Expand Down
3 changes: 3 additions & 0 deletions deps/uv/docs/src/handle.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@
Structures are aligned so that any libuv handle can be cast to `uv_handle_t`.
All API functions defined here work with any handle type.

Libuv handles are not movable. Pointers to handle structures passed to
functions must remain valid for the duration of the requested operation. Take
care when using stack allocated handles.

Data types
----------
Expand Down
2 changes: 1 addition & 1 deletion deps/uv/docs/src/loop.rst
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ API
.. caution::

Any previous value returned from :c:func`uv_backend_fd` is now
Any previous value returned from :c:func:`uv_backend_fd` is now
invalid. That function must be called again to determine the
correct backend file descriptor.

Expand Down
11 changes: 9 additions & 2 deletions deps/uv/docs/src/threading.rst
Original file line number Diff line number Diff line change
Expand Up @@ -131,8 +131,15 @@ Functions return 0 on success or an error code < 0 (unless the
return type is void, of course).

.. note::
Callers should be prepared to deal with spurious wakeups on :c:func:`uv_cond_wait` and
:c:func:`uv_cond_timedwait`.
1. Callers should be prepared to deal with spurious wakeups on :c:func:`uv_cond_wait`
and :c:func:`uv_cond_timedwait`.
2. The timeout parameter for :c:func:`uv_cond_timedwait` is relative to the time
at which function is called.
3. On z/OS, the timeout parameter for :c:func:`uv_cond_timedwait` is converted to an
absolute system time at which the wait expires. If the current system clock time
passes the absolute time calculated before the condition is signaled, an ETIMEDOUT
error results. After the wait begins, the wait time is not affected by changes
to the system clock.

.. c:function:: int uv_cond_init(uv_cond_t* cond)
.. c:function:: void uv_cond_destroy(uv_cond_t* cond)
Expand Down
2 changes: 2 additions & 0 deletions deps/uv/docs/src/timer.rst
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ API
.. note::
Does not update the event loop's concept of "now". See :c:func:`uv_update_time` for more information.
If the timer is already active, it is simply updated.
.. c:function:: int uv_timer_stop(uv_timer_t* handle)
Stop the timer, the callback will not be called anymore.
Expand Down
23 changes: 1 addition & 22 deletions deps/uv/gyp_uv.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,28 +43,7 @@ def run_gyp(args):

if __name__ == '__main__':
args = sys.argv[1:]

# GYP bug.
# On msvs it will crash if it gets an absolute path.
# On Mac/make it will crash if it doesn't get an absolute path.
if sys.platform == 'win32':
args.append(os.path.join(uv_root, 'uv.gyp'))
common_fn = os.path.join(uv_root, 'common.gypi')
options_fn = os.path.join(uv_root, 'options.gypi')
# we force vs 2010 over 2008 which would otherwise be the default for gyp
if not os.environ.get('GYP_MSVS_VERSION'):
os.environ['GYP_MSVS_VERSION'] = '2010'
else:
args.append(os.path.join(os.path.abspath(uv_root), 'uv.gyp'))
common_fn = os.path.join(os.path.abspath(uv_root), 'common.gypi')
options_fn = os.path.join(os.path.abspath(uv_root), 'options.gypi')

if os.path.exists(common_fn):
args.extend(['-I', common_fn])

if os.path.exists(options_fn):
args.extend(['-I', options_fn])

args.extend('-I common.gypi test/test.gyp'.split(' '))
args.append('--depth=' + uv_root)

# There's a bug with windows which doesn't allow this feature.
Expand Down
Loading