You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by st...@apache.org on 2016/07/27 04:28:50 UTC

cassandra git commit: COPY FROM should raise error for non-existing input files

Repository: cassandra
Updated Branches:
  refs/heads/trunk 6ca39ea42 -> a59689ad8


COPY FROM should raise error for non-existing input files

patch by Hiroyuki Nishi; reviewed by Stefania Alborghetti for CASSANDRA-12174


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a59689ad
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a59689ad
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a59689ad

Branch: refs/heads/trunk
Commit: a59689ad8101440a92c0d015bac43280460f3382
Parents: 6ca39ea
Author: Hiroyuki Nishi <hn...@yahoo-corp.jp>
Authored: Tue Jul 26 09:50:15 2016 +0800
Committer: Stefania Alborghetti <st...@datastax.com>
Committed: Wed Jul 27 12:27:44 2016 +0800

----------------------------------------------------------------------
 CHANGES.txt                |  1 +
 pylib/cqlshlib/copyutil.py | 15 +++++++++++----
 2 files changed, 12 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a59689ad/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 95fbf76..52f8ccf 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.10
+ * COPY FROM should raise error for non-existing input files (CASSANDRA-12174)
  * Faster write path (CASSANDRA-12269)
  * Option to leave omitted columns in INSERT JSON unset (CASSANDRA-11424)
  * Support json/yaml output in nodetool tpstats (CASSANDRA-12035)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a59689ad/pylib/cqlshlib/copyutil.py
----------------------------------------------------------------------
diff --git a/pylib/cqlshlib/copyutil.py b/pylib/cqlshlib/copyutil.py
index d0524fe..94e8fe6 100644
--- a/pylib/cqlshlib/copyutil.py
+++ b/pylib/cqlshlib/copyutil.py
@@ -848,15 +848,18 @@ class FilesReader(object):
             try:
                 return open(fname, 'rb')
             except IOError, e:
-                printdebugmsg("Can't open %r for reading: %s" % (fname, e))
-                return None
+                raise IOError("Can't open %r for reading: %s" % (fname, e))
 
         for path in paths.split(','):
             path = path.strip()
             if os.path.isfile(path):
                 yield make_source(path)
             else:
-                for f in glob.glob(path):
+                result = glob.glob(path)
+                if len(result) == 0:
+                    raise IOError("Can't open %r for reading: no matching file found" % (path,))
+
+                for f in result:
                     yield (make_source(f))
 
     def start(self):
@@ -1269,7 +1272,11 @@ class FeedingProcess(mp.Process):
         self.on_fork()
 
         reader = self.reader
-        reader.start()
+        try:
+            reader.start()
+        except IOError, exc:
+            self.outmsg.send(ImportTaskError(exc.__class__.__name__, exc.message))
+
         channels = self.worker_channels
         max_pending_chunks = self.max_pending_chunks
         sent = 0