| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
|
Review requested:
|
Sorry, something went wrong.
|
We discussed in the meeting today. We already have some similar callsites which are returning the exception correctly and therefore should already be handling the way the status code will be returned after the update. @legendecas suggested that we run CITGM as well to gather some more info. |
Sorry, something went wrong.
There was a problem hiding this comment.
One minor suggestion.
Sorry, something went wrong.
Failed to start CI- Validating Jenkins credentials ✔ Jenkins credentials valid - Starting PR CI job ✘ Failed to start PR CI: 200 OKhttps://github.com/nodejs/node/actions/runs/5689928114 |
Sorry, something went wrong.
Sorry, something went wrong.
Sorry, something went wrong.
There was a problem hiding this comment.
LGTM
Sorry, something went wrong.
Sorry, something went wrong.
|
Seemingly related test failure: not ok 3802 js-native-api/test_object/test_exceptions
---
duration_ms: 718.38600
severity: crashed
exitcode: -5
stack: |-
#
# Fatal error in ../deps/v8/src/ic/ic.cc, line 2690
# Debug check failed: !__isolate__->has_pending_exception().
#
#
#
#FailureMessage Object: 0xffffc7888778
1: 0xaaaaea9d09a0 node::DumpBacktrace(_IO_FILE*) [out/Debug/node]
2: 0xaaaaeabb6b04 [out/Debug/node]
3: 0xaaaaeabb6b30 [out/Debug/node]
4: 0xaaaaec90a7b8 V8_Fatal(char const*, int, char const*, ...) [out/Debug/node]
5: 0xaaaaec90a7e0 V8_Dcheck(char const*, int, char const*) [out/Debug/node]
6: 0xaaaaeb3eb978 v8::internal::Runtime_LoadNoFeedbackIC_Miss(int, unsigned long*, v8::internal::Isolate*) [out/Debug/node]
7: 0xaaaaebf8c3e4 [out/Debug/node]
...
|
Sorry, something went wrong.
|
Yes, I'm trying to reproduce it locally with an arm Linux setup. |
Sorry, something went wrong.
|
The debug test failure is caused by the fact that v8::Object::DefineProperty didn't clear the pending exception and v8::internal::Isolate::has_pending_exception() still returned true after the v8 API call returned. This can be fixed by https://chromium-review.googlesource.com/c/v8/v8/+/4594617. The problem can happen whenever v8::Object::DefineProperty is called on a throwing JSProxy trap handler and invokes another V8 API (but only crashes on debug build). |
Sorry, something went wrong.
Accessing JS objects can be trapped with proxy handlers. These handlers can throw when no node-api errors occur. In such cases, `napi_pending_exception` should be returned.
Sorry, something went wrong.
Sorry, something went wrong.
Sorry, something went wrong.
|
@nodejs/node-api CI has passed. Would you mind taking a look at this again? Thank you! |
Sorry, something went wrong.
|
As discussed at node-api meeting Oct 20, the change is essentially a clean rebase so I'm going to land this. This depends on 17a74dd which is included in v21.x. |
Sorry, something went wrong.
Commit Queue failed- Loading data for nodejs/node/pull/48607 ✔ Done loading data for nodejs/node/pull/48607 ----------------------------------- PR info ------------------------------------ Title node-api: return napi_exception_pending on throwing proxy handlers (#48607) ⚠ Could not retrieve the email or name of the PR author's from user's GitHub profile! Branch legendecas:node-api/define-property -> nodejs:main Labels c++, node-api, needs-ci, dont-land-on-v18.x, dont-land-on-v20.x Commits 1 - node-api: return napi_exception_pending on proxy handlers Committers 1 - Chengzhong Wu PR-URL: https://github.com/nodejs/node/pull/48607 Reviewed-By: Gabriel Schulhof Reviewed-By: Michael Dawson ------------------------------ Generated metadata ------------------------------ PR-URL: https://github.com/nodejs/node/pull/48607 Reviewed-By: Gabriel Schulhof Reviewed-By: Michael Dawson -------------------------------------------------------------------------------- ⚠ Commits were pushed since the last approving review: ⚠ - node-api: return napi_exception_pending on proxy handlers ℹ This PR was created on Fri, 30 Jun 2023 03:51:49 GMT ✔ Approvals: 2 ✔ - Gabriel Schulhof (@gabrielschulhof): https://github.com/nodejs/node/pull/48607#pullrequestreview-1584729738 ✔ - Michael Dawson (@mhdawson) (TSC): https://github.com/nodejs/node/pull/48607#pullrequestreview-1592156805 ✔ Last GitHub CI successful ℹ Last Full PR CI on 2023-10-17T15:54:31Z: https://ci.nodejs.org/job/node-test-pull-request/54888/ - Querying data for job/node-test-pull-request/54888/ ✔ Last Jenkins CI successful -------------------------------------------------------------------------------- ✔ Aborted `git node land` session in /home/runner/work/node/node/.ncuhttps://github.com/nodejs/node/actions/runs/6610202932 |
Sorry, something went wrong.
Accessing JS objects can be trapped with proxy handlers. These handlers can throw when no node-api errors occur. In such cases, `napi_pending_exception` should be returned. PR-URL: #48607 Reviewed-By: Gabriel Schulhof <gabrielschulhof@gmail.com> Reviewed-By: Michael Dawson <midawson@redhat.com>
Accessing JS objects can be trapped with proxy handlers. These handlers can throw when no node-api errors occur. In such cases, `napi_pending_exception` should be returned. PR-URL: #48607 Reviewed-By: Gabriel Schulhof <gabrielschulhof@gmail.com> Reviewed-By: Michael Dawson <midawson@redhat.com>
| Back | FazBrowse Home | New Git URL |
Accessing JS objects can be trapped with proxy handlers. These
handlers can throw when no node-api errors occur. In such cases,
napi_pending_exception should be returned.
Refs: #48440 (comment)