Transcript for #bitcoin-dev 2018/04/15

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()`