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: make rimraf default to 0 retries · nodejs/node@022ecbd

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
  • doc/api
    • fs.md
  • lib/internal/fs
    • rimraf.js
    • utils.js
  • test/parallel
    • test-fs-rmdir-recursive.js
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎doc/api/fs.md‎

Copy file name to clipboardExpand all lines: doc/api/fs.md
+12-5Lines changed: 12 additions & 5 deletions
  • Display the source diff
  • Display the rich diff
Original file line numberDiff line numberDiff line change
@@ -3222,7 +3222,8 @@ added: v0.0.2
32223222
changes:
32233223
- version: REPLACEME
32243224
pr-url: https://github.com/nodejs/node/pull/30644
3225-
description: The `maxBusyTries` option is renamed to `maxRetries`.
3225+
description: The `maxBusyTries` option is renamed to `maxRetries`, and its
3226+
default is 0.
32263227
- version: v12.10.0
32273228
pr-url: https://github.com/nodejs/node/pull/29168
32283229
description: The `recursive`, `maxBusyTries`, and `emfileWait` options are
@@ -3252,7 +3253,7 @@ changes:
32523253
* `maxRetries` {integer} If an `EBUSY`, `ENOTEMPTY`, or `EPERM` error is
32533254
encountered, Node.js will retry the operation with a linear backoff wait of
32543255
100ms longer on each try. This option represents the number of retries. This
3255-
option is ignored if the `recursive` option is not `true`. **Default:** `3`.
3256+
option is ignored if the `recursive` option is not `true`. **Default:** `0`.
32563257
* `recursive` {boolean} If `true`, perform a recursive directory removal. In
32573258
recursive mode, errors are not reported if `path` does not exist, and
32583259
operations are retried on failure. **Default:** `false`.
@@ -3271,7 +3272,8 @@ added: v0.1.21
32713272
changes:
32723273
- version: REPLACEME
32733274
pr-url: https://github.com/nodejs/node/pull/30644
3274-
description: The `maxBusyTries` option is renamed to `maxRetries`.
3275+
description: The `maxBusyTries` option is renamed to `maxRetries`, and its
3276+
default is 0.
32753277
- version: v12.10.0
32763278
pr-url: https://github.com/nodejs/node/pull/29168
32773279
description: The `recursive`, `maxBusyTries`, and `emfileWait` options are
@@ -3286,6 +3288,10 @@ changes:
32863288
32873289
* `path` {string|Buffer|URL}
32883290
* `options` {Object}
3291+
* `maxRetries` {integer} If an `EBUSY`, `ENOTEMPTY`, or `EPERM` error is
3292+
encountered, Node.js will retry the operation. This option represents the
3293+
number of retries. This option is ignored if the `recursive` option is not
3294+
`true`. **Default:** `0`.
32893295
* `recursive` {boolean} If `true`, perform a recursive directory removal. In
32903296
recursive mode, errors are not reported if `path` does not exist, and
32913297
operations are retried on failure. **Default:** `false`.
@@ -4998,7 +5004,8 @@ added: v10.0.0
49985004
changes:
49995005
- version: REPLACEME
50005006
pr-url: https://github.com/nodejs/node/pull/30644
5001-
description: The `maxBusyTries` option is renamed to `maxRetries`.
5007+
description: The `maxBusyTries` option is renamed to `maxRetries`, and its
5008+
default is 0.
50025009
- version: v12.10.0
50035010
pr-url: https://github.com/nodejs/node/pull/29168
50045011
description: The `recursive`, `maxBusyTries`, and `emfileWait` options are
@@ -5016,7 +5023,7 @@ changes:
50165023
* `maxRetries` {integer} If an `EBUSY`, `ENOTEMPTY`, or `EPERM` error is
50175024
encountered, Node.js will retry the operation with a linear backoff wait of
50185025
100ms longer on each try. This option represents the number of retries. This
5019-
option is ignored if the `recursive` option is not `true`. **Default:** `3`.
5026+
option is ignored if the `recursive` option is not `true`. **Default:** `0`.
50205027
* `recursive` {boolean} If `true`, perform a recursive directory removal. In
50215028
recursive mode, errors are not reported if `path` does not exist, and
50225029
operations are retried on failure. **Default:** `false`.
Collapse file

‎lib/internal/fs/rimraf.js‎

Copy file name to clipboardExpand all lines: lib/internal/fs/rimraf.js
+5-6Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,18 @@ const notEmptyErrorCodes = new Set(['ENOTEMPTY', 'EEXIST', 'EPERM']);
2525
const isWindows = process.platform === 'win32';
2626
const epermHandler = isWindows ? fixWinEPERM : _rmdir;
2727
const epermHandlerSync = isWindows ? fixWinEPERMSync : _rmdirSync;
28-
const numRetries = isWindows ? 100 : 1;
2928

3029

3130
function rimraf(path, options, callback) {
3231
let timeout = 0; // For EMFILE handling.
33-
let busyTries = 0;
32+
let retries = 0;
3433

3534
_rimraf(path, options, function CB(err) {
3635
if (err) {
3736
if ((err.code === 'EBUSY' || err.code === 'ENOTEMPTY' ||
38-
err.code === 'EPERM') && busyTries < options.maxRetries) {
39-
busyTries++;
40-
return setTimeout(_rimraf, busyTries * 100, path, options, CB);
37+
err.code === 'EPERM') && retries < options.maxRetries) {
38+
retries++;
39+
return setTimeout(_rimraf, retries * 100, path, options, CB);
4140
}
4241

4342
if (err.code === 'EMFILE' && timeout < options.emfileWait)
@@ -211,7 +210,7 @@ function _rmdirSync(path, options, originalErr) {
211210
rimrafSync(join(path, child), options);
212211
});
213212

214-
for (let i = 0; i < numRetries; i++) {
213+
for (let i = 0; i < options.maxRetries + 1; i++) {
215214
try {
216215
return rmdirSync(path, options);
217216
} catch {} // Ignore errors.
Collapse file

‎lib/internal/fs/utils.js‎

Copy file name to clipboardExpand all lines: lib/internal/fs/utils.js
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -564,7 +564,7 @@ function warnOnNonPortableTemplate(template) {
564564

565565
const defaultRmdirOptions = {
566566
emfileWait: 1000,
567-
maxRetries: 3,
567+
maxRetries: 0,
568568
recursive: false,
569569
};
570570

Collapse file

‎test/parallel/test-fs-rmdir-recursive.js‎

Copy file name to clipboardExpand all lines: test/parallel/test-fs-rmdir-recursive.js
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ function removeAsync(dir) {
156156
{
157157
const defaults = {
158158
emfileWait: 1000,
159-
maxRetries: 3,
159+
maxRetries: 0,
160160
recursive: false
161161
};
162162
const modified = {

0 commit comments

Comments
0 (0)
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.