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

Node Error FATAL ERROR: v8::FromJust Maybe value is Nothing, on Windows (local) and CI build (Linux) #1191

Closed
6 tasks done
oneillsp96 opened this issue Apr 25, 2022 · 23 comments
Labels

Comments

@oneillsp96
Copy link

Describe the bug

Running "npx vitest run" results in a Node error that repro's about half the time. Usually, all the tests are reported as passing before Node spits out this error. The error appears for me locally on Windows 10, but also causes our Linux (Ubuntu) CI build to fail. My viteconfig file is pretty vanilla, the only slightly abnormal thing I'm using is scss additionalData. I am trying my best to get a sandboxed reproduction, but this is for a corporate project so I am unable to share my full repo. I understand that a full sandbox is required for the bug to be addressed, but I am desperate and confused, and am hoping someone might be able to at least point me in the right direction. I love vite and vitest and this is the last thing preventing me from getting my team onto it.

Below is the output I am seeing:

√ src/scenes/App/advanced-reporting/advanced-reporting-list-view/advanced-reporting-list-view.test.tsx (2 tests) 443ms
√ src/components/create-quick-topic-report-modal/create-quick-topic-report-modal.test.tsx (5 tests) 949ms
√ src/components/workplace-reactions-aggregate-card/workplace-reactions-aggregate-card.test.tsx (10 tests ) 1002ms
FATAL ERROR: v8::FromJust Maybe value is Nothing.

Test Files 6 passed (6)
Tests 33 passed (33)
Time 17.04s (in thread 2.95s, 577.09%)

1: 00007FF60749815F v8::internal::CodeObjectRegistry::~CodeObjectRegistry+114079
2: 00007FF6074254C6 DSA_meth_get_flags+65542
3: 00007FF60742637D node::OnFatalError+301
4: 00007FF607D46415 v8::V8::FromJustIsNothing+53
5: 00007FF6073423FA v8::internal::MicrotaskQueue::microtasks_policy+22170
6: 00007FF60734229D v8::internal::MicrotaskQueue::microtasks_policy+21821
7: 00007FF6072B2BAD v8::internal::OrderedHashTablev8::internal::OrderedNameDictionary,3::NextTableOffset +58157
8: 00007FF6072B0623 v8::internal::OrderedHashTablev8::internal::OrderedNameDictionary,3::NextTableOffset +48547
9: 00007FF6072B37CD v8::internal::OrderedHashTablev8::internal::OrderedNameDictionary,3::NextTableOffset +61261
10: 00007FF6074962E5 v8::internal::CodeObjectRegistry::~CodeObjectRegistry+106277
11: 00007FF60747E899 v8::internal::CodeObjectRegistry::~CodeObjectRegistry+9433
12: 00007FF6074EC4A8 uv_check_init+120
13: 00007FF6074F7168 uv_run+664
14: 00007FF6074C5E05 node::SpinEventLoop+309
15: 00007FF60735DEC0 v8::internal::interpreter::BytecodeLabel::bind+35776
16: 00007FF607359518 v8::internal::interpreter::BytecodeLabel::bind+16920
17: 00007FF6074E766D uv_poll_stop+557
18: 00007FF608300940 v8::internal::compiler::RepresentationChanger::Uint32OverflowOperatorFor+146416
19: 00007FFD49347034 BaseThreadInitThunk+20
20: 00007FFD4A282651 RtlUserThreadStart+33

Reproduction

run "npx vite run" on Windows 10 with the following vite config (changing scss additional data to pull in a scss file of your choosing)

///
import { defineConfig, splitVendorChunkPlugin } from "vite";
import { inspectorServer } from "react-dev-inspector/plugins/vite";
import react from "@vitejs/plugin-react";

export default defineConfig({
test: {
globals: true,
environment: "jsdom",
},
plugins: [
react(),
splitVendorChunkPlugin(),
],
css: {
preprocessorOptions: {
scss: {
additionalData: @use "sass:math"; @import "scss/_aw-tools-and-vars-complete";
}
}
},
server: {
port: 8080,
strictPort: true,
},
build: {
sourcemap: true,
}
}

);

System Info

System:
    OS: Windows 10 10.0.19042
    CPU: (8) x64 Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
    Memory: 13.13 GB / 31.83 GB
  Binaries:
    Node: 16.14.2 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.4 - C:\Program Files (x86)\Yarn\bin\yarn.CMD
    npm: 8.5.0 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Chrome: 100.0.4896.127
    Edge: Spartan (44.19041.1266.0), Chromium (100.0.1185.50)
    Internet Explorer: 11.0.19041.1202
  npmPackages:
    @vitejs/plugin-react: 1.3.1 => 1.3.1
    vite: 2.9.5 => 2.9.5
    vitest: 0.10.0 => 0.10.0

Used Package Manager

yarn

Validations

@sheremet-va
Copy link
Member

Duplicate: #317

@sheremet-va sheremet-va added the duplicate This issue or pull request already exists label Apr 25, 2022
@oneillsp96
Copy link
Author

@sheremet-va hate to be that guy, but is getting this one resolved a priority? Or is it blocked by issues with Node itself?

@antfu
Copy link
Member

antfu commented May 10, 2022

@oneillsp96 Can you help to verify if v0.12.3 fixes the error? Thanks.

@oneillsp96
Copy link
Author

it's looking good so far! I will run a few more CI builds tomorrow to validate but I think you got it! Thank you so much!

chaii3 pushed a commit to chaii3/vitest that referenced this issue May 13, 2022
[useDraggable.component] props is missing a key(storageType),This causes storage to remain localStorage
@wKovacs64
Copy link

Still happening on vitest 0.12.6 (Windows 10) for me.

@fwouts
Copy link

fwouts commented Jul 4, 2022

I'm also seeing this on vitest 0.17.0 (ubuntu-latest on GitHub Actions).

@kalvenschraut
Copy link
Contributor

Seeing this occasionally also, sometimes appears once a test fails. Main issue this is causing my CI to not think the test failed and keeps on with the rest of the stages.

@dartess
Copy link

dartess commented Jul 7, 2022

It looks like the problem is not reproduced on Node 18.
The LTS version is coming out in the fall, so we decided to just turn off the multi-threaded mode of vitest for now and just wait a bit.

@fwouts
Copy link

fwouts commented Jul 7, 2022

Here's an example where it happened on Node 18: https://github.com/fwouts/previewjs/runs/7225194827?check_suite_focus=true

@dartess
Copy link

dartess commented Jul 7, 2022

@fwouts thanks for the info, it's very sad.

@xiel
Copy link

xiel commented Jul 9, 2022

I'm seeing this error FATAL ERROR: v8::FromJust Maybe value is Nothing. also often in Github Actions.
And I'm also using turbo, I'm wondering if this encourage the error. But really hard to debug as it is not happening all the time.

@CM-IV
Copy link

CM-IV commented Jul 14, 2022

Node v16.15.0
Vitejs v3.0.0
Vitest v0.18.0

50/50 Getting these unhandled rejection errors both locally and on a WoodpeckerCI server even though my tests are shown to still pass.

✓ src/tests/links.test.tsx (2)
 ✓ src/tests/todos.test.tsx (2)
 ✓ src/tests/nav.test.tsx (1)
 ✓ src/tests/footer.test.tsx (2)

