clarencen/lshift — Issue #162: Failed scans aren't cancelling internally
Author: clarencen
Created: 2011-11-14 22:41:55+00:00
State: open

When one leg of a scan fails, the scan isn't being marked as failed. This then means that the other leg will continue on, and usually doesn't stop until it either completes or it attempts to write. If it does attempt to write, then it will receive a timeout from the VersionCorrelationWriterProxy, since the main receive loop logs and error and fails to respond if it gets a VersionCorrelationWriterCommand.

To make scans fail more cleanly, we should:

* Cancel the current feedback handle when either of the legs fails;
* Change the VersionCorrelationWriterProxy response message to be either Correlation or Cancelled, and generate a ScanCancelledException if the Cancelled message is returned.