Skip to content

src: revert filesystem::path changes - #55015

Merged
nodejs-github-bot merged 1 commit into
nodejs:mainfrom
anonrig:revert-filesystem-path
Sep 21, 2024
Merged

src: revert filesystem::path changes#55015
nodejs-github-bot merged 1 commit into
nodejs:mainfrom
anonrig:revert-filesystem-path

Conversation

@anonrig

Copy link
Copy Markdown
Member

Reverts #53063. There are still some filesystem::path references left, since they're added in multiple different PRs. Depending on whether we need them or not, we can remove them.

We're reverting because it fixes multiple different regressions due to Windows UTF-16 path requirements.

Fixes#54991
Fixes#54476

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/security-wg

@nodejs-github-botnodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. lib / src Issues and PRs related to general changes in the lib or src directory. needs-ci PRs that need a full CI run. labels Sep 19, 2024
@anonrig
anonrigforce-pushed the revert-filesystem-path branch 3 times, most recently from eea22f7 to 37bd2dcCompareSeptember 19, 2024 17:17
@anonrig
anonrigforce-pushed the revert-filesystem-path branch 2 times, most recently from be2b0b8 to b0e83d9CompareSeptember 19, 2024 17:21
@anonrig

Copy link
Copy Markdown
MemberAuthor

@joyeecheung Can you double check the changes on compile_cache.cc and header file? I manually had to change those lines, there was a conflict.

Comment threadsrc/permission/fs_permission.cc Outdated

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@joyeecheung Is it safe to keep this function, or do we need this revert?

@joyeecheungjoyeecheungSep 20, 2024

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is std::filesystem::path(res) correct? From what I can tell, res contains UTF8-encoded data, and it's about to be passed into uv_fs_stat which also expects UTF8-encoded data. So std::filesystem::path(res) here is also going to crash on Windows when res contains code points that are encoded differently in UTF16 unless it's casted between u8string both ways.

@anonrig
anonrigforce-pushed the revert-filesystem-path branch from b0e83d9 to 67ddaa9CompareSeptember 19, 2024 17:23
@avivkelleravivkeller added fs Issues and PRs related to the fs subsystem / file system. revert PRs that revert previously landed PRs. labels Sep 19, 2024
@avivkeller

Copy link
Copy Markdown
Member

Is it possible to add a test for those issues?

@anonrig
anonrigforce-pushed the revert-filesystem-path branch from 67ddaa9 to ba26f0bCompareSeptember 19, 2024 17:36
@codecov

codecovBot commented Sep 19, 2024

Copy link
Copy Markdown

Codecov Report

Attention: Patch coverage is 93.54839% with 2 lines in your changes missing coverage. Please review.

Project coverage is 88.04%. Comparing base (291d90a) to head (ba26f0b).
Report is 461 commits behind head on main.

Files with missing linesPatch %Lines
src/env.cc50.00%1 Missing ⚠️
src/node_modules.cc75.00%1 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #55015 +/- ##
=======================================
Coverage 88.04% 88.04% =======================================
Files 652 652 Lines 183764 183760 -4 Branches 35862 35863 +1 =======================================
Hits 161787 161787 + Misses 15233 15230 -3 + Partials 6744 6743 -1 
Files with missing linesCoverage Δ
src/compile_cache.cc79.59% <100.00%> (-0.41%)⬇️
src/compile_cache.h100.00% <100.00%> (ø)
src/inspector_profiler.cc78.79% <100.00%> (+0.26%)⬆️
src/node_file.cc77.03% <100.00%> (-0.02%)⬇️
src/node_report.cc93.15% <100.00%> (ø)
src/path.cc67.39% <100.00%> (ø)
src/permission/fs_permission.cc73.22% <100.00%> (+1.68%)⬆️
src/permission/fs_permission.h91.80% <100.00%> (ø)
src/util.h89.91% <ø> (ø)
src/env.cc85.58% <50.00%> (-0.02%)⬇️
... and 1 more

... and 29 files with indirect coverage changes

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@joyeecheungjoyeecheung left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM % nits

Comment threadsrc/compile_cache.cc
std::u8string cache_dir_with_tag_u8 = cache_dir_with_tag.u8string();
std::string cache_dir_with_tag_str(cache_dir_with_tag_u8.begin(),
cache_dir_with_tag_u8.end());
std::string cache_dir_with_tag =

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can minimize the diff/potential conflicts if this is named as cache_dir_with_tag_str

@joyeecheung

joyeecheung commented Sep 20, 2024

Copy link
Copy Markdown
Member

By the way I don't think this fixes #54476 because fs.cpSync changes were done in #53614 and #54653 is fixing that with the casting, as the path is going to be consumed by std::filesystem::create_directories at the end.

@anonriganonrig added the commit-queue Add this label to land a pull request using GitHub Actions. label Sep 21, 2024
@nodejs-github-botnodejs-github-bot removed the commit-queue Add this label to land a pull request using GitHub Actions. label Sep 21, 2024
@nodejs-github-bot
nodejs-github-bot merged commit 5a96671 into nodejs:mainSep 21, 2024
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Landed in 5a96671