Test Files  4 passed (4)
     Tests  7 passed (7)
      Time  3.44s (in thread 65ms, 5297.18%)
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Unhandled Rejection ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Error: 
 ❯ post node_modules/.pnpm/[email protected][email protected]/node_modules/vitest/dist/worker.mjs:70:14
 ❯ node_modules/.pnpm/[email protected][email protected]/node_modules/vitest/dist/chunk-vite-node-utils.af8ead96.mjs:9149:11
 ❯ sendCall node_modules/.pnpm/[email protected][email protected]/node_modules/vitest/dist/chunk-vite-node-utils.af8ead96.mjs:9146:16
 ❯ node_modules/.pnpm/[email protected][email protected]/node_modules/vitest/dist/chunk-runtime-rpc.cc6a06a2.mjs:7:55
      5|   return new Proxy(rpc2, {
      6|     get(target, p, handler) {
      7|       const sendCall = Reflect.get(target, p, handler);
       |                                                       ^
      8|       const safeSendCall = (...args) => withSafeTimers(() => sendCall(...args));
      9|       safeSendCall.asEvent = sendCall.asEvent;
 ❯ withSafeTimers node_modules/.pnpm/[email protected][email protected]/node_modules/vitest/dist/chunk-utils-global.1b22c4fd.mjs:472:20
 ❯ Proxy.safeSendCall node_modules/.pnpm/[email protected][email protected]/node_modules/vitest/dist/chunk-runtime-rpc.cc6a06a2.mjs:7:41
 ❯ process.<anonymous> node_modules/.pnpm/[email protected][email protected]/node_modules/vitest/dist/worker.mjs:34:11
 ❯ process.emit node:events:527:28
 ❯ emit node:internal/process/promises:140:20
FATAL ERROR: v8::FromJust Maybe value is Nothing.
13s
94
1: 0xb0a860 node::Abort() [node]
13s
95
2: 0xa1c193 node::FatalError(char const*, char const*) [node]
13s
96
3: 0xcf97aa v8::Utils::ReportApiFailure(char const*, char const*) [node]
13s
97
4: 0xb0e6cd node::fs::FileHandle::CloseReq::Resolve() [node]
13s
98
5: 0xb0e829 [node]
13s
99
6: 0x1560e0d [node]
13s
100
7: 0x15655e6 [node]
13s
101
8: 0x1577d14 [node]
13s
102
9: 0x1565f38 uv_run [node]
13s
103
10: 0xa43dd5 node::SpinEventLoop(node::Environment*) [node]
13s
104
11: 0xbd43e2 node::worker::Worker::Run() [node]
13s
105
12: 0xbd4b78 [node]
13s
106
13: 0x7fdc80ad9fa3 [/lib/x86_64-linux-gnu/libpthread.so.0]
13s
107
14: 0x7fdc80a0aeff clone [/lib/x86_64-linux-gnu/libc.so.6]
13s
108
Aborted (core dumped) 

@antfu antfu added bug duplicate This issue or pull request already exists help wanted Extra attention is needed needs reproduction and removed duplicate This issue or pull request already exists labels Jul 14, 2022
@rcoundon
Copy link

rcoundon commented Jul 16, 2022

I'm seeing this on Mac OS 12.4 too

FATAL ERROR: v8::FromJust Maybe value is Nothing.
 1: 0x1025d42dc node::Abort() [/Users/rosscoundon/.nvm/versions/node/v16.15.0/bin/node]
 2: 0x1025d4464 node::errors::TryCatchScope::~TryCatchScope() [/Users/rosscoundon/.nvm/versions/node/v16.15.0/bin/node]
 3: 0x102725900 v8::V8::FromJustIsNothing() [/Users/rosscoundon/.nvm/versions/node/v16.15.0/bin/node]
 4: 0x1025d727c node::fs::FileHandle::CloseReq::Resolve() [/Users/rosscoundon/.nvm/versions/node/v16.15.0/bin/node]
 5: 0x1025e9f84 node::fs::FileHandle::ClosePromise()::$_0::__invoke(uv_fs_s*) [/Users/rosscoundon/.nvm/versions/node/v16.15.0/bin/node]
 6: 0x102e42794 uv__work_done [/Users/rosscoundon/.nvm/versions/node/v16.15.0/bin/node]
 7: 0x102e45f30 uv__async_io [/Users/rosscoundon/.nvm/versions/node/v16.15.0/bin/node]
 8: 0x102e57ca8 uv__io_poll [/Users/rosscoundon/.nvm/versions/node/v16.15.0/bin/node]
 9: 0x102e463c0 uv_run [/Users/rosscoundon/.nvm/versions/node/v16.15.0/bin/node]
10: 0x102522ccc node::SpinEventLoop(node::Environment*) [/Users/rosscoundon/.nvm/versions/node/v16.15.0/bin/node]
11: 0x1026669e8 node::worker::Worker::Run() [/Users/rosscoundon/.nvm/versions/node/v16.15.0/bin/node]
12: 0x102669c10 node::worker::Worker::StartThread(v8::FunctionCallbackInfo<v8::Value> const&)::$_3::__invoke(void*) [/Users/rosscoundon/.nvm/versions/node/v16.15.0/bin/node]
13: 0x1bb49c26c _pthread_start [/usr/lib/system/libsystem_pthread.dylib]
14: 0x1bb49708c thread_start [/usr/lib/system/libsystem_pthread.dylib]
/var/folders/z6/5b6qwtvj7217ykrsmtcxckn40000gn/T/npx-603f6023.sh: line 1: 41684 Abort trap: 6           vitest run -t 'Marketing handler campaign requests' src/test/unit/handler/marketing/marketingHandler.test.ts

If I run the test again after receiving this error, it will usually run without error on the 2nd or 3rd attempt

@mikestopcontinues
Copy link
Contributor

For me, the issue happens most frequently when I start vitest. It seems how the tests are randomly shuffled affects if I get the error. But even when I get vitest to start, the process inevitably, indeterminately fails with the same error—and not when all the tests are run. Just whenever. I sometimes experience the process to "freeze," not detecting changes. Then only when I press f to rerun does the process fail.

Error Message
#
# Fatal error in , line 0
# Check failed: result.second.
#
#
#
#FailureMessage Object: 0x70001412ecb0
 1: 0x1010c8ef2 node::NodePlatform::GetStackTracePrinter()::$_3::__invoke() [/Users/msc/Library/Application Support/fnm/node-versions/v16.15.1/installation/bin/node]
 2: 0x10209ef13 V8_Fatal(char const*, ...) [/Users/msc/Library/Application Support/fnm/node-versions/v16.15.1/installation/bin/node]
 3: 0x1014b78de v8::internal::GlobalBackingStoreRegistry::Register(std::__1::shared_ptr<v8::internal::BackingStore>) [/Users/msc/Library/Application Support/fnm/node-versions/v16.15.1/installation/bin/node]
 4: 0x1011ee0c6 v8::ArrayBuffer::GetBackingStore() [/Users/msc/Library/Application Support/fnm/node-versions/v16.15.1/installation/bin/node]
 5: 0x101033fcb node::Buffer::Data(v8::Local<v8::Value>) [/Users/msc/Library/Application Support/fnm/node-versions/v16.15.1/installation/bin/node]
 6: 0x1010629db node::fs::Read(v8::FunctionCallbackInfo<v8::Value> const&) [/Users/msc/Library/Application Support/fnm/node-versions/v16.15.1/installation/bin/node]
 7: 0x101244399 v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) [/Users/msc/Library/Application Support/fnm/node-versions/v16.15.1/installation/bin/node]
 8: 0x101243e66 v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) [/Users/msc/Library/Application Support/fnm/node-versions/v16.15.1/installation/bin/node]
 9: 0x1012435df v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*) [/Users/msc/Library/Application Support/fnm/node-versions/v16.15.1/installation/bin/node]
