current commit
240617.3 · fs: do not crash if the watched file is removed while setting up watch
'use strict';

const common = require('../common');

if (!common.isLinux)
  common.skip('This test can run only on Linux');

// Test that the watcher do not crash if the file "disappears" while
// watch is being set up.

const path = require('node:path');
const fs = require('node:fs');
const { spawn } = require('node:child_process');

const tmpdir = require('../common/tmpdir');
const testDir = tmpdir.path;
tmpdir.refresh();

const watcher = fs.watch(testDir, { recursive: true });
watcher.on('change', function(event, filename) {
  // This console.log makes the error happen
  // do not remove
  console.log(filename, event);
});

const testFile = path.join(testDir, 'a');
const child = spawn(process.argv[0], ['-e', `const fs = require('node:fs'); for (let i = 0; i < 10000; i++) { const fd = fs.openSync('${testFile}', 'w'); fs.writeSync(fd, Buffer.from('hello')); fs.rmSync('${testFile}') }`], {
  stdio: 'inherit'
});

child.on('exit', function() {
  watcher.close();
});