Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
da58301
net: treat ENOTCONN at shutdown as success
addaleax Oct 10, 2019
ddbf150
src: remove unused using declarations in worker.cc
danbev Oct 8, 2019
dcdb96c
benchmark: add benchmark for vm.createContext
joyeecheung Oct 4, 2019
5959023
http2: fix file close error condition at respondWithFd
addaleax Oct 8, 2019
e16e3d5
benchmark: remove double word "then" in comments
nschonni Oct 3, 2019
216e200
fs: buffer dir entries in opendir()
addaleax Oct 8, 2019
1fefd7f
doc: fs dir modifications may not be reflected by dir.read
addaleax Oct 10, 2019
2695f82
module: warn on require of .js inside type: module
guybedford Oct 9, 2019
f3115c4
src: fix largepages regression
Oct 9, 2019
e175d0b
crypto: reject public keys properly
tniessen Oct 10, 2019
c66bc20
doc: fix some recent nits in fs.md
vsemozhetbyt Oct 9, 2019
5ade490
doc,meta: reduce npm PR wait period to one week
Trott Oct 10, 2019
8a333a4
domain: do not import util for a simple type check
BridgeAR Oct 3, 2019
aac2476
src: render N-API weak callbacks as cleanup hooks
Sep 6, 2019
41430be
tools: port Python 3 compat patches from node-gyp to gyp
targos Oct 9, 2019
8da83e8
build: always use strings for compiler version in gyp files
targos Oct 9, 2019
59033f6
tools: fix GYP MSVS solution generator for Python 3
targos Oct 9, 2019
8d03013
tools: fix test runner in presence of NODE_REPL_EXTERNAL_MODULE
devsnek Oct 13, 2019
735ec1b
build: fix version checks in gyp files
bnoordhuis Oct 11, 2019
62bc80c
process: add lineLength to source-map-cache
Oct 6, 2019
aec8e77
test: fix fs benchmark test
Trott Oct 14, 2019
a23b5cb
doc: prepare miscellaneous docs for new markdown lint rules
Trott Oct 14, 2019
b93c8a7
test: fix flaky doctool and test
Trott Oct 15, 2019
c0cbfae
doc: add server header into the discarded list of http message.headers
Huachao Oct 14, 2019
12f2454
doc: re-enable passing remark-lint rule
nschonni Oct 14, 2019
b57fe3b
doc: remove unused Markdown reference links
nschonni Oct 14, 2019
3e39909
test: add cb error test for fs.close()
teorossi82 Oct 14, 2019
45c5ad7
src: refine maps parsing for large pages
Oct 9, 2019
5616f22
doc: clarify readable.unshift null/EOF
ronag Oct 16, 2019
94ac44f
esm: modify resolution order for specifier flag
MylesBorins Oct 14, 2019
a1adce1
build: build benchmark addons like test addons
richardlau Oct 16, 2019
02f6e5c
build: fix version checks in configure.py
targos Oct 14, 2019
d9b5508
doc: fix tls version typo
akitsu-sanae Oct 15, 2019
9fed62f
test: remove common.skipIfInspectorEnabled()
Trott Oct 16, 2019
aa0aacb
src: initialize openssl only once
sam-github Oct 16, 2019
8df5bdb
doc: update collaborator email address
JungMinu Oct 17, 2019
2ebd1a0
test: fix test runner for Python 3 on Windows
targos Oct 18, 2019
2764567
deps: upgrade to libuv 1.33.1
cjihrig Oct 19, 2019
6269a3c
src: remove unused iomanip include
danbev Oct 17, 2019
4b57088
src: fewer uses of NODE_USE_V8_PLATFORM
codebytere Oct 18, 2019
ecf6ae8
test: expand Worker test for non-shared ArrayBuffer
addaleax Oct 20, 2019
ae39039
stream: remove dead code
lpinca Oct 20, 2019
21a43bd
stream: simplify uint8ArrayToBuffer helper
lpinca Oct 20, 2019
870c320
doc: join parts of disrupt section in cli.md
vsemozhetbyt Oct 19, 2019
a86648c
build: log the found compiler version if too old
richardlau Oct 18, 2019
693bf73
src: expose ListNode<T>::prev_ on postmortem metadata
legendecas Oct 18, 2019
abfac96
src: make implementing CancelPendingDelayedTasks for platform optional
addaleax Oct 19, 2019
032c23d
build: make linter failures fail `test-doc` target
richardlau Oct 17, 2019
f6655b4
src: remove unnecessary std::endl usage
danbev Oct 17, 2019
22e10fd
doc: --enable-source-maps and prepareStackTrace are incompatible
Oct 21, 2019
58c585e
deps: npm: patch support for 13.x
ljharb Oct 22, 2019
4277066
inspector: turn platform tasks that outlive Agent into no-ops
addaleax Oct 18, 2019
0415dd7
build: python3 support for configure
rvagg Oct 21, 2019
b7bdfd3
crypto: guard with OPENSSL_NO_GOST
codebytere Oct 21, 2019
d2756fd
deps: V8: cherry-pick ed40ab1
targos Oct 22, 2019
ce49a41
deps: V8: cherry-pick c721203
targos Oct 22, 2019
00dab34
test: verify npm compatibility with releases
targos Oct 23, 2019
c4c8e01
doc: add legendecas to collaborators
legendecas Oct 25, 2019
d586070
src: allow inspector without v8 platform
codebytere Oct 21, 2019
d96e8b6
test: use arrow functions for callbacks
mpark86 Oct 22, 2019
ee3c3ad
n-api,doc: add info about building n-api addons
jschlight Oct 18, 2019
56be32d
async_hooks: only emit `after` for AsyncResource if stack not empty
addaleax Oct 23, 2019
ee954d5
doc: remove dashes
Trott Oct 24, 2019
a56e78c
doc: delete "a number of" things in the docs
Trott Oct 23, 2019
0ec63ee
doc,n-api: sort bottom-of-the-page references
Oct 25, 2019
ec99287
doc: revise os.md
Trott Oct 23, 2019
2ac76e3
doc: remove "it is important to" phrasing
Trott Oct 24, 2019
0b6fb3d
tools: doc: improve async workflow of generate.js
tpoisseau Oct 24, 2019
c2108d4
doc: adjust code sample for stream.finished
imcotton Oct 15, 2019
28db999
doc: remove incorrect and outdated example
tniessen Oct 26, 2019
375f349
tools: update ESLint to 6.6.0
cjihrig Oct 25, 2019
8a31136
stream: extract Readable.from in its own file
mcollina Oct 26, 2019
b215b16
src: split up InitializeContext
codebytere Oct 22, 2019
66c6818
doc,meta: prefer aliases and stubs over Runtime Deprecations
Trott Oct 28, 2019
d0f5bc1
doc: fix an error in resolution algorithm steps
Oct 11, 2019
98d31da
doc: add options description for send APIs
dev-script Oct 7, 2019
0efe9a0
doc: move inactive Collaborators to emeriti
Trott Oct 30, 2019
b88314f
deps: update npm to 6.12.1
Oct 29, 2019
7b50474
doc: improve doc Http2Session:Timeout
dev-script Oct 29, 2019
468f203
build: fix pkg-config search for libnghttp2
bnoordhuis Oct 27, 2019
a71f210
doc: update AUTHORS list
targos Oct 27, 2019
c52b292
src: change env.h includes for forward declarations
alferpal Oct 26, 2019
df0fbf2
tools: git rm -r tools/v8_gypfiles/broken
cclauss Oct 27, 2019
c5d312f
build: find Python syntax errors in dependencies
cclauss Oct 27, 2019
6bc7a6d
deps: V8: cherry-pick e5dbc95
Oct 30, 2019
309c395
tools: undefined name opts -> args in gyptest.py
cclauss Oct 27, 2019
87cb6b2
tools: use print() function in buildbot_run.py
cclauss Oct 27, 2019
b654673
tools: fix Python 3 syntax error in mac_tool.py
cclauss Oct 27, 2019
d7bfc6c
doc: linkify `.fork()` in cluster documentation
addaleax Oct 29, 2019
b0837fe
meta: use contact_links instead of issue templates
targos Oct 30, 2019
ab03c29
src: isolate->Dispose() order consistency
codebytere Oct 30, 2019
9c4a9e7
doc: explain http2 aborted event callback
dev-script Oct 30, 2019
b159b91
doc: linkify `.setupMaster()` in cluster doc
trivikr Nov 1, 2019
33bd128
doc: add missing hash for header link
nschonni Oct 31, 2019
41d1f16
tools: fix Python 3 deprecation warning in test.py
Hellzed Nov 1, 2019
b1529c6
deps: V8: cherry-pick a7dffcd767be
cclauss Nov 3, 2019
680e9cc
buffer: improve performance caused by primordials
jizusun Nov 3, 2019
bcd2238
build: add workaround for WSL
gengjiawen Nov 2, 2019
2810f1a
tools: update tzdata to 2019c
MylesBorins Nov 13, 2019
b9fd18f
tools: pull xcode_emulation.py from node-gyp
cclauss Nov 5, 2019
56e986a
test: do not run release-npm test without crypto
targos Nov 5, 2019
525fd9c
2019-11-19, Version 12.13.1 'Erbium' (LTS)
targos Nov 10, 2019
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
Prev Previous commit
Next Next commit
src: expose ListNode<T>::prev_ on postmortem metadata
Make ListNode<T> postmortem easier to find last items in the queue.

