Antonio created CASSANDRA-15593: ----------------------------------- Summary: seems reading repair bug Key: CASSANDRA-15593 URL: https://issues.apache.org/jira/browse/CASSANDRA-15593 Project: Cassandra Issue Type: Bug Reporter: Antonio Assignee: Aleksey Yeschenko
cassandra version:2.1.15 i have one dc and 3nodes 1. create KEYSPACE test WITH replication = \{'class': 'NetworkTopologyStrategy', 'DC1':'3' } and durable_writes = 'true'; 2. create table test(a int , b int , c int , primary key(a)) with dclocal_read_repair_chance = 1.0; 3. insert one row into table test,instert into test(a, b, c) values (1, 1, 1); and remove sstable on two nodes and result below: node1:have correct row 1 1 1 node2:doesn't have rf node3:doesn't have rf 4. and i use local_one select one by one like this: node1 un,node2 dn,node3 dn:return 1 1 1 node1 dn,node2 un,node3 dn:return null node1 dn,node2 dn,node3 dn:return null this prove node1 have correct rf 5. and i let all node un,user local_quarum to select , select * from test where a = 1; but the read repair does't work every time(i test many times),that's the problem(same in 3.0.15) i hope if i set dclocal_read_repair_chance = 1.0,every time i read by local_quarum, if any rf digest does't match,read repair will work,and repair all nodes i.m not sure does's the problem happends in this code() wish for your reply,thanks public void response(MessageIn<TMessage> message) { resolver.preprocess(message); int n = waitingFor(message) ? recievedUpdater.incrementAndGet(this) : received; if (n >= blockfor && resolver.isDataPresent()) { ////this mean if return responses >= rf/2 +1 and a data response return,it start compare,does't all response condition.signalAll(); // kick off a background digest comparison if this is a result that (may have) arrived after // the original resolve that get() kicks off as soon as the condition is signaled if (blockfor < endpoints.size() && n == endpoints.size()) { TraceState traceState = Tracing.instance.get(); if (traceState != null) traceState.trace("Initiating read-repair"); StageManager.getStage(Stage.READ_REPAIR).execute(new AsyncRepairRunner(traceState)); } } } -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org