fixed deadlock on testnet
This commit is contained in:
parent
1a1af408a8
commit
9be7abc9cf
@ -13,8 +13,9 @@ server="$1"
|
||||
[[ "$server" == "staging" ]] && server="registry.detee.ltd"
|
||||
|
||||
cargo build --release
|
||||
ssh $server systemctl stop detee-brain-mock.service
|
||||
scp target/release/brain-mock $server:/usr/local/bin/brain-mock
|
||||
ssh $server mkdir -p /etc/detee/brain-mock/
|
||||
scp scripts/detee-brain-mock.service $server:/etc/systemd/system/detee-brain-mock.service
|
||||
ssh $server systemctl daemon-reload
|
||||
ssh $server systemctl restart detee-brain-mock.service
|
||||
ssh $server systemctl start detee-brain-mock.service
|
||||
|
11
src/data.rs
11
src/data.rs
@ -437,8 +437,15 @@ impl BrainData {
|
||||
log::debug!("Running contracts cron...");
|
||||
{
|
||||
let mut contracts = self.vm_contracts.write().unwrap();
|
||||
let nodes = self.vm_nodes.read().unwrap();
|
||||
contracts.retain_mut(|c| {
|
||||
let node = self.find_node_by_pubkey(&c.node_pubkey).unwrap();
|
||||
let node = match nodes
|
||||
.iter()
|
||||
.find(|n| n.public_key == c.node_pubkey)
|
||||
.cloned() {
|
||||
Some(n) => n,
|
||||
None => return c.locked_nano > 0,
|
||||
};
|
||||
if node.offline_minutes == 0 {
|
||||
let operator_wallet = node.operator_wallet.clone();
|
||||
let minutes_to_collect = (Utc::now() - c.collected_at).num_minutes() as u64;
|
||||
@ -995,7 +1002,7 @@ impl BrainData {
|
||||
|
||||
pub fn find_node_by_pubkey(&self, public_key: &str) -> Option<VmNode> {
|
||||
let nodes = self.vm_nodes.read().unwrap();
|
||||
nodes.iter().cloned().find(|n| n.public_key == public_key)
|
||||
nodes.iter().find(|n| n.public_key == public_key).cloned()
|
||||
}
|
||||
|
||||
pub fn is_user_banned_by_node(&self, user_wallet: &str, node_pubkey: &str) -> bool {
|
||||
|
Loading…
Reference in New Issue
Block a user