targos pushed a commit that referenced this pull request Oct 4, 2024
PR-URL: #55015
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
@aduh95aduh95 mentioned this pull request Oct 9, 2024
codebytere added a commit to electron/electron that referenced this pull request Jan 22, 2025
samuelmaddock pushed a commit to electron/electron that referenced this pull request Jan 22, 2025
* chore: bump node in DEPS to v22.11.0
* src: move evp stuff to ncrypto
nodejs/node#54911
* crypto: add Date fields for validTo and validFrom
nodejs/node#54159
* module: fix discrepancy between .ts and .js
nodejs/node#54461
* esm: do not interpret "main" as a URL
nodejs/node#55003
* src: modernize likely/unlikely hints
nodejs/node#55155
* chore: update patch indices
* crypto: add validFromDate and validToDate fields to X509Certificate
nodejs/node#54159
* chore: fixup perfetto patch
* fix: clang warning in simdjson
* src: add receiver to fast api callback methods
nodejs/node#54408
* chore: fixup revert patch
* fixup! esm: do not interpret "main" as a URL
* fixup! crypto: add Date fields for validTo and validFrom
* fix: move ArrayBuffer test patch
* src: fixup Error.stackTraceLimit during snapshot building
nodejs/node#55121
* fix: bad rebase
* chore: fixup amaro
* chore: address feedback from review
* src: revert filesystem::path changes
nodejs/node#55015
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
codebytere added a commit to electron/electron that referenced this pull request Feb 3, 2025
codebytere added a commit to electron/electron that referenced this pull request Feb 10, 2025
codebytere added a commit to electron/electron that referenced this pull request Feb 10, 2025
codebytere added a commit to electron/electron that referenced this pull request Feb 14, 2025
codebytere added a commit to electron/electron that referenced this pull request Feb 14, 2025
* chore: bump node in DEPS to v22.13.0
* chore: bump node in DEPS to v22.13.1
* src: move evp stuff to ncrypto
nodejs/node#54911
* crypto: add Date fields for validTo and validFrom
nodejs/node#54159
* module: fix discrepancy between .ts and .js
nodejs/node#54461
* esm: do not interpret "main" as a URL
nodejs/node#55003
* src: modernize likely/unlikely hints
nodejs/node#55155
* chore: update patch indices
* crypto: add validFromDate and validToDate fields to X509Certificate
nodejs/node#54159
* chore: fixup perfetto patch
* fix: clang warning in simdjson
* src: add receiver to fast api callback methods
nodejs/node#54408
* chore: fixup revert patch
* fixup! esm: do not interpret "main" as a URL
* fixup! crypto: add Date fields for validTo and validFrom
* fix: move ArrayBuffer test patch
* src: fixup Error.stackTraceLimit during snapshot building
nodejs/node#55121
* fix: bad rebase
* chore: fixup amaro
* chore: address feedback from review
* src: revert filesystem::path changes
nodejs/node#55015
* chore: fixup GN build file
* nodejs/node#55529
* nodejs/node#55798
* nodejs/node#55530
* module: simplify --inspect-brk handling
nodejs/node#55679
* src: fix outdated js2c.cc references
nodejs/node#56133
* crypto: include openssl/rand.h explicitly
nodejs/node#55425
* build: use variable for crypto dep path
nodejs/node#55928
* crypto: fix RSA_PKCS1_PADDING error message
nodejs/node#55629
* build: use variable for simdutf path
nodejs/node#56196
* test,crypto: make crypto tests work with BoringSSL
nodejs/node#55491
* fix: suppress clang -Wdeprecated-declarations in libuv
libuv/libuv#4486
* deps: update libuv to 1.49.1
nodejs/node#55114
* test: make test-node-output-v8-warning more flexible
nodejs/node#55401
* [v22.x] Revert "v8: enable maglev on supported architectures"
nodejs/node#54384
* fix: potential WIN32_LEAN_AND_MEAN redefinition
c-ares/c-ares#869
* deps: update nghttp2 to 1.64.0
nodejs/node#55559
* src: provide workaround for container-overflow
nodejs/node#55591
* build: use variable for simdutf path
nodejs/node#56196
* chore: fixup patch indices
* fixup! module: simplify --inspect-brk handling
* lib: fix fs.readdir recursive async
nodejs/node#56041
* lib: avoid excluding symlinks in recursive fs.readdir with filetypes
nodejs/node#55714
This doesn't currently play well with ASAR - this should be fixed in a follow up
* test: disable CJS permission test for config.main
This has diverged as a result of our revert of
src,lb: reducing C++ calls of esm legacy main resolve
* fixup! lib: fix fs.readdir recursive async
* deps: update libuv to 1.49.1
nodejs/node#55114
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c++Issues and PRs that require attention from people who are familiar with C++.fsIssues and PRs related to the fs subsystem / file system.lib / srcIssues and PRs related to general changes in the lib or src directory.needs-ciPRs that need a full CI run.revertPRs that revert previously landed PRs.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

v22.3.0 Cannot start if the Folder or Script File Name is Unicode. v22.6.0 fs.cpSync crash

6 participants

@anonrig@nodejs-github-bot@avivkeller@joyeecheung@benjamingr@marco-ippolito