Skip to content

Conversation

addaleax
Copy link
Member

This reverts commit 9836cf5.

Ref: npm/npm#16734

@sciolist @refack @nodejs/ctc

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • commit message follows commit guidelines
Affected core subsystem(s)

fs

@addaleax addaleax added the fs Issues and PRs related to the fs subsystem / file system. label May 27, 2017
@addaleax addaleax added this to the 8.0.0 milestone May 27, 2017
@nodejs-github-bot nodejs-github-bot added the fs Issues and PRs related to the fs subsystem / file system. label May 27, 2017
@mscdex
Copy link
Contributor

mscdex commented May 27, 2017

Has anyone checked if this would have been caught with make test-npm?

@refack
Copy link
Contributor

refack commented May 27, 2017

Has anyone checked if this would have been caught with make test-npm?

@mscdex I did, it wouldn't have.

IMHO we should first and foremost revert this from v8.x, v8.x-staging, but I'm not strongly opposed to reverting from master and recooking it.

For reference we also have #13173 that has been cooking for a while and is verified to fix npm/npm#16734.

@addaleax
Copy link
Member Author

For reference we also have #13173 that has been cooking for a while and is verified to fix npm/npm#16734.

… and it’s quite likely that that regresses performance.

I know reverting sucks, but at this point I see no solution that should make it into v8.x, and we can’t tell how much of an impact this has by v9.x; so we might as well revert and re-visit.

@refack
Copy link
Contributor

refack commented May 27, 2017

… and it’s quite likely that that regresses performance.

I know reverting sucks, but at this point I see no solution that should make it into v8.x, and we can’t tell how much of an impact this has by v9.x; so we might as well revert and re-visit.

Yeah it's a bit of a shame to revert, but understandable. I'm just giving another option.
(As for performance #13173 has a slight improvement over the baseline [master - 9836cf5])

There is also a third option to revert the semver-major bits, and still land #13173, which is semver-minor and solves #8276, and #13255

@refack refack mentioned this pull request May 27, 2017
4 tasks
@refack
Copy link
Contributor

refack commented May 27, 2017

So #13257 is the third option.
Reverts the semver-major bits of 9836cf5, but still adds new fields and solves #8276, and #13255.

It could be used to to a "mild" revert of 9836cf5, or it could be discussed after this PR land with the full revert.

Copy link
Contributor

@refack refack left a comment

Choose a reason for hiding this comment

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

LGTM

@sciolist
Copy link
Contributor

Sounds like a good call to me.

@addaleax
Copy link
Member Author

@sciolist I’m glad to hear you agree. If you don’t mind, I’ll re-open #12818 after this lands so we can revisit for a later Node version. :)

@sciolist
Copy link
Contributor

@addaleax I've never had problems with the performance of stat myself, I was working on another issue in Stat and was asked to look into this. :)

You can reopen the original PR if you'd like, but I can't really think of an approach right now that would solve the issue with Object.keys.

@refack
Copy link
Contributor

refack commented May 28, 2017

refack
refack previously requested changes May 28, 2017
Copy link
Contributor

@refack refack left a comment

Choose a reason for hiding this comment

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

Need to revert a109032 as well

@refack
Copy link
Contributor

refack commented May 28, 2017

@addaleax I've never had problems with the performance of stat myself, I was working on another issue in Stat and was asked to look into this. :)

@sciolist Your comment reminded me that in a109032 we added a test that will fail after this revert.

@refack
Copy link
Contributor

refack commented May 28, 2017

So some context.

  1. Original PR was src: round nsec instead of truncating stat times #12607 to solve a bug with truncation of the timestamps on Windows
  2. During discussion we spun off Lazy stat dates #12818 that turned the Date to non-own properties
  3. Lazy stat dates #12818 landed before src: round nsec instead of truncating stat times #12607 so their dependency got inverted, src: round nsec instead of truncating stat times #12607 landed with a test that depends on 9836cf5.

@addaleax
Copy link
Member Author

addaleax commented May 28, 2017

@sciolist Your comment reminded me that in a109032 we added a test that will fail after this revert.

No it doesn’t, I’ve accounted for that in the revert; as you see, the CI is looking good.

@addaleax addaleax dismissed refack’s stale review May 28, 2017 14:18

didn’t look at the changes / CI is good

@refack
Copy link
Contributor

refack commented May 28, 2017

@sciolist Your comment reminded me that in a109032 we added a test that will fail after this revert.

No it doesn’t, I’ve accounted for that in the revert; as you see, the CI is looking god.

Ohh 👍 good job.

@jasnell
Copy link
Member

jasnell commented May 28, 2017

oh good, thanks for the clarification @addaleax ... I was pretty certain that it had been accounted for but the confirmation is definitely appreciated.

@addaleax addaleax mentioned this pull request May 28, 2017
4 tasks
@sciolist
Copy link
Contributor

@refack Yeah I did actually check the changes to make sure it wouldn't be affected. Probably should have mentioned. :) (Or, probably shouldn't have made the +0.5 change in the lazy date PR to begin with.. just didn't notice I hadn't removed it until it was already merged.)

@refack
Copy link
Contributor

refack commented May 28, 2017

@refack Yeah I did actually check the changes to make sure it wouldn't be affected. Probably should have mentioned. :) (Or, probably shouldn't have made the +0.5 change in the lazy date PR to begin with.. just didn't notice I hadn't removed it until it was already merged.)

Bottom line is: The "process" worked. The npm bug will not be in the release, and now we have time to recook the lazy-dates/exposed-millis change (maybe we can manipulate Stats with the V8 C++ API)

@jasnell
Copy link
Member

jasnell commented May 28, 2017

I've dropped the commit from v8.x, pulling this off the 8 milestone.

@jasnell jasnell removed this from the 8.0.0 milestone May 28, 2017
@addaleax
Copy link
Member Author

Landed in ae6c704

@addaleax addaleax closed this May 31, 2017
@addaleax addaleax deleted the revert-lazy-stats branch May 31, 2017 22:47
addaleax added a commit that referenced this pull request May 31, 2017
This reverts commit 9836cf5.

Ref: npm/npm#16734
PR-URL: #13256
Reviewed-By: Timothy Gu <[email protected]>
Reviewed-By: Refael Ackermann <[email protected]>
Reviewed-By: Gibson Fahnestock <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
@refack
Copy link
Contributor

refack commented May 31, 2017

Ohh I wanted to recommend adding the regression test from 13173.
NM. IMHO #13173 is a more mature version of #12818, hopefully we can land it with the test.

@refack refack mentioned this pull request May 31, 2017
4 tasks
refack added a commit to refack/node that referenced this pull request Jun 4, 2017
* convert ’ to ' to turn md file to ASCII

Fixes: nodejs#8276
Refs: nodejs#12607
Refs: nodejs#12818
Refs: nodejs#13256
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fs Issues and PRs related to the fs subsystem / file system.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants