Skip to content

fs: refactor rimraf retry options - #30644

Merged
cjihrig merged 5 commits into
nodejs:masterfrom
cjihrig:rimraf
Nov 27, 2019
Merged

fs: refactor rimraf retry options#30644
cjihrig merged 5 commits into
nodejs:masterfrom
cjihrig:rimraf

Conversation

@cjihrig

Copy link
Copy Markdown
Contributor

This PR implements the changes proposed in #30580.

This PR doesn't quite close out #30580 though because synchronous retries are not able to be fully implemented just yet (libuv/libuv#2548 should enable that soon though).

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • tests and/or benchmarks are included
  • documentation is changed or added
  • commit message follows commit guidelines

@nodejs-github-botnodejs-github-bot added the fs Issues and PRs related to the fs subsystem / file system. label Nov 25, 2019
Comment threaddoc/api/fs.md Outdated

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

How about supporting exponential backoff or allow to custom, which may react to the real world.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

I don't plan on adding that myself, and definitely not in this PR. But someone could open a follow up PR that passes in a user defined function for that.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@cjihrig

Copy link
Copy Markdown
ContributorAuthor

ping for reviews

Comment threadlib/internal/fs/rimraf.js Outdated
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@cjihrig

Copy link
Copy Markdown
ContributorAuthor

The failures were test-http2-client-upload, which is a known flake, and test-inspector-wait-for-connection, which is #30619. I'm going to land this.

cjihrigand others added 5 commits November 27, 2019 18:27
This is part of reworking the rimraf retry logic.
Refs: nodejs#30580
PR-URL: nodejs#30644
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
This commit makes retries an opt-in feature by defaulting
to no automatic retries. This will be particularly important
once synchronous operations can sleep between attempts.
Refs: nodejs#30580
PR-URL: nodejs#30644
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
This commit removes the emfileWait option. EMFILE errors are
now handled the same as any other retriable error.
Refs: nodejs#30580
PR-URL: nodejs#30644
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
This commit adds a retryDelay option to rimraf which configures
the amount of time between retry operations.
Refs: nodejs#30580
PR-URL: nodejs#30644
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Co-authored-by: Thang Tran <trankimthang279@gmail.com>
Fixes: nodejs#30482
Refs: nodejs#30499
Refs: nodejs#30580
PR-URL: nodejs#30644
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
@cjihrig
cjihrig merged commit 74f8196 into nodejs:masterNov 27, 2019
@cjihrig

Copy link
Copy Markdown
ContributorAuthor

Landed in 84aa192...74f8196. Thanks for the reviews.

