Vinay Chella created CASSANDRA-15021:
----------------------------------------

             Summary: 
TestBootstrapAfterUpgrade.test_upgrade_with_range_tombstone_eoc_0 upgrade test 
is failing with TypeError
                 Key: CASSANDRA-15021
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-15021
             Project: Cassandra
          Issue Type: Bug
          Components: Test/dtest
            Reporter: Vinay Chella
            Assignee: Vinay Chella


While running upgrade tests for 3.11.4 candidate I noticed that 
{{upgrade_tests.storage_engine_upgrade_test.TestBootstrapAfterUpgrade.test_upgrade_with_range_tombstone_eoc_0}}
 is failing with TypeError.

Example run with error:
{code:java}
self = <upgrade_tests.storage_engine_upgrade_test.TestBootstrapAfterUpgrade 
object at 0x7f8db9908240>

    @since('3.0', max_version='3.99')
    def test_upgrade_with_range_tombstone_eoc_0(self):
        """
            Check sstable upgrading when the sstable contains a range tombstone 
with EOC=0.
    
            @jira_ticket CASSANDRA-12423
            """
        session = self._setup_cluster(cluster_options={'start_rpc': 'true'})
    
        session.execute("CREATE TABLE rt (id INT, c1 TEXT, c2 TEXT, v INT, 
PRIMARY KEY (id, c1, c2)) "
                        "with compact storage and compression = 
{'sstable_compression': ''};")
    
        range_delete = {
            i32(1): {
                'rt': [Mutation(deletion=Deletion(2470761440040513,
                                                  
predicate=SlicePredicate(slice_range=SliceRange(
>                                                     start=composite('a', 
> eoc='\x00'),
                                                      finish=composite('asd', 
eoc='\x00')))))]
            }
        }

upgrade_tests/storage_engine_upgrade_test.py:434: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

item1 = b'a', item2 = None, eoc = '\x00'

    def composite(item1, item2=None, eoc=b'\x00'):
        if isinstance(item1, str):
            item1 = utf8encode(item1)
        if isinstance(item2, str):
            item2 = utf8encode(item2)
    
>       packed = _i16(len(item1)) + item1 + eoc
E       TypeError: can't concat str to bytes

thrift_test.py:153: TypeError
{code}
This TypeError is from Python3 migration. Python 3's standard string type is 
Unicode based, and Python 3 adds a dedicated bytes type, but critically, no 
automatic coercion between bytes and unicode strings is provided - 
[context|https://www.python.org/dev/peps/pep-0404/#strings-and-bytes]

This change in python3 is leading to "TypeError: can't concat str to bytes" 
while appending bytes to string.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to