Skip to content

fs: error when fd = -0 #37122

@RaisinTen

Description

@RaisinTen
  • Version: v15.2.0
  • Platform: Ubuntu-18.04
  • Subsystem: fs

What steps will reproduce the bug?

node -p 'fs.fstatSync(-0)'
node[10415]: ../src/node_file.cc:1077:void node::fs::FStat(const v8::FunctionCallbackInfo<v8::Value>&): Assertion `args[0]->IsInt32()' failed.
 1: 0xb0c720 node::Abort() [node]
 2: 0xb0c7a1  [node]
 3: 0xb1944f  [node]
 4: 0xdb938c  [node]
 5: 0xdbb317 v8::internal::Builtin_HandleApiCall(int, unsigned int*, v8::internal::Isolate*) [node]
 6: 0x16e6017  [node]
 7: 0x168b379  [node]
 8: 0x1684cf2  [node]
 9: 0x168b379  [node]
10: 0x168949a  [node]
11: 0x16892bb  [node]
12: 0xece07e  [node]
13: 0xecf072 v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*) [node]
14: 0xd40619 v8::Script::Run(v8::Local<v8::Context>) [node]
15: 0xafc6d3 node::contextify::ContextifyScript::EvalMachine(node::Environment*, long long, bool, bool, bool, std::shared_ptr<v8::MicrotaskQueue>, v8::FunctionCallbackInfo<v8::Value> const&) [node]
16: 0xafceb1 node::contextify::ContextifyScript::RunInThisContext(v8::FunctionCallbackInfo<v8::Value> const&) [node]
17: 0xdb938c  [node]
18: 0xdbb317 v8::internal::Builtin_HandleApiCall(int, unsigned int*, v8::internal::Isolate*) [node]
19: 0x16e6017  [node]
20: 0x168b379  [node]
21: 0x168b379  [node]
22: 0x168b379  [node]
23: 0x168b379  [node]
24: 0x168b379  [node]
25: 0x168b379  [node]
26: 0x168949a  [node]
27: 0x16892bb  [node]
28: 0xece07e  [node]
29: 0xecf072 v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*) [node]
30: 0xd504c1 v8::Function::Call(v8::Local<v8::Context>, v8::Local<v8::Value>, int, v8::Local<v8::Value>*) [node]
31: 0xacbcdf node::ExecuteBootstrapper(node::Environment*, char const*, std::vector<v8::Local<v8::String>, std::allocator<v8::Local<v8::String> > >*, std::vector<v8::Local<v8::Value>, std::allocator<v8::Local<v8::Value> > >*) [node]
32: 0xacc007  [node]
33: 0xacd5ef node::StartExecution(node::Environment*, std::function<v8::MaybeLocal<v8::Value> (node::StartExecutionCallbackInfo const&)>) [node]
34: 0xa51397 node::LoadEnvironment(node::Environment*) [node]
35: 0xb5bd4e node::NodeMainInstance::Run(node::EnvSerializeInfo const*) [node]
36: 0xacfec9 node::Start(int, char**) [node]
37: 0xa46c39 main [node]
38: 0xb7a31f21 __libc_start_main [/lib/i386-linux-gnu/libc.so.6]
[1]    10415 abort (core dumped)  node -p 'fs.fstatSync(-0)'

How often does it reproduce? Is there a required condition?

Always.

What is the expected behavior?

No error.

Metadata

Metadata

Assignees

No one assigned

    Labels

    confirmed-bugIssues with confirmed bugs.fsIssues and PRs related to the fs subsystem / file system.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions