Mantis - Resin
Viewing Issue Advanced Details
6349 minor always 05-27-20 12:49 06-11-20 13:57
closed 4.0.64  
none 4.0.65  
0006349: MultipartFormParser: Unable to upload file > 2147483647 Bytes
In com.caucho.server.http.MultipartFormParser line 107 "totalLength" is of type "int".
Later on this variable is increased in the while loop when writing the TempFile in WEB-INF/work/form while the upload is ongoing.

In line 123 the variable "fileLength" of type "long" is assigned tempFile.getLength();

Finally the else if condition (fileLength != totalLength) is true, because if the uploaded file size is larger than Integer.MAX_VALUE then this exception is thrown but 'possibly due to full disk' is definitely not the case.

[20-05-27 21:29:56.093] {resin-port-8080-39} /test/file-upload: multipart form upload failed (possibly due to full disk).
[20-05-27 21:29:57.206] {resin-port-8080-39} multipart form upload failed (possibly due to full disk).
   at com.caucho.server.http.MultipartFormParser.formError(
   at com.caucho.server.http.MultipartFormParser.parsePostData(
   at com.caucho.server.http.AbstractCauchoRequest.parsePostQueryImpl(
   at com.caucho.server.http.AbstractCauchoRequest.parseQueryImpl(
   at com.caucho.server.http.AbstractCauchoRequest.getParts(

Note: My upload-servlet is configured to allow much larger uploads and requests sizes:

To reproduce the issue I have created two files:

# Integer.MAX_VALUE
fallocate -l 2147483647 2147483647.txt

# Exceeding Integer.MAX_VALUE
fallocate -l 2147483648 2147483648.txt

I was able to upload 2147483647.txt, but it fails at 2147483648.txt

There are no notes attached to this issue.