Skip to content

Commit 9854eb2

Browse files
authored
Merge pull request #999: [io-cassandra] close session on AllNodesFailedException
2 parents 7a41198 + a20cec6 commit 9854eb2

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

direct/io-cassandra/src/main/java/cz/o2/proxima/direct/io/cassandra/CassandraDBAccessor.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,11 @@ CqlSession ensureSession() {
258258
return getSession(getUri());
259259
}
260260

261+
void closeSession() {
262+
final String clusterCachedKey = computeClusterKey(getUri().getAuthority(), username);
263+
Optional.ofNullable(SESSION_MAP.remove(clusterCachedKey)).ifPresent(CqlSession::close);
264+
}
265+
261266
@Override
262267
public Optional<AttributeWriterBase> getWriter(Context context) {
263268
return Optional.of(newWriter());

direct/io-cassandra/src/main/java/cz/o2/proxima/direct/io/cassandra/CassandraRandomReader.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package cz.o2.proxima.direct.io.cassandra;
1717

18+
import com.datastax.oss.driver.api.core.AllNodesFailedException;
1819
import com.datastax.oss.driver.api.core.CqlSession;
1920
import com.datastax.oss.driver.api.core.cql.BoundStatement;
2021
import com.datastax.oss.driver.api.core.cql.ResultSet;
@@ -54,6 +55,10 @@ public <T> Optional<KeyValue<T>> get(
5455
final ResultSet result;
5556
try {
5657
result = accessor.execute(statement);
58+
} catch (AllNodesFailedException ex) {
59+
log.warn("Got {}, closing session.", AllNodesFailedException.class.getSimpleName(), ex);
60+
accessor.closeSession();
61+
throw ex;
5762
} catch (Exception ex) {
5863
throw new RuntimeException("Unable to execute query.", ex);
5964
}

0 commit comments

Comments
 (0)