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"
|
[[ "$server" == "staging" ]] && server="registry.detee.ltd"
|
||||||
|
|
||||||
cargo build --release
|
cargo build --release
|
||||||
|
ssh $server systemctl stop detee-brain-mock.service
|
||||||
scp target/release/brain-mock $server:/usr/local/bin/brain-mock
|
scp target/release/brain-mock $server:/usr/local/bin/brain-mock
|
||||||
ssh $server mkdir -p /etc/detee/brain-mock/
|
ssh $server mkdir -p /etc/detee/brain-mock/
|
||||||
scp scripts/detee-brain-mock.service $server:/etc/systemd/system/detee-brain-mock.service
|
scp scripts/detee-brain-mock.service $server:/etc/systemd/system/detee-brain-mock.service
|
||||||
ssh $server systemctl daemon-reload
|
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...");
|
log::debug!("Running contracts cron...");
|
||||||
{
|
{
|
||||||
let mut contracts = self.vm_contracts.write().unwrap();
|
let mut contracts = self.vm_contracts.write().unwrap();
|
||||||
|
let nodes = self.vm_nodes.read().unwrap();
|
||||||
contracts.retain_mut(|c| {
|
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 {
|
if node.offline_minutes == 0 {
|
||||||
let operator_wallet = node.operator_wallet.clone();
|
let operator_wallet = node.operator_wallet.clone();
|
||||||
let minutes_to_collect = (Utc::now() - c.collected_at).num_minutes() as u64;
|
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> {
|
pub fn find_node_by_pubkey(&self, public_key: &str) -> Option<VmNode> {
|
||||||
let nodes = self.vm_nodes.read().unwrap();
|
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 {
|
pub fn is_user_banned_by_node(&self, user_wallet: &str, node_pubkey: &str) -> bool {
|
||||||
|
Loading…
Reference in New Issue
Block a user