X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/5b970a6c9505527e146e73cb4756a64ecc1679cd..fb9730d1da1eab233e4e7ea01c1015cd70ba6cf7:/crunch_scripts/crunchutil/vwd.py diff --git a/crunch_scripts/crunchutil/vwd.py b/crunch_scripts/crunchutil/vwd.py index 5e6f1bec63..0ae1c46209 100644 --- a/crunch_scripts/crunchutil/vwd.py +++ b/crunch_scripts/crunchutil/vwd.py @@ -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)