diff --git a/CHANGES.txt b/CHANGES.txt index 1d01ffba7b..c618000d08 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -30,6 +30,7 @@ Merged from 3.11: * Update Jackson from 2.9.10 to 2.12.5 (CASSANDRA-16851) * Make assassinate more resilient to missing tokens (CASSANDRA-16847) Merged from 3.0: + * Fix abort when window resizing during cqlsh COPY (CASSANDRA-15230) * Fix slow keycache load which blocks startup for tables with many sstables (CASSANDRA-14898) * Fix rare NPE caused by batchlog replay / node decomission races (CASSANDRA-17049) * Allow users to view permissions of the roles they created (CASSANDRA-16902) diff --git a/pylib/cqlshlib/copyutil.py b/pylib/cqlshlib/copyutil.py index 3bcd26a983..3a20b42e9e 100644 --- a/pylib/cqlshlib/copyutil.py +++ b/pylib/cqlshlib/copyutil.py @@ -197,7 +197,15 @@ class ReceivingChannels(object): Implementation of the recv method for Linux, where select is available. Receive an object from all pipes that are ready for reading without blocking. """ - readable, _, _ = select(self._readers, [], [], timeout) + while True: + try: + readable, _, _ = select(self._readers, [], [], timeout) + except select.error as exc: + # Do not abort on window resize: + if exc[0] != errno.EINTR: + raise + else: + break for r in readable: with self._rlocks_by_readers[r]: try: