From 8462a03ed008a535201adc052e62c89ce7333ae5 Mon Sep 17 00:00:00 2001 From: Daira Hopwood Date: Mon, 31 Aug 2015 17:54:08 +0100 Subject: [PATCH] Fix path handling in Downloader._process. Signed-off-by: Daira Hopwood --- src/allmydata/frontends/magic_folder.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/allmydata/frontends/magic_folder.py b/src/allmydata/frontends/magic_folder.py index 0476373d..16c5aa40 100644 --- a/src/allmydata/frontends/magic_folder.py +++ b/src/allmydata/frontends/magic_folder.py @@ -519,17 +519,21 @@ class Downloader(QueueMixin): (name, file_node, metadata) = item d = file_node.download_best_version() def succeeded(res): - def do_update_db(result): + d2 = defer.succeed(res) + absname = abspath_expanduser_unicode(name, base=self._local_path_u) + d2.addCallback(lambda result: self._write_downloaded_file(absname, result, is_conflict=False)) + def do_update_db(full_path): filecap = file_node.get_uri() - s = os.stat(name) + try: + s = os.stat(full_path) + except: + raise(Exception("wtf downloaded file %s disappeared" % full_path)) size = s[stat.ST_SIZE] ctime = s[stat.ST_CTIME] mtime = s[stat.ST_MTIME] self._db.did_upload_file(filecap, name, metadata['version'], mtime, ctime, size) - d2 = defer.succeed(res) - absname = abspath_expanduser_unicode(name) - d2.addCallback(lambda result: self._write_downloaded_file(absname, result)) d2.addCallback(do_update_db) + # XXX handle failure here with addErrback... self._count('objects_downloaded') return d2 def failed(f): -- 2.45.2