14:52
|
Zosma |
Unsure if this is the right place, but before submitting an issue to the GitHub issue tracker of bitcoin core, I wondered if anyone would know why I'd get an assertion after switching from 0.15.1 to 0.16 during wallet loading: |
14:52
|
Zosma |
bitcoin-qt: wallet/wallet.cpp:542: void CWallet::SyncMetaData(std::pair<std::_Rb_tree_iterator<std::pair<const COutPoint, uint256> >, std::_Rb_tree_iterator<std::pair<const COutPoint, uint256> > >): Assertion `copyFrom' failed. |
23:01
|
captjakk |
So I was reading through `net.cpp` today and I’m trying to answer a specific question but I can’t seem to figure it out from the code. The question is this: do TCP connections get held open or do they opened exchange messages and then close each time |
23:06
|
captjakk |
it kind of looks like if the call to `recv` reads 0 bytes, that it will close the connection |
23:07
|
captjakk |
but as I understand it you're supposed to continuously call `recv` until it produces 0 bytes |
23:07
|
captjakk |
so that indicates to me that it would close the socket between request/response cycles with each of its peers |
23:09
|
captjakk |
but at the same time I would have expected do while in a much smaller scope, it appears here there is only a single call to `recv` before calling `WakeMessageHandler()` |