[ 
https://issues.apache.org/jira/browse/CASSANDRA-17456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17509191#comment-17509191
 ] 

Benedict Elliott Smith commented on CASSANDRA-17456:
----------------------------------------------------

FWIW, I think this may be a real bug that has been present for years. It's not 
clear what our semantics are with respect to max mutation size - seemingly we 
should reject them entirely at the client level, but for some reason we do not. 
We do not seem to declare our behaviour clearly anywhere. However, historically 
we could not durably record them in the commit log, so we should presumably not 
be recording them in the hints file either - but we are, and have been for a 
long time.

Probably what we should really do is to default to a much larger max mutation 
size, reject client operations that exceed it entirely, and have the commit log 
support any size of mutation (by just allocating a dedicated segment). Perhaps 
we already do, in fact, and that explains this divergence? I'm not sure, I'm 
out of date.

> Test Failures: 
> write_failures_test.TestMultiDCWriteFailures.test_oversized_mutation
> -----------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-17456
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-17456
>             Project: Cassandra
>          Issue Type: Bug
>          Components: CI
>            Reporter: Ekaterina Dimitrova
>            Priority: Normal
>             Fix For: 4.x
>
>
> https://ci-cassandra.apache.org/job/Cassandra-trunk/1002/testReport/dtest-offheap.write_failures_test/TestMultiDCWriteFailures/test_oversized_mutation/
> {code:java}
> Error Message
> AssertionError: assert 0 == 8  +  where 8 = <bound method 
> JolokiaAgent.read_attribute of <tools.jmxutils.JolokiaAgent object at 
> 0x7f1fca78dac0>>('org.apache.cassandra.metrics:type=Storage,name=TotalHints', 
> 'Count')  +    where <bound method JolokiaAgent.read_attribute of 
> <tools.jmxutils.JolokiaAgent object at 0x7f1fca78dac0>> = 
> <tools.jmxutils.JolokiaAgent object at 0x7f1fca78dac0>.read_attribute  +    
> and   'org.apache.cassandra.metrics:type=Storage,name=TotalHints' = 
> make_mbean('metrics', type='Storage', name='TotalHints')
> Stacktrace
> self = <write_failures_test.TestMultiDCWriteFailures object at 0x7f1fca9dac40>
>     def test_oversized_mutation(self):
>         """
>             Test that multi-DC write failures return operation failed rather 
> than a timeout.
>             @jira_ticket CASSANDRA-16334.
>             """
>     
>         cluster = self.cluster
>         cluster.populate([2, 2])
>         cluster.set_configuration_options(values={'max_mutation_size_in_kb': 
> 128})
>         cluster.start()
>     
>         node1 = cluster.nodelist()[0]
>         session = self.patient_exclusive_cql_connection(node1)
>     
>         session.execute("CREATE KEYSPACE k WITH replication = {'class': 
> 'NetworkTopologyStrategy', 'dc1': 2, 'dc2': 2}")
>         session.execute("CREATE TABLE k.t (key int PRIMARY KEY, val blob)")
>     
>         payload = '1' * 1024 * 256
>         query = "INSERT INTO k.t (key, val) VALUES (1, 
> textAsBlob('{}'))".format(payload)
>     
>         assert_write_failure(session, query, ConsistencyLevel.LOCAL_ONE)
>         assert_write_failure(session, query, ConsistencyLevel.ONE)
>     
>         # verify that no hints are created
>         with JolokiaAgent(node1) as jmx:
> >           assert 0 == jmx.read_attribute(make_mbean('metrics', 
> > type='Storage', name='TotalHints'), 'Count')
> E           AssertionError: assert 0 == 8
> E            +  where 8 = <bound method JolokiaAgent.read_attribute of 
> <tools.jmxutils.JolokiaAgent object at 
> 0x7f1fca78dac0>>('org.apache.cassandra.metrics:type=Storage,name=TotalHints', 
> 'Count')
> E            +    where <bound method JolokiaAgent.read_attribute of 
> <tools.jmxutils.JolokiaAgent object at 0x7f1fca78dac0>> = 
> <tools.jmxutils.JolokiaAgent object at 0x7f1fca78dac0>.read_attribute
> E            +    and   
> 'org.apache.cassandra.metrics:type=Storage,name=TotalHints' = 
> make_mbean('metrics', type='Storage', name='TotalHints')
> write_failures_test.py:277: AssertionError
> REST API
> CloudBees CI Client Controller 2.319.3.4-rolling
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to