From 1a2829d281a9dac0c65a8127fdc7ddb594413c80 Mon Sep 17 00:00:00 2001 From: epriestley Date: Wed, 18 Mar 2015 19:06:27 -0700 Subject: [PATCH] Fix chunk upload fallback behavior Summary: Ref T7594. Currently, if a chunk upload fails, we incorrectly swallow the failure and fall back to single-file upload, which will often fail by hitting size limits. This also silences the original error. Instead, do chunk uploads outside the block so that any exceptions escape, and we don't try to fall back to single-file upload. Mostly just trying to get more info about what's going wrong on @joshuaspence's install. Test Plan: Faked an exception in chunk upload, ran `arc upload` on a big file, saw the exception displayed on the console. Reviewers: btrahan Reviewed By: btrahan Subscribers: epriestley, joshuaspence Maniphest Tasks: T7594 Differential Revision: https://secure.phabricator.com/D12111 --- src/workflow/ArcanistUploadWorkflow.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/workflow/ArcanistUploadWorkflow.php b/src/workflow/ArcanistUploadWorkflow.php index 12548e2b..7094cdce 100644 --- a/src/workflow/ArcanistUploadWorkflow.php +++ b/src/workflow/ArcanistUploadWorkflow.php @@ -66,6 +66,8 @@ EOTEXT } $length = filesize($path); + $do_chunk_upload = false; + $phid = null; try { $result = $conduit->callMethodSynchronous( @@ -90,7 +92,7 @@ EOTEXT // file data. } else { if ($phid) { - $this->uploadChunks($phid, $path); + $do_chunk_upload = true; } else { // This is a small file that doesn't need to be uploaded in // chunks, so continue normally. @@ -101,6 +103,10 @@ EOTEXT pht('Unable to use allocate method, trying older upload method.')); } + if ($do_chunk_upload) { + $this->uploadChunks($phid, $path); + } + if (!$phid) { try { $data = Filesystem::readFile($path);