We're using nightly nuget packages 2013-03-30. When we're trying to upload large files (for instance > 2Mb) and process it by using HttpContentMultipartExtensions we've got unhandled exception which crashes AppDomain:
"An unhandled exception of type 'System.StackOverflowException' occurred in Unknown Module."
Code sample is straightforward and looks like http://www.asp.net/web-api/overview/working-with-http/sending-html-form-data,-part-2
After research we've found that in MoveToNextSegmentAsync method exists recursive call:
```
private static async Task<bool> MoveToNextSegmentAsync(MultipartAsyncContext context)
{
...
if (!await MoveToNextSegmentAsync(context))
{
await MoveToNextPartAsync(context);
}
...
}
```
It was commited by phenning on Feb 26, 2013. Commit 83169ad25a4c:
http://aspnetwebstack.codeplex.com/SourceControl/changeset/83169ad25a4cbdd99b5f80009a5ad75e9c69de3e#src/System.Net.Http.Formatting/HttpContentMultipartExtensions.cs
When large http body is processing this code fragment creates a really huge call stack which causes StackOverflowException and AppDomain crash.
Comments: ok, thanks. We will have a look.
"An unhandled exception of type 'System.StackOverflowException' occurred in Unknown Module."
Code sample is straightforward and looks like http://www.asp.net/web-api/overview/working-with-http/sending-html-form-data,-part-2
After research we've found that in MoveToNextSegmentAsync method exists recursive call:
```
private static async Task<bool> MoveToNextSegmentAsync(MultipartAsyncContext context)
{
...
if (!await MoveToNextSegmentAsync(context))
{
await MoveToNextPartAsync(context);
}
...
}
```
It was commited by phenning on Feb 26, 2013. Commit 83169ad25a4c:
http://aspnetwebstack.codeplex.com/SourceControl/changeset/83169ad25a4cbdd99b5f80009a5ad75e9c69de3e#src/System.Net.Http.Formatting/HttpContentMultipartExtensions.cs
When large http body is processing this code fragment creates a really huge call stack which causes StackOverflowException and AppDomain crash.
Comments: ok, thanks. We will have a look.