This repository has been archived by the owner. It is now read-only.
Permalink
Please
sign in to comment.
Browse files
http: fix "Cannot call method 'emit' of null"
Fix the following exception: http.js:974 this._httpMessage.emit('close'); ^ TypeError: Cannot call method 'emit' of null at Socket.onServerResponseClose (http.js:974:21) at Socket.EventEmitter.emit (events.js:124:20) at net.js:421:10 at process._tickCallback (node.js:386:13) at process._makeCallback (node.js:304:15)
- Loading branch information
Showing
with
69 additions
and 1 deletion.
- +18 −1 lib/http.js
- +51 −0 test/simple/test-http-server-stale-close.js
@@ -0,0 +1,51 @@ | ||
// Copyright Joyent, Inc. and other Node contributors. | ||
// | ||
// Permission is hereby granted, free of charge, to any person obtaining a | ||
// copy of this software and associated documentation files (the | ||
// "Software"), to deal in the Software without restriction, including | ||
// without limitation the rights to use, copy, modify, merge, publish, | ||
// distribute, sublicense, and/or sell copies of the Software, and to permit | ||
// persons to whom the Software is furnished to do so, subject to the | ||
// following conditions: | ||
// | ||
// The above copyright notice and this permission notice shall be included | ||
// in all copies or substantial portions of the Software. | ||
// | ||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | ||
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN | ||
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, | ||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR | ||
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE | ||
// USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
|
||
var common = require('../common'); | ||
var assert = require('assert'); | ||
var http = require('http'); | ||
var fork = require('child_process').fork; | ||
|
||
if (process.env.NODE_TEST_FORK) { | ||
var req = http.request({ | ||
headers: {'Content-Length': '42'}, | ||
method: 'POST', | ||
host: '127.0.0.1', | ||
port: common.PORT, | ||
}, process.exit); | ||
req.write('BAM'); | ||
req.end(); | ||
} | ||
else { | ||
var server = http.createServer(function(req, res) { | ||
res.writeHead(200, {'Content-Length': '42'}); | ||
req.pipe(res); | ||
req.on('close', function() { | ||
server.close(); | ||
res.end(); | ||
}); | ||
}); | ||
server.listen(common.PORT, function() { | ||
fork(__filename, { | ||
env: {NODE_TEST_FORK: '1'} | ||
}); | ||
}); | ||
} |
0 comments on commit
c3642aa