10: 0x101ab6ad9 Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_BuiltinExit [/Users/msc/Library/Application Support/fnm/node-versions/v16.15.1/installation/bin/node]
11: 0xb528956a3 
12: 0xb52895859 
13: 0xb5289652d 

@Ram4GB
Copy link

Ram4GB commented Jul 20, 2022

For me, the issue happens most frequently when I start vitest. It seems how the tests are randomly shuffled affects if I get the error. But even when I get vitest to start, the process inevitably, indeterminately fails with the same error—and not when all the tests are run. Just whenever. I sometimes experience the process to "freeze," not detecting changes. Then only when I press f to rerun does the process fail.

Error Message

I see your issue look like me. Please check if you see this is the same. nodejs/node#43617

@metonym
Copy link

metonym commented Jul 22, 2022

Per nodejs/node#43617 (comment), using Node 18 in my GitHub workflow resolved the issue.

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
+     - uses: actions/setup-node@v3
+       with:
+         node-version: 18

@Ram4GB
Copy link

Ram4GB commented Jul 23, 2022

Per nodejs/node#43617 (comment), using Node 18 in my GitHub workflow resolved the issue.

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
+     - uses: actions/setup-node@v3
+       with:
+         node-version: 18

Yes, currently solution is using another version of NodeJS. Hope this soon will be fixed in v16

