Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
2.2.10, 3.0.12, 3.11.0, 4.0-alpha1, 4.0
-
None
-
Normal
Description
Cassandra 2.2.7 introduces a regression over 2.2.6 breaking COPY ... TO STDOUT.
In pylib/cqlshlib/copyutil.py, in CopyTask._init, self.printmsg is conditionally defined to EITHER a module level function accepting arguments (msg, eol=, encoding=), OR a lambda accepting arguments only (, eol=).
Consequently, when the lambda is in use (which requires COPY ... TO STDOUT without --debug), any attempt to call CopyTask.printmsg with an encoding parameter causes an exception.
This occurs in ExportTask.run, thus rendering all COPY ... TO STDOUT without --debug broken.
The fix is to update the lambda's arguments to include encoding, or better, replace it with a module-level function defined next to printmsg, so that people realize the two argument lists must be kept in sync.
The regression was introduced in this commit:
commit 5de9de1f5832f2a0e92783e2f4412874423e6e15
Author: Tyler Hobbs <tylerlhobbs@gmail.com>
Date: Thu May 5 11:33:35 2016 -0500
cqlsh: Handle non-ascii chars in error messages
Patch by Tyler Hobbs; reviewed by Paulo Motta for CASSANDRA-11626
Attachments
Issue Links
- links to