[ https://issues.apache.org/jira/browse/CASSANDRA-8568?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14363960#comment-14363960 ]
Benedict commented on CASSANDRA-8568: ------------------------------------- I've force pushed an update to my repository that fixes a couple of minor bugs, and introduces a FaultInjectionTestRunner based on ByteMan. It is a work in progress, with the goal state being complete coverage of all possible interleavings of different pathways. Right now it is testing a majority of simple single failures that can occur during an online SSTableRewriter action. I intend to extend this to the complete set of single failures in the normal path (if a failure point can be hit multiple times, I intend also ensure each possible time is tried, to test all intermediate states), and also failures during recovery. My hope is we can roll the new FaultInjectionTestRunner out into a number of other places in the codebase as well. > Impose new API on data tracker modifications that makes correct usage obvious > and imposes safety > ------------------------------------------------------------------------------------------------ > > Key: CASSANDRA-8568 > URL: https://issues.apache.org/jira/browse/CASSANDRA-8568 > Project: Cassandra > Issue Type: Bug > Reporter: Benedict > Assignee: Benedict > > DataTracker has become a bit of a quagmire, and not at all obvious to > interface with, with many subtly different modifiers. I suspect it is still > subtly broken, especially around error recovery. > I propose piggy-backing on CASSANDRA-7705 to offer RAII (and GC-enforced, for > those situations where a try/finally block isn't possible) objects that have > transactional behaviour, and with few simple declarative methods that can be > composed simply to provide all of the functionality we currently need. > See CASSANDRA-8399 for context -- This message was sent by Atlassian JIRA (v6.3.4#6332)