From ce043aaac42fb69c0726dfea420ecd4453d2a66e Mon Sep 17 00:00:00 2001 From: Duke Leto Date: Fri, 11 Oct 2019 22:16:12 -0400 Subject: [PATCH 1/3] Debug stuff to track down what is up with this sync bug --- src/coins.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/coins.cpp b/src/coins.cpp index eac89c030..a3cb5753e 100644 --- a/src/coins.cpp +++ b/src/coins.cpp @@ -561,7 +561,10 @@ unsigned int CCoinsViewCache::GetCacheSize() const { const CTxOut &CCoinsViewCache::GetOutputFor(const CTxIn& input) const { const CCoins* coins = AccessCoins(input.prevout.hash); + fprintf(stderr, "GetOutputFor: input=%s", input.ToString().c_str()); + fprintf(stderr, "GetOutputFor: prevout n=%d,txid=%s\n", input.prevout.n, input.prevout.hash.ToString().c_str()); assert(coins && coins->IsAvailable(input.prevout.n)); + fprintf(stderr, "GetOutputFor: IsAvailable\n"); return coins->vout[input.prevout.n]; } From b6158023fea00d0829300ad9f51e2aa735d99979 Mon Sep 17 00:00:00 2001 From: Duke Leto Date: Sat, 12 Oct 2019 10:28:58 -0400 Subject: [PATCH 2/3] more debug infoz --- src/coins.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/coins.h b/src/coins.h index d7e357e9e..32f959f78 100644 --- a/src/coins.h +++ b/src/coins.h @@ -245,6 +245,7 @@ public: //! check whether a particular output is still available bool IsAvailable(unsigned int nPos) const { + fprintf(stderr,"IsAvailable(nPos=%d), vout.size()=%li, vout[%d].IsNull()=%d", nPos, vout.size(), nPos, vout[nPos].IsNull() ); return (nPos < vout.size() && !vout[nPos].IsNull()); } From ac048028c36c645b080836b68a3d733913eee466 Mon Sep 17 00:00:00 2001 From: Duke Leto Date: Sat, 12 Oct 2019 23:29:30 -0400 Subject: [PATCH 3/3] wip --- src/coins.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/coins.h b/src/coins.h index 32f959f78..dd5019aab 100644 --- a/src/coins.h +++ b/src/coins.h @@ -245,7 +245,9 @@ public: //! check whether a particular output is still available bool IsAvailable(unsigned int nPos) const { - fprintf(stderr,"IsAvailable(nPos=%d), vout.size()=%li, vout[%d].IsNull()=%d", nPos, vout.size(), nPos, vout[nPos].IsNull() ); + //fprintf(stderr,"IsAvailable(nPos=%d), vout.size()=%li, vout[%d].IsNull()=%d", nPos, vout.size(), nPos, vout[nPos].IsNull() ); + //fprintf(stderr,"IsAvailable(nPos=%d), vout.size()=%li, vout[%d]=%d", nPos, vout.size(), nPos, vout[nPos] ); + fprintf(stderr,"IsAvailable(nPos=%d), vout.size()=%li", nPos, vout.size() ); return (nPos < vout.size() && !vout[nPos].IsNull()); }