GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — fs: improve error perf of sync `chmod`+`fchmod` by CanadaHonk · Pull Request #49859 · nodejs/node

Conversation

@CanadaHonk

@CanadaHonk CanadaHonk commented Sep 25, 2023 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

Results from i7 Windows laptop:

                                                  confidence improvement accuracy (*)    (**)   (***)
fs\bench-chmodSync.js n=1000 type='existing'                      2.46 %       ±9.77% ±13.01% ±16.95%
fs\bench-chmodSync.js n=1000 type='non-existing'         ***     74.14 %      ±14.58% ±19.42% ±25.32%
fs\bench-fchmodSync.js n=1000 type='existing'                     0.14 %       ±5.61%  ±7.48%  ±9.76%
fs\bench-fchmodSync.js n=1000 type='non-existing'        ***    118.16 %      ±21.27% ±28.52% ±37.58%

Ref: nodejs/performance#106

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

bricss reacted with rocket emoji
All reactions
  • 🚀 1 reaction
@nodejs-github-bot nodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. fs Issues and PRs related to file-system APIs and the fs module. needs-ci PRs that need a full CI run. labels Sep 25, 2023
anonrig
anonrig reviewed Sep 25, 2023
View reviewed changes
Comment thread benchmark/fs/bench-fchmodSync.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

@CanadaHonk
CanadaHonk force-pushed the perf-chmod branch from 38b5870 to b4f8c51 Compare September 25, 2023 16:02
@CanadaHonk CanadaHonk mentioned this pull request Sep 25, 2023
Performance of node:fs nodejs/performance#106
Open
@anonrig anonrig added the performance Issues and PRs related to the performance of Node.js. label Sep 25, 2023
anonrig
anonrig approved these changes Sep 25, 2023
View reviewed changes
@anonrig anonrig added the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Sep 25, 2023
@github-actions github-actions Bot removed the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Sep 25, 2023
@nodejs-github-bot

nodejs-github-bot commented Sep 25, 2023

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/54230/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@nodejs-github-bot

nodejs-github-bot commented Sep 25, 2023

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/54236/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Trott

Trott commented Sep 25, 2023

Copy link
Copy Markdown
Member

@nodejs/fs @nodejs/cpp-reviewers

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@anonrig anonrig added the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Sep 25, 2023
@github-actions github-actions Bot mentioned this pull request Sep 27, 2023
CI Reliability 2023-09-27 nodejs/reliability#676
Open
21 tasks
@anonrig

anonrig commented Sep 27, 2023

Copy link
Copy Markdown
Member

@CanadaHonk can you resolve the conflicts?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@anonrig anonrig added request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. commit-queue-squash PRs the Commit Queue should land as one squashed commit. labels Sep 27, 2023
RaisinTen
RaisinTen approved these changes Sep 27, 2023
View reviewed changes

@RaisinTen RaisinTen left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

LGTM but merge commits aren't supported by our tooling. Could you please rebase instead?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread src/node_file.cc Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread src/node_file.cc Resolved

Uh oh!

There was an error while loading. Please reload this page.

@CanadaHonk

CanadaHonk commented Sep 27, 2023

Copy link
Copy Markdown
Member Author

LGTM but merge commits aren't supported by our tooling. Could you please rebase instead?

I think it's fine with commit-queue-squash?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@github-actions github-actions Bot removed the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Sep 27, 2023
@nodejs-github-bot

This comment was marked as outdated.

Sign in to view
@RaisinTen

RaisinTen commented Sep 27, 2023

Copy link
Copy Markdown
Member

The problem is that the Jenkins CI will fail because of the merge commit as it does right now

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@CanadaHonk
CanadaHonk force-pushed the perf-chmod branch from 5a527d5 to 852738f Compare September 27, 2023 14:02
@CanadaHonk

CanadaHonk commented Sep 27, 2023

Copy link
Copy Markdown
Member Author

Yep sorry, should be good now.

RaisinTen reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

RaisinTen
RaisinTen approved these changes Sep 27, 2023
View reviewed changes

@RaisinTen RaisinTen left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

No worries :)

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@nodejs-github-bot

nodejs-github-bot commented Sep 27, 2023

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/54288/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@anonrig anonrig added the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Sep 27, 2023
anonrig
anonrig approved these changes Sep 27, 2023
View reviewed changes
@anonrig anonrig removed the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Sep 27, 2023
@joyeecheung

joyeecheung commented Sep 27, 2023

Copy link
Copy Markdown
Member

My point is that we do not need to copy & repeat code from the original implementation for the improvement. The improvement comes from essentially very simple changes - instead of using the SyncCall that sets properties on the context, use something else to throw immediately, that should just be 2-3 lines of changes, instead of doing all the copying & repeating. We should keep the changes simple to avoid backport and git blame headaches.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@github-actions github-actions Bot mentioned this pull request Sep 28, 2023
CI Reliability 2023-09-28 nodejs/reliability#677
Open
19 tasks
Qard
Qard reviewed Sep 28, 2023
View reviewed changes

@Qard Qard left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

I'm with Joyee in thinking the duplication is not great. Can we break out the common parts to another help, maybe? Or maybe we could make an alternate SyncCall(...) that does the direct throw rather than doing the ctx thing?

