bowtie_build stalling
Creating a new subtraction results in a job that seems to run forever at `progress: 0.67` without updates or 
 any errors.
Similarly with build index jobs; the cause seems to be the `bowtie_build` step.
diff --git a/virtool/api/uploads.py b/virtool/api/uploads.py
index 186733540..e605e2cae 100644
--- a/virtool/api/uploads.py
+++ b/virtool/api/uploads.py
@@ -7,7 +7,7 @@ import virtool.http.routes
 import virtool.utils
 from virtool.api.utils import invalid_query, json_response, not_found
 
-CHUNK_SIZE = 32768
+CHUNK_SIZE = 131072
 
 FILE_TYPES = [
     "reference",
diff --git a/virtool/jobs/job.py b/virtool/jobs/job.py
index 66d838a0f..0f168d3bc 100644
--- a/virtool/jobs/job.py
+++ b/virtool/jobs/job.py
@@ -109,8 +109,8 @@ class Job(multiprocessing.Process):
 
         self._process = subprocess.Popen(command, stdout=stdout, stderr=subprocess.PIPE, env=env)
 
-        stdout_thread = None
         stdout_queue = None
+        stdout_thread = None
 
         if stdout_handler:
             stdout_queue = queue.Queue()
@@ -142,11 +142,13 @@ class Job(multiprocessing.Process):
                 err = stderr_queue.get()
                 _stderr_handler(err)
 
-            alive = (stdout_thread and stdout_thread.is_alive()) or stderr_thread.is_alive()
+            # Continue to next iteration if queues are not empty (or stdout queue was not created).
+            if not stderr_queue.empty() or (stdout_queue and not stdout_queue.empty()):
+                continue
 
-            queue_empty = (stdout_queue and stdout_queue.empty()) and stderr_queue.empty()
+            alive = (stdout_thread and stdout_thread.is_alive()) or stderr_thread.is_alive()
 
-            if not alive and queue_empty and self._process.poll() is not None:
+            if not alive and self._process.poll() is not None:
                 break
 
         if self._process.returncode != 0:
['virtool/jobs/job.py', 'virtool/api/uploads.py']