aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorj-berman <justinberman@protonmail.com>2025-12-11 21:32:23 -0800
committerj-berman <justinberman@protonmail.com>2025-12-11 21:37:20 -0800
commitd8d3cf97300480b9d3942c667978dd4860b76feb (patch)
treeb9a58cca4fb8e9fd5576d1ef7b62415a119c803f /tests
parentae08557f713a41f3f7267fcb08bbbe87f18d7932 (diff)
downloadmonzero-core-d8d3cf97300480b9d3942c667978dd4860b76feb.tar.gz
monzero-core-d8d3cf97300480b9d3942c667978dd4860b76feb.tar.xz
monzero-core-d8d3cf97300480b9d3942c667978dd4860b76feb.zip
p2p: fix race causing dropped connections during sync
Without this commit: 1) read height from DB 2) add block to chain in separate thread 3) read chain for block id's and request them from peer 4) ERR in handle_response_chain_entry, peer's first block is the one that was added to the chain, which has block idx=height from step 1. This commit reads the chain for height and highest block id's in one go while holding the m_blockchain_lock to avoid the race.
Diffstat (limited to 'tests')
-rw-r--r--tests/unit_tests/node_server.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/tests/unit_tests/node_server.cpp b/tests/unit_tests/node_server.cpp
index 58a6fbc4a..e55b43911 100644
--- a/tests/unit_tests/node_server.cpp
+++ b/tests/unit_tests/node_server.cpp
@@ -56,7 +56,7 @@ public:
void set_target_blockchain_height(uint64_t) {}
bool init(const boost::program_options::variables_map& vm) {return true ;}
bool deinit(){return true;}
- bool get_short_chain_history(std::list<crypto::hash>& ids) const { return true; }
+ bool get_short_chain_history(std::list<crypto::hash>& ids, uint64_t& current_height) const { return true; }
bool have_block(const crypto::hash& id, int *where = NULL) const {return false;}
bool have_block_unlocked(const crypto::hash& id, int *where = NULL) const {return false;}
void get_blockchain_top(uint64_t& height, crypto::hash& top_id)const{height=0;top_id=crypto::null_hash;}