]> git.p6c8.net - jirafeau.git/commitdiff
[BUGFIX] retry transfering with lower size for any HTTP error code
authorJerome Jutteau <jerome@jutteau.fr>
Tue, 5 Jul 2022 06:23:01 +0000 (08:23 +0200)
committerJerome Jutteau <jerome@jutteau.fr>
Tue, 5 Jul 2022 06:25:32 +0000 (08:25 +0200)
When a timeout is too low compared to sent size, server will return a 500 error.
Jirafeau retry to send again but do not try to reduce chunk size.

This patch will make Jiarfeau split in half it's sent size each an error occurs.

ref #273

Signed-off-by: Jerome Jutteau <jerome@jutteau.fr>
lib/functions.js.php

index 1114dfd6188d2444e295be047c33c4ac5559772d..f5f7d5444ae08fa8e9a0e7a2f6c4f2ee08a4941c 100644 (file)
@@ -529,11 +529,11 @@ function async_upload_push (code)
             }
             else
             {
             }
             else
             {
-                if (req.status == 413) // Request Entity Too Large
-                {
-                    // lower async_global_max_size and retry
-                    async_global_max_size = Math.max(1, parseInt (async_global_max_size * 0.8));
-                }
+                // lower async_global_max_size and retry
+                // This can occurs in several cases:
+                // - Request Entity Too Large (413) due to server bad configuration relative to PHP configuration
+                // - Server Error (500) which can happen when PHP's `max_execution_time` is too low comparared to sent size
+                async_global_max_size = Math.max(1, parseInt (async_global_max_size * 0.5));
                 async_upload_push (async_global_last_code);
                 return;
             }
                 async_upload_push (async_global_last_code);
                 return;
             }

patrick-canterino.de