11469: Add test for changed tmp mounting behavior.
[arvados.git] / crunch_scripts / crunchutil / vwd.py
index 5e6f1bec633c01e3124013ebd9a251d1b667a985..0ae1c4620995014f61d17379bca756d2415f6e4c 100644 (file)
@@ -56,7 +56,7 @@ def checkin(target_dir):
 
     logger = logging.getLogger("arvados")
 
-    caught_error = False
+    last_error = None
     for root, dirs, files in os.walk(target_dir):
         for f in files:
             try:
@@ -73,6 +73,12 @@ def checkin(target_dir):
                     if pdh is not None:
                         # 2. load collection
                         if pdh not in collections:
+                            # 2.1 make sure it is flushed (see #5787 note 11)
+                            fd = os.open(real[0], os.O_RDONLY)
+                            os.fsync(fd)
+                            os.close(fd)
+
+                            # 2.2 get collection from API server
                             collections[pdh] = arvados.collection.CollectionReader(pdh,
                                                                                    api_client=outputcollection._my_api(),
                                                                                    keep_client=outputcollection._my_keep(),
@@ -92,6 +98,6 @@ def checkin(target_dir):
                                 dat = reader.read(64*1024)
             except (IOError, OSError) as e:
                 logger.error(e)
-                caught_error = True
+                last_error = e
 
-    return (outputcollection, caught_error)
+    return (outputcollection, last_error)