Mantis - Resin
Viewing Issue Advanced Details
6349 minor always 05-27-20 12:49 06-11-20 13:57
stbu  
ferg  
normal  
closed 4.0.64  
fixed  
none    
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} java.io.IOException: multipart form upload failed (possibly due to full disk).
   at com.caucho.server.http.MultipartFormParser.formError(MultipartFormParser.java:218)
   at com.caucho.server.http.MultipartFormParser.parsePostData(MultipartFormParser.java:145)
   at com.caucho.server.http.AbstractCauchoRequest.parsePostQueryImpl(AbstractCauchoRequest.java:474)
   at com.caucho.server.http.AbstractCauchoRequest.parseQueryImpl(AbstractCauchoRequest.java:307)
   at com.caucho.server.http.AbstractCauchoRequest.getParts(AbstractCauchoRequest.java:258)

Note: My upload-servlet is configured to allow much larger uploads and requests sizes:
    <multipart-config>
      <location>/</location>
      <max-file-size>10485760000B</max-file-size>
      <max-request-size>10485760000B</max-request-size>
    </multipart-config>

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.