public async Task InvokeQuorumLossAsync( InvokeQuorumLossDescription invokeQuorumLossDescription, TimeSpan timeout, CancellationToken cancellationToken) { this.ThrowIfNotReady(); TestabilityTrace.TraceSource.WriteInfo( TraceType, "{0} - Processing {1} PartitionSelector: {2}, QuorumLossMode: {3}, QuorumLossDurationDuration: {4}", invokeQuorumLossDescription.OperationId, ActionType.InvokeQuorumLoss, invokeQuorumLossDescription.PartitionSelector, invokeQuorumLossDescription.QuorumLossMode, invokeQuorumLossDescription.QuorumLossDuration); try { await this.MessageProcessor.ProcessQuorumLossCommandAsync( invokeQuorumLossDescription.OperationId, invokeQuorumLossDescription.PartitionSelector, invokeQuorumLossDescription.QuorumLossMode, invokeQuorumLossDescription.QuorumLossDuration, timeout, null).ConfigureAwait(false); } catch (Exception e) { TestabilityTrace.TraceSource.WriteWarning(TraceType, "{0} - Exception occurred: {1}", invokeQuorumLossDescription.OperationId, e.Message); FaultAnalysisServiceUtility.ThrowTransientExceptionIfRetryable(e); throw; } TestabilityTrace.TraceSource.WriteInfo(TraceType, "{0} - Intent saved for {1}", invokeQuorumLossDescription.OperationId, ActionType.InvokeQuorumLoss); }
/// InvokeQuorumLoss NativeCommon.IFabricAsyncOperationContext NativeFaultAnalysisService.IFabricFaultAnalysisService.BeginStartPartitionQuorumLoss(IntPtr invokeQuorumLossDescription, uint timeoutInMilliseconds, NativeCommon.IFabricAsyncOperationCallback callback) { var managedQuorumLossDescription = InvokeQuorumLossDescription.CreateFromNative(invokeQuorumLossDescription); TimeSpan managedTimeout = TimeSpan.FromMilliseconds(timeoutInMilliseconds); return(Utility.WrapNativeAsyncMethodImplementation( (cancellationToken) => this.InvokeQuorumLossAsync( managedQuorumLossDescription, managedTimeout, cancellationToken), callback, "FaultAnalysisServiceBroker.InvokeQuorumLossAsync", ThreadErrorMessageSetter)); }
private Task InvokeQuorumLossAsync(InvokeQuorumLossDescription quorumLossDescription, TimeSpan timeout, CancellationToken cancellationToken) { return(this.service.InvokeQuorumLossAsync(quorumLossDescription, timeout, cancellationToken)); }