Receives SIGTERM during "DDoS"
Maxim-Mazurok opened this issue · comments
Environment Versions
- OS Type: Windows 11
- Node version:
$ node --version
v16.3.0 - http-server version:
$ http-server --version
v14.1.0
Steps to reproduce
- Run this code:
const serveProcess = childProcess.exec('http-server -a :: -p 3000 -c-1 ./dist'); serveProcess.stdout.on('data', (data) => { console.log(data); }); serveProcess.stderr.on('data', (data) => { console.error(data); }); serveProcess.on('close', (code, signal) => { console.log(`Server process closed with code ${code} or signal ${signal}`); process.exit(); }); serveProcess.on('exit', (code, signal) => { console.log(`Server process exited with code ${code} or signal ${signal}`); });
- Clone https://github.com/talentlessguy/simple-ddos and run
node demo/app.js
- Wait for a bit, observe the first script reporting:
Server process exited with code 1 or signal null Server process closed with code 1 or signal null
- Try to run the server script again, observe error:
code: 'EADDRINUSE', errno: -4091, syscall: 'listen', address: '::', port: 3000
(you can run npx -y kill-port 3000
to forcefully kill the http-server)
Expected result
I expect http-server not to receive SIGTERM signal. I'm pretty sure that it's sending it to itself somehow?
Actual result
See in repro steps
Other information
My use-case is running cypress tests using http-server, and when I disabled cache using -c-1
- it started to fail midway. When I run tests individually - they pass, but when I run them all sequentially - the server gets sigterm signal.
I'll probably just ignore it because despite the server getting this signal, it still continues to work just fine.
This is kinda a problem when I do want to kill it tho, once all tests are done. Because tree-kill
npm module that I use normally to kill http-server, doesn't work in this scenario.
This issue has been inactive for 180 days