Hello Andre,

Thanks a lot.

On Wed, Dec 28, 2016 at 12:51 PM, AndrĂ© Warnier (tomcat) <[email protected]>
wrote:

> Hi.
>
> On 28.12.2016 10:14, Yuval Schwartz wrote:
>
>> Tomcat: 8.0.22
>> Java: jdk1.8.0_05
>> Server: Amazon Linux
>>
>> Hello,
>>
>> I recently saw an IOFileUploadException on my server:
>>
>> org.apache.tomcat.util.http.fileupload.FileUploadBase$IOFile
>> UploadException:
>> Processing of multipart/form-data request failed. Timeout attempting to
>> read dat
>> a from the socket
>>
>> And later, I get this exception:
>> org.apache.tomcat.util.http.fileupload.MultipartStream$Malfo
>> rmedStreamException:
>> Stream ended unexpectedly
>>
>> I allow images to be uploaded in a multipart form.
>>
>> I don't allow uploads greater than 1 MB.
>>
>> Presently, my connector element is set up with only a connectionTimeout
>> attribute (set at 20 seconds) and without a connectionUploadTimeout
>> attribute.
>>
>> I was wondering if it's necessary to set up a connectionUploadTimeout time
>> greater than 20 seconds for such small file uploads? Or is it something
>> else that caused this timeout?
>>
>>
> 1) specifically : such a timeout could occur "naturally" if the connection
> of the client to the server is interrupted, for whatever reason. You did
> not mention what the client is seeing in that case, you only described what
> you see in the log from the server side.
> (That's ok, you probably don't know anyway).
>

I don't know at this time. But I will try to find out.


> Maybe the client (the person at the uploading form side) decided to
> interrupt the upload, by navigating to some other page. If there are other
> "devices" in-between (routers, firewalls, proxies,..) (as there most
> probably are, nowadays) they may maintain their connection to the server
> for a while, even if the original client has gone.  Tomcat would thus not
> see the broken connection immediately, it would still be waiting for more
> data to arrive on the connection, until this timeout kicks in.
> Increasing the timeout in this case, would just mean that you are blocking
> a tomcat resource for a while longer, for no real good reason since the
> client is already gone.
>
> In short, my opinion : if you only see this once in a while in your logs,
> I would not worry about it. It would be different if your "clients" started
> complaining about having their uploads interrupted regularly. But then you
> could ask them for exactly what they are seeing in the browser as an error,
> and at exactly what time; and then you could have another look at the log
> for that timestamp, to see if it is the same case as above.
>

Good point.


>
>
> 2) generally : I must say that it is not very clear in the on-line
> documentation, at
> https://tomcat.apache.org/tomcat-8.5-doc/config/http.html#
> Standard_Implementation
> -> Standard Implementation -> connectionUploadTimeout
> (and also in the similar 7.0 docs)
> what exactly this timeout applies to. Is it
> - the timeout before the client actually *starts* sending *any* request
> body data for this upload ?
> - or a timeout which applies at any time tomcat is trying to read *some*
> (a chunk of) data for this part of the multipart/form-data post, after
> already reading some data ?
> Similarly for the "disableUploadTimeout" attribute.
> I believe that the confusion may have to do with the usage of the term
> "data upload" there.  It seems that, maybe, using "request body" may have
> been more appropriate throughout.
> (Because in a way, any HTTP POST is a "data upload", even when it is not a
> multipart/form-data and/or not a file).
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to