-
-
Notifications
You must be signed in to change notification settings - Fork 33.5k
Closed
Labels
confirmed-bugIssues with confirmed bugs.Issues with confirmed bugs.httpIssues or PRs related to the http subsystem.Issues or PRs related to the http subsystem.
Description
- Version: 12.16.0 | 13.8.0
- Platform: Darwin Kernel Version 18.6.0
- Subsystem:
What steps will reproduce the bug?
Throwing from a response listener (callback) to http.get() will not trigger process.once('uncaughtException', () => {}). Interestingly, throwing from a request listener (callback) to http.createServer() will still.
This behavior changed with 12.16.0, I'm guessing likely due to the porting of the emit changes?
const http = require('http')
let server
let request
process.once('uncaughtException', function() {
// never gets here from response listener in 12.16, works fine < 12.16.
console.log('in uncaughtException handler')
server.close(done)
})
server = http.createServer(function cb_createServer(request, response) {
// Throw from request listener will result in uncaughtException
//throw new Error('wat')
response.writeHead(200, {'Content-Type': 'text/plain'})
response.end()
})
server.listen(8183, function() {
request = http.get({host: 'localhost', port: 8183}, function() {
// Throw from response listener will not result in uncaughtException
throw new Error('whoah')
})
})How often does it reproduce? Is there a required condition?
Consistently does not trigger uncaughtException / does not allow handling via process.on('uncaughtException', ...).
What is the expected behavior?
Should be able to notice the uncaught exception thrown from the handler.
What do you see instead?
Additional information
Metadata
Metadata
Assignees
Labels
confirmed-bugIssues with confirmed bugs.Issues with confirmed bugs.httpIssues or PRs related to the http subsystem.Issues or PRs related to the http subsystem.