Quantcast
Channel: ASPNETWebStack Issue Tracker Rss Feed
Viewing all articles
Browse latest Browse all 7215

Commented Issue: StackOverflowException at large http message body processing by HttpContentMultipartExtensions [952]

$
0
0
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: dtretyakov - thanks a million for spotting the issue, reporting, and coming up with a solution. please take a look at the fix we ended up doing. Very similar in essence to your proposed solution, however we also have made some improvements to the design of the code, as well as added a test that have failed with StackOverflow on the previous code and succeed now.

Viewing all articles
Browse latest Browse all 7215

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>