@cjihrig
cjihrig deleted the rimraf branch November 27, 2019 23:28
addaleax pushed a commit that referenced this pull request Nov 30, 2019
This is part of reworking the rimraf retry logic.
Refs: #30580
PR-URL: #30644
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
addaleax pushed a commit that referenced this pull request Nov 30, 2019
This commit makes retries an opt-in feature by defaulting
to no automatic retries. This will be particularly important
once synchronous operations can sleep between attempts.
Refs: #30580
PR-URL: #30644
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
addaleax pushed a commit that referenced this pull request Nov 30, 2019
This commit removes the emfileWait option. EMFILE errors are
now handled the same as any other retriable error.
Refs: #30580
PR-URL: #30644
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
addaleax pushed a commit that referenced this pull request Nov 30, 2019
This commit adds a retryDelay option to rimraf which configures
the amount of time between retry operations.
Refs: #30580
PR-URL: #30644
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
addaleax pushed a commit that referenced this pull request Nov 30, 2019
Co-authored-by: Thang Tran <trankimthang279@gmail.com>
Fixes: #30482
Refs: #30499
Refs: #30580
PR-URL: #30644
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
@BridgeARBridgeAR mentioned this pull request Dec 3, 2019
BridgeAR added a commit that referenced this pull request Dec 3, 2019
Notable changes:
* fs:
* Reworked experimental recursive `rmdir()` (cjihrig)
#30644
* The `maxBusyTries` option is renamed to `maxRetries`, and its
default is set to 0. The `emfileWait` option has been removed,
and `EMFILE` errors use the same retry logic as other errors.
The `retryDelay` option is now supported. `ENFILE` errors are
now retried.
* http:
* Make maximum header size configurable per-stream or per-server
(Anna Henningsen) #30570
* http2:
* Make maximum tolerated rejected streams configurable (Denys
Otrishko) #30534
* Allow to configure maximum tolerated invalid frames (Denys
Otrishko) #30534
* wasi:
* Introduce initial WASI support (cjihrig)
#30258
PR-URL: #30774
BridgeAR added a commit that referenced this pull request Dec 3, 2019
Notable changes:
* fs:
* Reworked experimental recursive `rmdir()` (cjihrig)
#30644
* The `maxBusyTries` option is renamed to `maxRetries`, and its
default is set to 0. The `emfileWait` option has been removed,
and `EMFILE` errors use the same retry logic as other errors.
The `retryDelay` option is now supported. `ENFILE` errors are
now retried.
* http:
* Make maximum header size configurable per-stream or per-server
(Anna Henningsen) #30570
* http2:
* Make maximum tolerated rejected streams configurable (Denys
Otrishko) #30534
* Allow to configure maximum tolerated invalid frames (Denys
Otrishko) #30534
* wasi:
* Introduce initial WASI support (cjihrig)
#30258
PR-URL: #30774
targos pushed a commit that referenced this pull request Jan 13, 2020
This is part of reworking the rimraf retry logic.
Refs: #30580
PR-URL: #30644
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
targos pushed a commit that referenced this pull request Jan 13, 2020
This commit makes retries an opt-in feature by defaulting
to no automatic retries. This will be particularly important
once synchronous operations can sleep between attempts.
Refs: #30580
PR-URL: #30644
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
targos pushed a commit that referenced this pull request Jan 13, 2020
This commit removes the emfileWait option. EMFILE errors are
now handled the same as any other retriable error.
Refs: #30580
PR-URL: #30644
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
targos pushed a commit that referenced this pull request Jan 13, 2020
This commit adds a retryDelay option to rimraf which configures
the amount of time between retry operations.
Refs: #30580
PR-URL: #30644
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
targos pushed a commit that referenced this pull request Jan 13, 2020
Co-authored-by: Thang Tran <trankimthang279@gmail.com>
Fixes: #30482
Refs: #30499
Refs: #30580
PR-URL: #30644
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
@targostargos mentioned this pull request Jan 15, 2020
BethGriggs pushed a commit that referenced this pull request Feb 6, 2020
This is part of reworking the rimraf retry logic.
Refs: #30580
PR-URL: #30644
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
BethGriggs pushed a commit that referenced this pull request Feb 6, 2020
This commit makes retries an opt-in feature by defaulting
to no automatic retries. This will be particularly important
once synchronous operations can sleep between attempts.
Refs: #30580
PR-URL: #30644
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
BethGriggs pushed a commit that referenced this pull request Feb 6, 2020
This commit removes the emfileWait option. EMFILE errors are
now handled the same as any other retriable error.
Refs: #30580
PR-URL: #30644
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
BethGriggs pushed a commit that referenced this pull request Feb 6, 2020
This commit adds a retryDelay option to rimraf which configures
the amount of time between retry operations.
Refs: #30580
PR-URL: #30644
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
BethGriggs pushed a commit that referenced this pull request Feb 6, 2020
Co-authored-by: Thang Tran <trankimthang279@gmail.com>
Fixes: #30482
Refs: #30499
Refs: #30580
PR-URL: #30644
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
@MylesBorinsMylesBorins mentioned this pull request Feb 8, 2020
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fsIssues and PRs related to the fs subsystem / file system.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@cjihrig@nodejs-github-bot@targos@jasnell@addaleax@yorkie