Azure / Azure/azure-functions-java-worker
OutOfMemory exception when passing file larger than 4MB
- Dominant language
- Java
- Stars
- 103
- Forks
- 74
- Avg merge
- 4d 8h
- Merged PRs (30d)
- 2
Description
I have an HttpTrigger function that receives multipart/form-data content. When a file greater than 4MB is passed to the function it errors out with `502 - Web server received an invalid response while acting as a gateway or proxy server`. In the Azure logs I see `Exception of type 'System.OutOfMemoryException' was thrown.` When I run the function locally I don't have any problems processing a larger file. I have only see the error occur when I run the deployed function. I found a closed issue that seems related https://github.com/Azure/azure-functions-java-worker/issues/70
#### Investigative information
- Timestamp: 2018-12-14T16:19:00.832
- Invocation ID: Id=99214fd3-9aff-4238-9dba-f50bc77b6128
- Region: West US
- Function Runtime Version: 2.0.12210.0
- azure-functions-java-library version: 1.2.0
- azure-functions-maven-plugin version: 1.2.0
#### Repro steps
1. Run the function with a file that is larger than 4 MB.
#### Expected behavior
Function does not timeout on larger files.
#### Actual behavior
Deployed function is not executed and error out with an OutOfMemory exception and returns `502 - Web server received an invalid response while acting as a gateway or proxy server.`
#### Known workarounds
None.
#### Related information
Here is a snippet of the function having the issue:
Source
```java
@FunctionName("BitSplit")
public HttpResponseMessage bitSplit(
@HttpTrigger(name = "content", methods = {HttpMethod.POST}, authLevel = AuthorizationLevel.FUNCTION, dataType = "binary") HttpRequestMessage> request,
final ExecutionContext context
) {
try {
RequestContextWrapper requestContext = new RequestContextWrapper(request);
MultipartProcessor multipartProcessor = new MultipartProcessor();
List formItems = multipartProcessor.readFormData(requestContext);
}
```
Contributor guide
Assessment
This issue has not been assessed yet.