@sheremet-va
Copy link
Member

sheremet-va commented Aug 5, 2022

The fix is listed in v16.17.0 proposal, scheduled for August 16th.

The fix for v14 was already backported, and available on staging. Probably will be publically available with the next security release.

@antfu antfu added the upstream label Aug 5, 2022
@sheremet-va sheremet-va removed bug help wanted Extra attention is needed labels Aug 5, 2022
@NMinhNguyen
Copy link
Contributor

@sheremet-va out of curiosity, which entry in the changelog is this fix exactly?

@sheremet-va
Copy link
Member

sheremet-va commented Aug 5, 2022

@sheremet-va out of curiosity, which entry in the changelog is this fix exactly?

Under “Semver-patch commits”:

@sheremet-va
Copy link
Member

In the meantime I've noticed that error happens almost every time if I change teardownTimeout to a small number (like 10). Please, try increasing this number (currently, default is 1000).

@OmgImAlexis
Copy link

I noticed a lot of people in here are using node 18 as a work around. Any ideas for myself who's hitting this in node 18?

Adding VITEST_SEGFAULT_RETRY=3 did allow the tests to pass after the 2nd or 3rd time.

FATAL ERROR: v8::FromJust Maybe value is Nothing.
 1: 00007FF6C39394EF node_api_throw_syntax_error+174703
 2: 00007FF6C38C79C6 v8::internal::wasm::WasmCode::safepoint_table_offset+67350
 3: 00007FF6C38C889D node::OnFatalError+301
 4: 00007FF6C4345335 v8::api_internal::FromJustIsNothing+53
 5: 00007FF6C38B02A2 v8::base::CPU::has_fpu+37538
 6: 00007FF6C399B297 uv_timer_stop+1207
 7: 00007FF6C399783B uv_async_send+331
 8: 00007FF6C3996FCC uv_loop_init+1292
 9: 00007FF6C399716A uv_run+202
10: 00007FF6C3966065 node::SpinEventLoop+309
11: 00007FF6C37FD200 v8::internal::wasm::SignatureMap::Freeze+36000
12: 00007FF6C37F8918 v8::internal::wasm::SignatureMap::Freeze+17336
13: 00007FF6C398783D uv_poll_stop+557
14: 00007FF6C4940D70 v8::internal::compiler::ToString+145936
15: 00007FF88D59458D BaseThreadInitThunk+29
16: 00007FF88ECB7558 RtlUserThreadStart+40

 Segmentfault Error Detected 
  FATAL ERROR: v8::FromJust Maybe value is Nothing.
  Refer to https://github.com/vitest-dev/vitest/issues/1191

It seems to be an upstream bug of Node.js. To improve the test stability,
you could pass --segfault-retry=3 or set env VITEST_SEGFAULT_RETRY=3 to
have Vitest auto retries on flaky segfaults.

@sheremet-va
Copy link
Member

sheremet-va commented Sep 3, 2022

@OmgImAlexis from stack trace it doesn't seem like your issue is related to what is discussed here (I can see it refers to wasm, but we do not use it ourselves)

We've noticed significant improvements after updating to 16.17, so closing this issue. If you still have any similar errors, please open a new issue.

@vitest-dev vitest-dev locked as resolved and limited conversation to collaborators Sep 3, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests