diff --git a/engine/packages/engine/src/util/wf/signal.rs b/engine/packages/engine/src/util/wf/signal.rs index b7ca3c30ca..f5140b0159 100644 --- a/engine/packages/engine/src/util/wf/signal.rs +++ b/engine/packages/engine/src/util/wf/signal.rs @@ -1,5 +1,5 @@ use anyhow::*; -use chrono::{Local, TimeZone}; +use chrono::{TimeZone, Utc}; use rivet_term::console::style; use gas::db::debug::{SignalData, SignalState}; @@ -22,7 +22,7 @@ pub async fn print_signals(signals: Vec, pretty: bool) -> Result<()> println!(" {} {}", style("id").bold(), signal.signal_id); - let datetime = Local + let datetime = Utc .timestamp_millis_opt(signal.create_ts) .single() .context("invalid ts")?; @@ -31,7 +31,7 @@ pub async fn print_signals(signals: Vec, pretty: bool) -> Result<()> println!(" {} {}", style("created at").bold(), style(date).magenta()); if let Some(ack_ts) = signal.ack_ts { - let datetime = Local + let datetime = Utc .timestamp_millis_opt(ack_ts) .single() .context("invalid ts")?; diff --git a/engine/packages/gasoline/src/ctx/test.rs b/engine/packages/gasoline/src/ctx/test.rs index 67e80d6538..1479fe193a 100644 --- a/engine/packages/gasoline/src/ctx/test.rs +++ b/engine/packages/gasoline/src/ctx/test.rs @@ -245,7 +245,7 @@ pub fn setup_logging() { // Set up logging let _ = tracing_subscriber::fmt() .with_env_filter("debug") - .with_ansi(false) + .with_ansi(true) .with_test_writer() .try_init(); } diff --git a/engine/packages/universaldb/src/driver/rocksdb/transaction_conflict_tracker.rs b/engine/packages/universaldb/src/driver/rocksdb/transaction_conflict_tracker.rs index 1c949a887d..d425fdabda 100644 --- a/engine/packages/universaldb/src/driver/rocksdb/transaction_conflict_tracker.rs +++ b/engine/packages/universaldb/src/driver/rocksdb/transaction_conflict_tracker.rs @@ -14,6 +14,7 @@ use crate::options::ConflictRangeType; // that const TXN_CONFLICT_TTL: Duration = Duration::from_secs(10); +#[derive(Debug)] struct PreviousTransaction { insert_instant: Instant, start_version: u64, @@ -56,8 +57,9 @@ impl TransactionConflictTracker { txns.retain(|txn| txn.insert_instant.elapsed() < TXN_CONFLICT_TTL); for txn2 in &*txns { - // Check txn versions overlap - if txn1_start_version > txn2.start_version && txn1_start_version < txn2.commit_version { + // Check txn versions overlap (intersection or encapsulation) + if txn1_start_version < txn2.commit_version && txn2.start_version < txn1_commit_version + { for (cr1_start, cr1_end, cr1_type) in &txn1_conflict_ranges { for (cr2_start, cr2_end, cr2_type) in &txn2.conflict_ranges { // Check conflict ranges overlap