No description
![]() The unit test bootstrap_processor.push_one fails intermittently and it exposes a race condition in the bootstrap code of the node. #3533 The race condition is that after finishing with bootstrap frontiers pull, the code is supposed to put the socket back into the idle bootstrap connections queue. However it does that in a racy way. The problem is in the function nano::frontier_req_client::received_frontier. Near the bottom of that function, we should call: connection->connections.pool_connection (connection); before calling promise.set_value (false); Once the promise is given a value then nano::bootstrap_attempt_legacy::run() continues to call push_request in parallel with pool_connection and it is a race condition. Although this is a bug, this is likely not a major nor catastrophic bug because the bootstrap push functionality is only an efficiency. resolves #3533 resolves #3720 |
||
---|---|---|
.github | ||
api/flatbuffers | ||
ci | ||
CL | ||
cmake | ||
coverage | ||
cpptoml@5399650056 | ||
crypto | ||
debian-control | ||
diskhash@0b81937e1b | ||
docker | ||
etc | ||
flatbuffers@a9a295fecf | ||
gtest@e2239ee604 | ||
images | ||
lmdb@e931980823 | ||
miniupnp@2df8120326 | ||
nano | ||
nano-pow-server@00591aeae9 | ||
rocksdb@38e99ec803 | ||
systest | ||
util | ||
valgrind | ||
.clang-format | ||
.gitignore | ||
.gitlab-ci.yml | ||
.gitmodules | ||
asan_blacklist | ||
CMakeLists.txt | ||
CONTRIBUTING.md | ||
doxygen.config | ||
Info.plist.in | ||
LICENSE | ||
logo.png | ||
Nano.icns | ||
Nano.ico | ||
Nano.rc | ||
nanocurrency-beta.spec.in | ||
nanocurrency.spec.in | ||
qt.conf | ||
README.md | ||
rep_weights_beta.bin | ||
rep_weights_live.bin | ||
resources.qrc | ||
SECURITY.md | ||
tsan_clang_blacklist | ||
tsan_suppressions | ||
valgrind.supp |
What is Nano?
Nano is a digital payment protocol designed to be accessible and lightweight, with a focus on removing inefficiencies present in other cryptocurrencies. With ultrafast transactions and zero fees on a secure, green and decentralized network, this makes Nano ideal for everyday transactions.
Guides & Documentation
Other documentation details can be found at https://docs.nano.org.
Links & Resources
Want to Contribute?
Please see the contributors guide.
Contact us
We want to hear about any trouble, success, delight, or pain you experience when using Nano. Let us know by filing an issue, joining us on Reddit, or joining us on Discord.