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

Segmentation Fault When Passing Paths with Japanese Characters to createRequire in Node.js 22+ #56650

Open
yamachu opened this issue Jan 18, 2025 · 1 comment

Comments

@yamachu
Copy link

yamachu commented Jan 18, 2025

Version

v22.13.0

Platform

Microsoft Windows NT 10.0.26100.0 x64

Subsystem

No response

What steps will reproduce the bug?

Create required files

$ New-Item あ.js
$ New-Item ああ.js

Create main.js

const path = require('path');
const Module = require('module')
const createRequire = Module.createRequire;

// あ.js is fail, but ああ.js is success
const resolved = path.resolve('あ.js');
console.log(resolved);
const req = createRequire(resolved);
// some package...
const result = req.resolve('_');
console.log(result);

Run

$ node main.js

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

It is always reproduced when Node v22 is used under Windows in a Japanese environment.
Segmentation fault does not occur depending on the file name passed.

Not reproduced in Node v20.

What is the expected behavior? Why is that the expected behavior?

No segmentation fault shall occur.
This is expected to be fixed, since tools such as eslint cannot be used if files containing Japanese characters exist, since the same processing as the reproduced code is performed inside eslint.

What do you see instead?

No output

Additional information

It's repro repository.
https://github.com/yamachu/node-require-japanese-repro

And

Node 22.2.0 Passed
Node 22.3.0 Failed

https://nodejs.org/download/nightly/v23.0.0-nightly20240521786cb42956/ is Passed
https://nodejs.org/download/nightly/v23.0.0-nightly202405224a54a80aa3/ is Failed

786cb42...4a54a80

@yamachu
Copy link
Author

yamachu commented Jan 18, 2025

I have confirmed that the following changes will be processed as intended in the SJIS environment.
However, we have not been able to determine the extent of the impact of using locale::global in the node runtime and ignoring the original locale....

yamachu@30fc150

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant