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

Benedict commented on CASSANDRA-14762:
--------------------------------------

Thanks for the review.

bq. Is this just a clarification?

Yes; it is a no-effect change.

bq. It seems to me we use read repair to assemble the read after digest 
mismatch between full replicas and that is why we it might send messages to 
transient replicas? That is what it seems like to me.
Even though we don't send repair mutations after read-repair from transient 
replicas, on digest mismatch we still perform reads to other replicas - 
including those that we may not have contacted initially, which might include 
new transient nodes.

bq. A minor out of scope improvement would be to use the existing response and 
not repeat the read?
Agreed, see CASSANDRA-14733.  I considered doing that optimisation for this 
ticket, but given the above fact that we might issue new transient reads it 
seemed to unnecessarily complicate fixing this bug.

bq. It seems to me also that we would read from transients as part of short 
read protection (they are just another member of the group), and they aren't 
special so we should issue them the query.

Is this simply you reasoning out the rationale for issuing the requests, or 
have you spotted an issue with the patch that means we are not doing so?

It does look to me like we should be perhaps switching to {{acceptsTransient}} 
for the local query also, and validating transient status in 
{{LocalReadRunnable}} - but, for now, we don't do this.  Perhaps we could fix 
this also in this patch, or otherwise file a follow up.

> Transient node receives full data requests in dtests
> ----------------------------------------------------
>
>                 Key: CASSANDRA-14762
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14762
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Ariel Weisberg
>            Assignee: Benedict
>            Priority: Major
>             Fix For: 4.0
>
>
> I saw this running them on my laptop with rapid write protection disabled. 
> Attached is a patch for disabling rapid write protection in the transient 
> dtests.
> {noformat}
> .Exception in thread Thread-19:
> Traceback (most recent call last):
>   File 
> "/usr/local/Cellar/python/3.6.4_4/Frameworks/Python.framework/Versions/3.6/lib/python3.6/threading.py",
>  line 916, in _bootstrap_inner
>     self.run()
>   File 
> "/Users/aweisberg/repos/cassandra-dtest/venv/src/ccm/ccmlib/cluster.py", line 
> 180, in run
>     self.scan_and_report()
>   File 
> "/Users/aweisberg/repos/cassandra-dtest/venv/src/ccm/ccmlib/cluster.py", line 
> 173, in scan_and_report
>     on_error_call(errordata)
>   File "/Users/aweisberg/repos/cassandra-dtest/dtest_setup.py", line 137, in 
> _log_error_handler
>     pytest.fail("Error details: \n{message}".format(message=message))
>   File 
> "/Users/aweisberg/repos/cassandra-dtest/venv/lib/python3.6/site-packages/_pytest/outcomes.py",
>  line 96, in fail
>     raise Failed(msg=msg, pytrace=pytrace)
> Failed: Error details:
> Errors seen in logs for: node3
> node3: ERROR [ReadStage-1] 2018-09-18 12:28:48,344 
> AbstractLocalAwareExecutorService.java:167 - Uncaught exception on thread 
> Thread[ReadStage-1,5,main]
> org.apache.cassandra.exceptions.InvalidRequestException: Attempted to serve 
> transient data request from full node in 
> org.apache.cassandra.db.ReadCommandVerbHandler@3c55e0ff
>       at 
> org.apache.cassandra.db.ReadCommandVerbHandler.validateTransientStatus(ReadCommandVerbHandler.java:104)
>       at 
> org.apache.cassandra.db.ReadCommandVerbHandler.doVerb(ReadCommandVerbHandler.java:53)
>       at 
> org.apache.cassandra.net.MessageDeliveryTask.process(MessageDeliveryTask.java:92)
>       at 
> org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:54)
>       at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>       at 
> org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162)
>       at 
> org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$LocalSessionFutureTask.run(AbstractLocalAwareExecutorService.java:134)
>       at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:110)
>       at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>       at java.lang.Thread.run(Thread.java:748)
> {noformat}



--
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