PR-URL: #30027
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: David Carlier <devnexen@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
  • Loading branch information
legendecas authored and targos committed Nov 11, 2019
commit 693bf73b065aa9b78aa14633f5f118322c9fbae0
2 changes: 2 additions & 0 deletions src/node_postmortem_metadata.cc
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,11 @@
HandleWrap::handle_wrap_queue_) \
V(Environment_HandleWrapQueue, head_, ListNode_HandleWrap, \
Environment::HandleWrapQueue::head_) \
V(ListNode_HandleWrap, prev_, uintptr_t, ListNode<HandleWrap>::prev_) \
V(ListNode_HandleWrap, next_, uintptr_t, ListNode<HandleWrap>::next_) \
V(Environment_ReqWrapQueue, head_, ListNode_ReqWrapQueue, \
Environment::ReqWrapQueue::head_) \
V(ListNode_ReqWrap, prev_, uintptr_t, ListNode<ReqWrapBase>::prev_) \
V(ListNode_ReqWrap, next_, uintptr_t, ListNode<ReqWrapBase>::next_)

extern "C" {
Expand Down
37 changes: 22 additions & 15 deletions test/cctest/test_node_postmortem_metadata.cc
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,10 @@ extern uintptr_t
extern uintptr_t
nodedbg_offset_Environment__req_wrap_queue___Environment_ReqWrapQueue;
extern uintptr_t nodedbg_offset_ExternalString__data__uintptr_t;
extern uintptr_t nodedbg_offset_ListNode_ReqWrap__prev___uintptr_t;
extern uintptr_t nodedbg_offset_ListNode_ReqWrap__next___uintptr_t;
extern uintptr_t nodedbg_offset_ReqWrap__req_wrap_queue___ListNode_ReqWrapQueue;
extern uintptr_t nodedbg_offset_ListNode_HandleWrap__prev___uintptr_t;
extern uintptr_t nodedbg_offset_ListNode_HandleWrap__next___uintptr_t;
extern uintptr_t
nodedbg_offset_Environment_ReqWrapQueue__head___ListNode_ReqWrapQueue;
Expand Down Expand Up @@ -129,6 +131,12 @@ TEST_F(DebugSymbolsTest, HandleWrapList) {
const Argv argv;
Env env{handle_scope, argv};

auto queue = reinterpret_cast<uintptr_t>((*env)->handle_wrap_queue());
auto head = queue +
nodedbg_offset_Environment_HandleWrapQueue__head___ListNode_HandleWrap;
auto tail = head + nodedbg_offset_ListNode_HandleWrap__prev___uintptr_t;
tail = *reinterpret_cast<uintptr_t*>(tail);

uv_tcp_t handle;

auto obj_template = v8::FunctionTemplate::New(isolate_);
Expand All @@ -140,16 +148,12 @@ TEST_F(DebugSymbolsTest, HandleWrapList) {
.ToLocalChecked();
TestHandleWrap obj(*env, object, &handle);

auto queue = reinterpret_cast<uintptr_t>((*env)->handle_wrap_queue());
auto head = queue +
nodedbg_offset_Environment_HandleWrapQueue__head___ListNode_HandleWrap;
auto next =
head + nodedbg_offset_ListNode_HandleWrap__next___uintptr_t;
next = *reinterpret_cast<uintptr_t*>(next);
auto last = tail + nodedbg_offset_ListNode_HandleWrap__next___uintptr_t;
last = *reinterpret_cast<uintptr_t*>(last);

auto expected = reinterpret_cast<uintptr_t>(&obj);
auto calculated = next -
nodedbg_offset_HandleWrap__handle_wrap_queue___ListNode_HandleWrap;
auto calculated =
last - nodedbg_offset_HandleWrap__handle_wrap_queue___ListNode_HandleWrap;
EXPECT_EQ(expected, calculated);

obj.persistent().Reset(); // ~HandleWrap() expects an empty handle.
Expand All @@ -160,6 +164,13 @@ TEST_F(DebugSymbolsTest, ReqWrapList) {
const Argv argv;
Env env{handle_scope, argv};

auto queue = reinterpret_cast<uintptr_t>((*env)->req_wrap_queue());
auto head =
queue +
nodedbg_offset_Environment_ReqWrapQueue__head___ListNode_ReqWrapQueue;
auto tail = head + nodedbg_offset_ListNode_ReqWrap__prev___uintptr_t;
tail = *reinterpret_cast<uintptr_t*>(tail);

auto obj_template = v8::FunctionTemplate::New(isolate_);
obj_template->InstanceTemplate()->SetInternalFieldCount(1);

Expand All @@ -174,16 +185,12 @@ TEST_F(DebugSymbolsTest, ReqWrapList) {
// ARM64 CI machinies.
for (auto it : *(*env)->req_wrap_queue()) (void) &it;

auto queue = reinterpret_cast<uintptr_t>((*env)->req_wrap_queue());
auto head = queue +
nodedbg_offset_Environment_ReqWrapQueue__head___ListNode_ReqWrapQueue;
auto next =
head + nodedbg_offset_ListNode_ReqWrap__next___uintptr_t;
next = *reinterpret_cast<uintptr_t*>(next);
auto last = tail + nodedbg_offset_ListNode_ReqWrap__next___uintptr_t;
last = *reinterpret_cast<uintptr_t*>(last);

auto expected = reinterpret_cast<uintptr_t>(&obj);
auto calculated =
next - nodedbg_offset_ReqWrap__req_wrap_queue___ListNode_ReqWrapQueue;
last - nodedbg_offset_ReqWrap__req_wrap_queue___ListNode_ReqWrapQueue;
EXPECT_EQ(expected, calculated);

obj.Dispatched();
Expand Down