> On 3 Oct 2020, at 15:14, Christopher Schultz <ch...@christopherschultz.net> 
> wrote:
> 
> Mauro,
> 
> On 10/3/20 08:47, Mauro Tridici wrote:
>> Dear Users,
>> 
>> I’m struggling with the problem mentioned in this mail subject.
>> When I try to download a 5GB sized file using two different tomcat web
>> applications on two different virtual machines, I noticed that the
>> browser download window shows a wrong file size (please take a look to
>> the attached picture).
>> Download starts regularly but it never ends.
>> 
>> I tried to download different files using different web browsers, but
>> nothing changed.
>> It seems that this problem is not related to the web applications (as I
>> said, I’m testing two applications) and it is not related to a specific
>> tomcat version.
>> 
>> I’m a “tomcat newbie”, could you please help me to understand the cause
>> of this issue?
>> You can find below some additional information about virtual machines,
>> os and tomcat.
>> 
>> *1) virtual machine “serverA"*
>> 
>> OS: CentOS Linux release 7.8.2003
>> 
>> TOMCAT: 
>> Server version: Apache Tomcat/7.0.76
>> Server built:   Mar 17 2020 23:48:55 UTC
>> Server number:  7.0.76.0
>> OS Name:        Linux
>> OS Version:     3.10.0-1127.8.2.el7.x86_64
>> Architecture:   amd64
>> JVM Version:    1.8.0_252-b09
>> JVM Vendor:     Oracle Corporation
>> 
>> *2) virtual machine “serverB”*
>> 
>> OS: CentOS Linux release 7.8.2003
>> 
>> TOMCAT:
>> Server version: Apache Tomcat/8.5.56
>> Server built:   Jun 3 2020 20:18:30 UTC
>> Server number:  8.5.56.0
>> OS Name:        Linux
>> OS Version:     3.10.0-1127.8.2.el7.x86_64
>> Architecture:   amd64
>> JVM Version:    1.8.0_252-b09
>> JVM Vendor:     Oracle Corporation
>> 
>> 
>> Thank you in advance,
>> Mauro
> 
> Can you observe the HTTP response headers sent by the server along with
> the file?
> 
> Also, how are you sending the file(s) from the application to the
> client? Are you using sendfile? Are you using the DefaultServlet? Or do
> you have your own code which reads the file and writes it to the client?
> 
> Does the download always stop at the same point (byte count), or it is
> different each time?
> 
> My guess is:
> 
> 1. The code is in your application (or at least, not using Tomcat's code
> at all)
> 
> 2. The code uses "int" variable to track the file size / set
> Content-Length response header
> 
> 3. The file size is 5.4GiB
> 
> 4. 5.4 GiB will overflow a 32-bit int by 3.4GiB resulting in a value of
> +1.4GiB final value
> 
> 5. This value is being send to the client in the Content-Length header
> 
> 6. The client is terminating the download after 1.4GiB (respecting the
> Content-Length header)
> 
> -chris
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org


HI Christopher,

thank you very much for your answer.

You can find below the HTTP response headers detected during the download fo 
file named disk-0.vmdk

172.16.1.8 - - [03/Oct/2020:15:25:53 +0200] "GET 
/irods-cloud-backend/virtualCollection/root HTTP/1.1" 401 951
172.16.1.8 - - [03/Oct/2020:15:25:53 +0200] "GET 
/irods-cloud-backend/collection/root?offset=0&path=%2Fidas%2Fhome%2Fsysm02 
HTTP/1.1" 401 951
172.16.1.8 - - [03/Oct/2020:15:25:54 +0200] "GET 
/irods-cloud-backend/initialConf HTTP/1.1" 200 138
172.16.1.8 - - [03/Oct/2020:15:26:00 +0200] "OPTIONS 
/irods-cloud-backend/login/ HTTP/1.1" 200 -
172.16.1.8 - - [03/Oct/2020:15:26:00 +0200] "POST /irods-cloud-backend/login/ 
HTTP/1.1" 200 102
172.16.1.8 - - [03/Oct/2020:15:26:01 +0200] "GET 
/irods-cloud-backend/collection/root?offset=0&path=%2Fidas%2Fhome%2Fsysm02 
HTTP/1.1" 200 8117
172.16.1.8 - - [03/Oct/2020:15:26:01 +0200] "GET 
/irods-cloud-backend/virtualCollection/root HTTP/1.1" 200 480
172.16.1.8 - - [03/Oct/2020:15:26:01 +0200] "GET 
/irods-cloud-backend/fileCreatorTemplate HTTP/1.1" 200 787
172.16.1.8 - - [03/Oct/2020:15:26:02 +0200] "GET 
/irods-cloud-backend/virtualCollection HTTP/1.1" 200 2304
172.16.1.8 - - [03/Oct/2020:15:40:29 +0200] "GET 
/irods-cloud-backend/download?path=/idas/home/sysm02/disk-0.vmdk HTTP/1.1" 200 
1532646912

Unfortunately, I can't give you more details about how the sfiles are sent to 
the client because the 2 different web applications have not been created by me 
(this is one of web applications I’m using 
https://github.com/irods-contrib/irods-cloud-browser 
<https://github.com/irods-contrib/irods-cloud-browser>)
I’m sorry, but I’m not a developer.

The file download is always completed and it stops at the same point (1.4GB)



In your opinion, if the problem is related to the 32-bit overflow, is there 
something that I can do in order to solve this issue.
Since I can’t modify any change to these two applications, I would like to know 
if I can do something on the other sides.

Many thanks again for your patience.
Mauro








Reply via email to