I'd really like to see us unifying how we're doing our libuv calls, especially to enable implementing native promise versions of things in the future rather than going through callbacks. We get a lot of benefits from using native promises rather than wrapping callback code, like async_hooks becomes unnecessary as PromiseHook already catches the barrier correctly, and we can get async stack traces out of it too.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@github-actions github-actions Bot mentioned this pull request Sep 30, 2023
CI Reliability 2023-09-30 nodejs/reliability#679
Open
31 tasks
@joyeecheung

joyeecheung commented Oct 2, 2023 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

#49913 has landed. Can you move the JS code back to lib/fs.js and switch to use SyncCallAndThrowOnError in the original implementation instead of introducing a new binding? Thanks.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

CanadaHonk and others added 2 commits October 11, 2023 14:35
@CanadaHonk @anonrig
fs: improve error perf of sync chmod+fchmod
395df96
@anonrig
fs: fix unlinkSync typings
a4041fc
@anonrig
anonrig force-pushed the perf-chmod branch from 6bb5110 to a4041fc Compare October 11, 2023 18:37
@anonrig anonrig added commit-queue-rebase PRs the Commit Queue should land as multiple self-contained commits. request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. and removed commit-queue-squash PRs the Commit Queue should land as one squashed commit. labels Oct 11, 2023
@github-actions github-actions Bot removed the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Oct 11, 2023
@nodejs-github-bot

nodejs-github-bot commented Oct 11, 2023

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/54710/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@nodejs-github-bot

nodejs-github-bot commented Oct 11, 2023

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/54724/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

joyeecheung
joyeecheung approved these changes Oct 12, 2023
View reviewed changes
@anonrig

anonrig commented Oct 12, 2023

Copy link
Copy Markdown
Member

Landed in 6bd77db...d398529

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

anonrig pushed a commit that referenced this pull request Oct 12, 2023
@CanadaHonk @anonrig
fs: improve error perf of sync chmod+fchmod
6bc7fa7
PR-URL: #49859
Refs: nodejs/performance#106
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
anonrig added a commit that referenced this pull request Oct 12, 2023
@anonrig
fs: fix unlinkSync typings
d398529
PR-URL: #49859
Refs: nodejs/performance#106
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
@anonrig anonrig closed this Oct 12, 2023
@RafaelGSS RafaelGSS mentioned this pull request Oct 15, 2023
2023-10-17, Version 21.0.0 (Current) #49870
Merged
@Trott

Trott commented Oct 15, 2023

Copy link
Copy Markdown
Member

Landed in 6bd77db...d398529

It appears that this was manually landed despite a failing Jenkins CI. Was that intentional?

tniessen and richardlau reacted with thumbs up emoji
All reactions
  • 👍 2 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@anonrig

anonrig commented Oct 15, 2023

Copy link
Copy Markdown
Member

Landed in 6bd77db...d398529

It appears that this was manually landed despite a failing Jenkins CI. Was that intentional?

Yes, because the failing test was fixed in main branch. It was caused by test runner concurrency cli flag.

richardlau reacted with thumbs down emoji tniessen reacted with confused emoji
All reactions
  • 👎 1 reaction
  • 😕 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@tniessen

tniessen commented Oct 15, 2023 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

For what it's worth, I had a feeling that this PR and #49864 had been merged without passing CI, but I couldn't verify at the time because CI was locked down for security releases.

To be clear, manually merging PRs without a passing CI run is not acceptable for any collaborator. There may be rare exceptions with explicit TSC/releasers approval, but that is definitely not the case here. This is a clear violation of the collaborator guidelines, and silently doing so without even leaving an explaining comment only makes it worse.

richardlau reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@anonrig

anonrig commented Oct 15, 2023

Copy link
Copy Markdown
Member

Point taken @tniessen & @Trott. You're absolutely right.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

targos pushed a commit that referenced this pull request Nov 11, 2023
@CanadaHonk @targos
fs: improve error perf of sync chmod+fchmod
6ddea07
PR-URL: #49859
Refs: nodejs/performance#106
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
targos pushed a commit that referenced this pull request Nov 11, 2023
@anonrig @targos
fs: fix unlinkSync typings
b5aeceb
PR-URL: #49859
Refs: nodejs/performance#106
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
@targos targos mentioned this pull request Nov 12, 2023
v20.10.0 release proposal #50682
Merged
@juanarbol juanarbol mentioned this pull request Dec 6, 2023
2023-12-06, N|Solid v5.0.1 Iron Release nodesource/nsolid#41
Merged
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@Qard Qard Qard left review comments
@anonrig anonrig anonrig approved these changes
@joyeecheung joyeecheung joyeecheung approved these changes
@RaisinTen RaisinTen RaisinTen approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

author ready PRs with CI started, the required approvals, and no outstanding review comments. c++ Issues and PRs that require attention from people who are familiar with C++. commit-queue-rebase PRs the Commit Queue should land as multiple self-contained commits. fs Issues and PRs related to file-system APIs and the fs module. needs-ci PRs that need a full CI run. performance Issues and PRs related to the performance of Node.js.

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

8 participants

@CanadaHonk @nodejs-github-bot @Trott @anonrig @RaisinTen @joyeecheung @tniessen @Qard
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.