Only log connection error once

This commit is contained in:
Ben Adams 2016-01-22 23:34:28 +00:00
parent cd621509d0
commit e5238ff383
1 changed files with 10 additions and 11 deletions

View File

@ -294,12 +294,17 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Http
{
lock (_contextLock)
{
// Abort the connection for any failed write
// Queued on threadpool so get it in as first op.
_connection.Abort();
_cancelled = true;
if (!_cancelled)
{
// Abort the connection for any failed write
// Queued on threadpool so get it in as first op.
_connection.Abort();
_cancelled = true;
CompleteAllWrites();
CompleteAllWrites();
_log.ConnectionError(_connectionId, new TaskCanceledException("Write operation canceled. Aborting connection."));
}
}
}
@ -434,17 +439,11 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Http
private void CompleteAllWrites()
{
// Called inside _contextLock
var writesToComplete = _tasksPending.Count > 0;
var bytesLeftToBuffer = _maxBytesPreCompleted - _numBytesPreCompleted;
while (_tasksPending.Count > 0)
{
CompleteNextWrite(ref bytesLeftToBuffer);
}
if (writesToComplete)
{
_log.ConnectionError(_connectionId, new TaskCanceledException("Connetcion"));
}
}
// This is called on the libuv event loop