[ https://issues.apache.org/jira/browse/CASSANDRA-6415?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jonathan Ellis updated CASSANDRA-6415: -------------------------------------- Fix Version/s: 2.0.4 Yes. > Snapshot repair blocks for ever if something happens to the "I made my > snapshot" response > ----------------------------------------------------------------------------------------- > > Key: CASSANDRA-6415 > URL: https://issues.apache.org/jira/browse/CASSANDRA-6415 > Project: Cassandra > Issue Type: Bug > Reporter: Jeremiah Jordan > Assignee: Yuki Morishita > Labels: repair > Fix For: 1.2.13, 2.0.4 > > Attachments: 6415-1.2.txt > > > The "snapshotLatch.await();" can be waiting for ever and block all repair > operations indefinitely if something happens that another node doesn't > respond. > {noformat} > public void makeSnapshots(Collection<InetAddress> endpoints) > { > try > { > snapshotLatch = new CountDownLatch(endpoints.size()); > IAsyncCallback callback = new IAsyncCallback() > { > public boolean isLatencyForSnitch() > { > return false; > } > public void response(MessageIn msg) > { > RepairJob.this.snapshotLatch.countDown(); > } > }; > for (InetAddress endpoint : endpoints) > MessagingService.instance().sendRR(new > SnapshotCommand(tablename, cfname, sessionName, false).createMessage(), > endpoint, callback); > snapshotLatch.await(); > snapshotLatch = null; > } > catch (InterruptedException e) > { > throw new RuntimeException(e); > } > } > {noformat} -- This message was sent by Atlassian JIRA (v6.1.5#6160)