v0.3.14-pre.011
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-worker-raw-transaction-ingest-lib/src/runtime_resources.rs
|
||||
// version: 40
|
||||
// version: 41
|
||||
|
||||
use sha2::Digest; // rust-rules: trait-import
|
||||
|
||||
@@ -432,7 +432,7 @@ impl RawTransactionIngestLiveSource {
|
||||
tokio::select! {
|
||||
biased;
|
||||
result = &mut source_future => {
|
||||
let latest = *source_frontier_receiver.borrow_and_update();
|
||||
let latest = source_frontier_receiver.borrow_and_update().clone();
|
||||
let terminal_state = if result.is_ok() {
|
||||
crate::RawTransactionIngestSourceState::Closed
|
||||
} else {
|
||||
@@ -447,7 +447,7 @@ impl RawTransactionIngestLiveSource {
|
||||
if changed.is_err() {
|
||||
return std::result::Result::Err(crate::runtime_error("source.frontier_channel_closed"));
|
||||
}
|
||||
if let std::result::Result::Err(error) = inventory_publisher.publish(*source_frontier_receiver.borrow_and_update()) {
|
||||
if let std::result::Result::Err(error) = inventory_publisher.publish(source_frontier_receiver.borrow_and_update().clone()) {
|
||||
return std::result::Result::Err(error);
|
||||
}
|
||||
}
|
||||
@@ -637,17 +637,24 @@ fn source_inventory_health_projection(
|
||||
};
|
||||
(aggregate, active_source_keys, failed_source_keys)
|
||||
};
|
||||
let (continuity_frontier_slot, continuity_has_open_gaps, future_target_coverage, failed_source_losses_reconciled) = {
|
||||
let (continuity_frontier_slot, continuity_has_open_gaps, future_target_coverage, failed_source_losses_reconciled, continuity_snapshot) = {
|
||||
let mut contracts = match continuity_contracts.lock() {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(poisoned) => poisoned.into_inner(),
|
||||
};
|
||||
match contracts.health_projection(active_source_keys.as_slice(), failed_source_keys.as_slice(), aggregate.processing_frontier_slot()) {
|
||||
let health = match contracts.health_projection(active_source_keys.as_slice(), failed_source_keys.as_slice(), aggregate.processing_frontier_slot()) {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(error) => return std::result::Result::Err(error),
|
||||
}
|
||||
};
|
||||
let continuity_snapshot = match contracts.observability_projection() {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(error) => return std::result::Result::Err(error),
|
||||
};
|
||||
(health.0, health.1, health.2, health.3, continuity_snapshot)
|
||||
};
|
||||
let aggregate = aggregate.with_continuity_health(continuity_frontier_slot, continuity_has_open_gaps, future_target_coverage);
|
||||
let aggregate = aggregate
|
||||
.with_continuity_health(continuity_frontier_slot, continuity_has_open_gaps, future_target_coverage)
|
||||
.with_continuity_snapshot(continuity_snapshot);
|
||||
return std::result::Result::Ok(aggregate.with_failed_source_losses_reconciled(failed_source_losses_reconciled));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user