@theia/filesystem 1.73.0-next.10 → 1.73.0-next.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/node/parcel-watcher/parcel-filesystem-service.d.ts.map +1 -1
- package/lib/node/parcel-watcher/parcel-filesystem-service.js +29 -1
- package/lib/node/parcel-watcher/parcel-filesystem-service.js.map +1 -1
- package/lib/node/parcel-watcher/parcel-watcher-retry.spec.d.ts +2 -0
- package/lib/node/parcel-watcher/parcel-watcher-retry.spec.d.ts.map +1 -0
- package/lib/node/parcel-watcher/parcel-watcher-retry.spec.js +102 -0
- package/lib/node/parcel-watcher/parcel-watcher-retry.spec.js.map +1 -0
- package/package.json +3 -3
- package/src/node/parcel-watcher/parcel-filesystem-service.ts +28 -1
- package/src/node/parcel-watcher/parcel-watcher-retry.spec.ts +117 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parcel-filesystem-service.d.ts","sourceRoot":"","sources":["../../../src/node/parcel-watcher/parcel-filesystem-service.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EACH,cAAc,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,YAAY,EACzF,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAW,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAa,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,oCAAoC,CAAC;AAGlG,MAAM,WAAW,oBAAoB;IACjC,0EAA0E;IAC1E,OAAO,EAAE,SAAS,EAAE,CAAA;IACpB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,eAAO,MAAM,oCAAoC,eAAiD,CAAC;AACnG,MAAM,WAAW,oCAAoC;IACjD,OAAO,EAAE,OAAO,CAAC;IAEjB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAEhD,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACjD,aAAa,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,eAA4B,CAAC;AAEzD;;;;;;;;;GASG;AACH,qBAAa,aAAa;IA6DlB,qCAAqC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,+BAA+B;IAC/B,QAAQ,CAAC,cAAc,EAAE,oBAAoB;IAC7C,yCAAyC;IACzC,SAAS,CAAC,QAAQ,CAAC,kCAAkC,EAAE,oCAAoC;IAC3F,uCAAuC;IACvC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,8BAA8B;IAC1E,+EAA+E;IAC/E,SAAS,CAAC,QAAQ,CAAC,uBAAuB;IApE9C,SAAS,CAAC,MAAM,CAAC,eAAe,SAAK;IAErC,SAAS,CAAC,QAAQ,UAAS;IAE3B;;OAEG;IACH,SAAS,CAAC,OAAO,SAAmC;IAEpD;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAEjD;;OAEG;IACH,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;IAE5D;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,wBAAwB,kBAAyB;IAEpE;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa;eAA4B,MAAM;OAAM;IAExE;;;OAGG;IACH,SAAS,CAAC,0BAA0B,EAAE,OAAO,CAAC,IAAI,CAAC,CAAqB;IAExE;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAgE;IAEpG;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAGvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAA2D;;IAGrG,wCAAwC;IACxC,eAAe,EAAE,MAAM;IACvB,qCAAqC;IAC5B,MAAM,EAAE,MAAM;IACvB,+BAA+B;IACtB,cAAc,EAAE,oBAAoB;IAC7C,yCAAyC;IACtB,kCAAkC,EAAE,oCAAoC;IAC3F,uCAAuC;IACpB,uBAAuB,EAAE,8BAA8B;IAC1E,+EAA+E;IAC5D,uBAAuB,SAAS;
|
|
1
|
+
{"version":3,"file":"parcel-filesystem-service.d.ts","sourceRoot":"","sources":["../../../src/node/parcel-watcher/parcel-filesystem-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -92,6 +92,7 @@ class ParcelWatcher {
|
|
|
92
92
|
if (error === exports.WatcherDisposal) {
|
|
93
93
|
return false;
|
|
94
94
|
}
|
|
95
|
+
console.error(`Watcher failed to start at "${this.fsPath}":`, error);
|
|
95
96
|
this._dispose();
|
|
96
97
|
this.fireError();
|
|
97
98
|
throw error;
|
|
@@ -173,7 +174,34 @@ class ParcelWatcher {
|
|
|
173
174
|
this.assertNotDisposed();
|
|
174
175
|
}
|
|
175
176
|
this.assertNotDisposed();
|
|
176
|
-
|
|
177
|
+
// This race is specific to Linux/inotify: parcel-watcher's inotify backend walks
|
|
178
|
+
// the tree and then calls inotify_add_watch on every subdirectory. If a subdirectory
|
|
179
|
+
// disappears between the walk and the add (common when watching dirs that contain
|
|
180
|
+
// auto-rotated log/temp folders), the syscall returns ENOENT and parcel-watcher fails
|
|
181
|
+
// the entire subscribe. Retry a few times: by the next walk the gone-but-not-forgotten
|
|
182
|
+
// dir is no longer present. Windows (ReadDirectoryChangesW) and macOS (FSEvents) watch
|
|
183
|
+
// the whole subtree from a single handle on the root and never register per-subdirectory
|
|
184
|
+
// watches, so they cannot hit this race; the retry is simply a no-op there.
|
|
185
|
+
let watcher;
|
|
186
|
+
let attempt = 0;
|
|
187
|
+
while (true) {
|
|
188
|
+
try {
|
|
189
|
+
watcher = await this.createWatcher();
|
|
190
|
+
break;
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
const message = (error && error.message) || '';
|
|
194
|
+
const isTransientEnoent = message.includes('No such file or directory')
|
|
195
|
+
&& await fs_1.promises.stat(this.fsPath).then(() => true, () => false);
|
|
196
|
+
if (!isTransientEnoent || attempt >= 4) {
|
|
197
|
+
throw error;
|
|
198
|
+
}
|
|
199
|
+
attempt++;
|
|
200
|
+
this.assertNotDisposed();
|
|
201
|
+
await (0, promise_util_1.timeout)(100 * attempt);
|
|
202
|
+
this.assertNotDisposed();
|
|
203
|
+
}
|
|
204
|
+
}
|
|
177
205
|
this.assertNotDisposed();
|
|
178
206
|
this.debug('STARTED', `disposed=${this.disposed}`);
|
|
179
207
|
// The watcher could be disposed while it was starting, make sure to check for this:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parcel-filesystem-service.js","sourceRoot":"","sources":["../../../src/node/parcel-watcher/parcel-filesystem-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parcel-filesystem-service.js","sourceRoot":"","sources":["../../../src/node/parcel-watcher/parcel-filesystem-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parcel-watcher-retry.spec.d.ts","sourceRoot":"","sources":["../../../src/node/parcel-watcher/parcel-watcher-retry.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2026 EclipseSource and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const chai = require("chai");
|
|
19
|
+
const sinon = require("sinon");
|
|
20
|
+
const temp = require("temp");
|
|
21
|
+
const fs = require("@theia/core/shared/fs-extra");
|
|
22
|
+
const node_1 = require("@theia/core/lib/node");
|
|
23
|
+
const parcel_filesystem_service_1 = require("./parcel-filesystem-service");
|
|
24
|
+
// We require the *same* module object that the production code imports from, so that
|
|
25
|
+
// stubbing its `subscribe` export is observed by `ParcelWatcher`. The `@theia/core/shared`
|
|
26
|
+
// shim simply re-exports `require('@parcel/watcher')`, so this is the identical reference.
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
28
|
+
const parcel = require('@theia/core/shared/@parcel/watcher');
|
|
29
|
+
const expect = chai.expect;
|
|
30
|
+
const track = temp.track();
|
|
31
|
+
/**
|
|
32
|
+
* Covers the inotify-tree-race fix in `ParcelWatcher.start()`:
|
|
33
|
+
*
|
|
34
|
+
* parcel-watcher walks the directory tree and only then calls `inotify_add_watch`
|
|
35
|
+
* on each subdirectory. If a subdirectory disappears between the walk and the add
|
|
36
|
+
* (common when watching dirs that contain rotated logs/temp folders), the syscall
|
|
37
|
+
* returns ENOENT and parcel-watcher fails the *entire* subscribe. The fix retries
|
|
38
|
+
* `createWatcher` a few times, but only when (a) the underlying error indicates a
|
|
39
|
+
* missing path and (b) the watched root itself still exists.
|
|
40
|
+
*/
|
|
41
|
+
describe('parcel-filesystem-watcher transient ENOENT handling', function () {
|
|
42
|
+
this.timeout(20000);
|
|
43
|
+
let root;
|
|
44
|
+
let service;
|
|
45
|
+
let subscribeStub;
|
|
46
|
+
let consoleErrorStub;
|
|
47
|
+
let onError;
|
|
48
|
+
beforeEach(() => {
|
|
49
|
+
const tempPath = temp.mkdirSync('parcel-enoent-root');
|
|
50
|
+
root = node_1.FileUri.create(fs.realpathSync(tempPath));
|
|
51
|
+
// start() now logs the underlying error to stderr on failure; silence it
|
|
52
|
+
// so the test output stays readable.
|
|
53
|
+
consoleErrorStub = sinon.stub(console, 'error');
|
|
54
|
+
service = new parcel_filesystem_service_1.ParcelFileSystemWatcherService({ verbose: false });
|
|
55
|
+
onError = sinon.stub();
|
|
56
|
+
service.setClient({
|
|
57
|
+
onDidFilesChanged: () => undefined,
|
|
58
|
+
onError,
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
afterEach(() => {
|
|
62
|
+
subscribeStub?.restore();
|
|
63
|
+
consoleErrorStub.restore();
|
|
64
|
+
track.cleanupSync();
|
|
65
|
+
});
|
|
66
|
+
it('retries when subscribe throws a transient ENOENT and the watched root still exists', async () => {
|
|
67
|
+
let attempts = 0;
|
|
68
|
+
subscribeStub = sinon.stub(parcel, 'subscribe').callsFake(async () => {
|
|
69
|
+
attempts++;
|
|
70
|
+
if (attempts < 3) {
|
|
71
|
+
throw new Error('No such file or directory at /tmp/rotated-log');
|
|
72
|
+
}
|
|
73
|
+
return { unsubscribe: async () => undefined };
|
|
74
|
+
});
|
|
75
|
+
await service.watchFileChanges(0, root.toString());
|
|
76
|
+
// Backoff schedule for two retries: 100 + 200 = 300ms. Leave generous margin.
|
|
77
|
+
await new Promise(resolve => setTimeout(resolve, 800));
|
|
78
|
+
expect(attempts, 'subscribe should have been retried until it succeeded').to.equal(3);
|
|
79
|
+
expect(onError.called, 'no error should surface to the client once the retry recovered').to.equal(false);
|
|
80
|
+
});
|
|
81
|
+
it('does not retry on non-ENOENT errors and surfaces the failure immediately', async () => {
|
|
82
|
+
subscribeStub = sinon.stub(parcel, 'subscribe').callsFake(async () => {
|
|
83
|
+
throw new Error('EACCES: permission denied');
|
|
84
|
+
});
|
|
85
|
+
await service.watchFileChanges(0, root.toString());
|
|
86
|
+
await new Promise(resolve => setTimeout(resolve, 200));
|
|
87
|
+
expect(subscribeStub.callCount, 'non-transient errors must not trigger any retry').to.equal(1);
|
|
88
|
+
expect(onError.called, 'error must be reported to the client').to.equal(true);
|
|
89
|
+
});
|
|
90
|
+
it('gives up after the retry budget is exhausted on persistent ENOENT', async () => {
|
|
91
|
+
subscribeStub = sinon.stub(parcel, 'subscribe').callsFake(async () => {
|
|
92
|
+
throw new Error('No such file or directory at /tmp/rotated-log');
|
|
93
|
+
});
|
|
94
|
+
await service.watchFileChanges(0, root.toString());
|
|
95
|
+
// Total backoff is 100+200+300+400 = 1000ms; leave a margin for scheduling.
|
|
96
|
+
await new Promise(resolve => setTimeout(resolve, 1700));
|
|
97
|
+
// Initial attempt + 4 retries = 5 total subscribe calls.
|
|
98
|
+
expect(subscribeStub.callCount, 'should retry up to the budget then give up').to.equal(5);
|
|
99
|
+
expect(onError.called, 'error must surface once the retry budget is exhausted').to.equal(true);
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
//# sourceMappingURL=parcel-watcher-retry.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parcel-watcher-retry.spec.js","sourceRoot":"","sources":["../../../src/node/parcel-watcher/parcel-watcher-retry.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/filesystem",
|
|
3
|
-
"version": "1.73.0-next.
|
|
3
|
+
"version": "1.73.0-next.14+dca320f56",
|
|
4
4
|
"description": "Theia - FileSystem Extension",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/core": "1.73.0-next.
|
|
6
|
+
"@theia/core": "1.73.0-next.14+dca320f56",
|
|
7
7
|
"@types/body-parser": "^1.19.6",
|
|
8
8
|
"@types/multer": "^1.4.13",
|
|
9
9
|
"@types/tar-fs": "^1.16.3",
|
|
@@ -82,5 +82,5 @@
|
|
|
82
82
|
"nyc": {
|
|
83
83
|
"extends": "../../configs/nyc.json"
|
|
84
84
|
},
|
|
85
|
-
"gitHead": "
|
|
85
|
+
"gitHead": "dca320f5652d66a1f213050e3aa922a971c44173"
|
|
86
86
|
}
|
|
@@ -140,6 +140,7 @@ export class ParcelWatcher {
|
|
|
140
140
|
if (error === WatcherDisposal) {
|
|
141
141
|
return false;
|
|
142
142
|
}
|
|
143
|
+
console.error(`Watcher failed to start at "${this.fsPath}":`, error);
|
|
143
144
|
this._dispose();
|
|
144
145
|
this.fireError();
|
|
145
146
|
throw error;
|
|
@@ -227,7 +228,33 @@ export class ParcelWatcher {
|
|
|
227
228
|
this.assertNotDisposed();
|
|
228
229
|
}
|
|
229
230
|
this.assertNotDisposed();
|
|
230
|
-
|
|
231
|
+
// This race is specific to Linux/inotify: parcel-watcher's inotify backend walks
|
|
232
|
+
// the tree and then calls inotify_add_watch on every subdirectory. If a subdirectory
|
|
233
|
+
// disappears between the walk and the add (common when watching dirs that contain
|
|
234
|
+
// auto-rotated log/temp folders), the syscall returns ENOENT and parcel-watcher fails
|
|
235
|
+
// the entire subscribe. Retry a few times: by the next walk the gone-but-not-forgotten
|
|
236
|
+
// dir is no longer present. Windows (ReadDirectoryChangesW) and macOS (FSEvents) watch
|
|
237
|
+
// the whole subtree from a single handle on the root and never register per-subdirectory
|
|
238
|
+
// watches, so they cannot hit this race; the retry is simply a no-op there.
|
|
239
|
+
let watcher: AsyncSubscription | undefined;
|
|
240
|
+
let attempt = 0;
|
|
241
|
+
while (true) {
|
|
242
|
+
try {
|
|
243
|
+
watcher = await this.createWatcher();
|
|
244
|
+
break;
|
|
245
|
+
} catch (error) {
|
|
246
|
+
const message: string = (error && error.message) || '';
|
|
247
|
+
const isTransientEnoent = message.includes('No such file or directory')
|
|
248
|
+
&& await fsp.stat(this.fsPath).then(() => true, () => false);
|
|
249
|
+
if (!isTransientEnoent || attempt >= 4) {
|
|
250
|
+
throw error;
|
|
251
|
+
}
|
|
252
|
+
attempt++;
|
|
253
|
+
this.assertNotDisposed();
|
|
254
|
+
await timeout(100 * attempt);
|
|
255
|
+
this.assertNotDisposed();
|
|
256
|
+
}
|
|
257
|
+
}
|
|
231
258
|
this.assertNotDisposed();
|
|
232
259
|
this.debug('STARTED', `disposed=${this.disposed}`);
|
|
233
260
|
// The watcher could be disposed while it was starting, make sure to check for this:
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2026 EclipseSource and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import * as chai from 'chai';
|
|
18
|
+
import * as sinon from 'sinon';
|
|
19
|
+
import * as temp from 'temp';
|
|
20
|
+
import * as fs from '@theia/core/shared/fs-extra';
|
|
21
|
+
import URI from '@theia/core/lib/common/uri';
|
|
22
|
+
import { FileUri } from '@theia/core/lib/node';
|
|
23
|
+
import { ParcelFileSystemWatcherService } from './parcel-filesystem-service';
|
|
24
|
+
|
|
25
|
+
// We require the *same* module object that the production code imports from, so that
|
|
26
|
+
// stubbing its `subscribe` export is observed by `ParcelWatcher`. The `@theia/core/shared`
|
|
27
|
+
// shim simply re-exports `require('@parcel/watcher')`, so this is the identical reference.
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
29
|
+
const parcel = require('@theia/core/shared/@parcel/watcher');
|
|
30
|
+
|
|
31
|
+
const expect = chai.expect;
|
|
32
|
+
const track = temp.track();
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Covers the inotify-tree-race fix in `ParcelWatcher.start()`:
|
|
36
|
+
*
|
|
37
|
+
* parcel-watcher walks the directory tree and only then calls `inotify_add_watch`
|
|
38
|
+
* on each subdirectory. If a subdirectory disappears between the walk and the add
|
|
39
|
+
* (common when watching dirs that contain rotated logs/temp folders), the syscall
|
|
40
|
+
* returns ENOENT and parcel-watcher fails the *entire* subscribe. The fix retries
|
|
41
|
+
* `createWatcher` a few times, but only when (a) the underlying error indicates a
|
|
42
|
+
* missing path and (b) the watched root itself still exists.
|
|
43
|
+
*/
|
|
44
|
+
describe('parcel-filesystem-watcher transient ENOENT handling', function (): void {
|
|
45
|
+
|
|
46
|
+
this.timeout(20000);
|
|
47
|
+
|
|
48
|
+
let root: URI;
|
|
49
|
+
let service: ParcelFileSystemWatcherService;
|
|
50
|
+
let subscribeStub: sinon.SinonStub | undefined;
|
|
51
|
+
let consoleErrorStub: sinon.SinonStub;
|
|
52
|
+
let onError: sinon.SinonStub;
|
|
53
|
+
|
|
54
|
+
beforeEach(() => {
|
|
55
|
+
const tempPath = temp.mkdirSync('parcel-enoent-root');
|
|
56
|
+
root = FileUri.create(fs.realpathSync(tempPath));
|
|
57
|
+
// start() now logs the underlying error to stderr on failure; silence it
|
|
58
|
+
// so the test output stays readable.
|
|
59
|
+
consoleErrorStub = sinon.stub(console, 'error');
|
|
60
|
+
service = new ParcelFileSystemWatcherService({ verbose: false });
|
|
61
|
+
onError = sinon.stub();
|
|
62
|
+
service.setClient({
|
|
63
|
+
onDidFilesChanged: () => undefined,
|
|
64
|
+
onError,
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
afterEach(() => {
|
|
69
|
+
subscribeStub?.restore();
|
|
70
|
+
consoleErrorStub.restore();
|
|
71
|
+
track.cleanupSync();
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
it('retries when subscribe throws a transient ENOENT and the watched root still exists', async () => {
|
|
75
|
+
let attempts = 0;
|
|
76
|
+
subscribeStub = sinon.stub(parcel, 'subscribe').callsFake(async () => {
|
|
77
|
+
attempts++;
|
|
78
|
+
if (attempts < 3) {
|
|
79
|
+
throw new Error('No such file or directory at /tmp/rotated-log');
|
|
80
|
+
}
|
|
81
|
+
return { unsubscribe: async () => undefined };
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
await service.watchFileChanges(0, root.toString());
|
|
85
|
+
// Backoff schedule for two retries: 100 + 200 = 300ms. Leave generous margin.
|
|
86
|
+
await new Promise(resolve => setTimeout(resolve, 800));
|
|
87
|
+
|
|
88
|
+
expect(attempts, 'subscribe should have been retried until it succeeded').to.equal(3);
|
|
89
|
+
expect(onError.called, 'no error should surface to the client once the retry recovered').to.equal(false);
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
it('does not retry on non-ENOENT errors and surfaces the failure immediately', async () => {
|
|
93
|
+
subscribeStub = sinon.stub(parcel, 'subscribe').callsFake(async () => {
|
|
94
|
+
throw new Error('EACCES: permission denied');
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
await service.watchFileChanges(0, root.toString());
|
|
98
|
+
await new Promise(resolve => setTimeout(resolve, 200));
|
|
99
|
+
|
|
100
|
+
expect(subscribeStub.callCount, 'non-transient errors must not trigger any retry').to.equal(1);
|
|
101
|
+
expect(onError.called, 'error must be reported to the client').to.equal(true);
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
it('gives up after the retry budget is exhausted on persistent ENOENT', async () => {
|
|
105
|
+
subscribeStub = sinon.stub(parcel, 'subscribe').callsFake(async () => {
|
|
106
|
+
throw new Error('No such file or directory at /tmp/rotated-log');
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
await service.watchFileChanges(0, root.toString());
|
|
110
|
+
// Total backoff is 100+200+300+400 = 1000ms; leave a margin for scheduling.
|
|
111
|
+
await new Promise(resolve => setTimeout(resolve, 1700));
|
|
112
|
+
|
|
113
|
+
// Initial attempt + 4 retries = 5 total subscribe calls.
|
|
114
|
+
expect(subscribeStub.callCount, 'should retry up to the budget then give up').to.equal(5);
|
|
115
|
+
expect(onError.called, 'error must surface once the retry budget is exhausted').to.equal(true);
|
|
116
|
+
});
|
|
117
|
+
});
|