1 2018-04-15 14:52:05 <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:
2 2018-04-15 14:52:21 <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.
3 2018-04-15 23:01:04 <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
4 2018-04-15 23:06:50 <captjakk> it kind of looks like if the call to `recv` reads 0 bytes, that it will close the connection
5 2018-04-15 23:07:16 <captjakk> but as I understand it you're supposed to continuously call `recv` until it produces 0 bytes
6 2018-04-15 23:07:45 <captjakk> so that indicates to me that it would close the socket between request/response cycles with each of its peers
7 2018-04-15 23:09:16 <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()`