Skip to content

Commit 5a5ab1d

Browse files
committed
Merge bitcoin/bitcoin#29776: ThreadSanitizer: Fix #29767
bbe82c1 Fix #29767, set m_synced = true after Commit() (nanlour) Pull request description: I think this problem bitcoin/bitcoin#29767 (comment) is because of in BaseIndex::Sync https://github.com/bitcoin/bitcoin/blob/61de64df6790077857faba84796bb874b59c5d15/src/index/base.cpp#L163-L168 Setup m_synced = true; before Commit(); So this may cause a race condition window to BaseIndex::BlockConnected https://github.com/bitcoin/bitcoin/blob/61de64df6790077857faba84796bb874b59c5d15/src/index/base.cpp#L271-L274 So i try to fix it with move m_synced = true after Commit(). Also see comment of Sync(): https://github.com/bitcoin/bitcoin/blob/61de64df6790077857faba84796bb874b59c5d15/src/index/base.h#L151-L156 I am a newcomer interested in Bitcoin, trying to become a member of the Bitcoin Core development team. Please give me some feedback if you could, as I may be doing something wrong. Thank you! ACKs for top commit: fjahr: Code review ACK bbe82c1 ryanofsky: Code review ACK bbe82c1 Tree-SHA512: 89a09498a232c87ef1e083d4cc4ed9bb15f045ad0624d5d150a87187b2b8a48a41137974dbc7ea5c37f73da90742c43259f5aa7f84b4179eb8d62033e44fa479
2 parents 71c51c1 + bbe82c1 commit 5a5ab1d

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/index/base.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,9 @@ void BaseIndex::Sync()
162162
const CBlockIndex* pindex_next = WITH_LOCK(cs_main, return NextSyncBlock(pindex, m_chainstate->m_chain));
163163
if (!pindex_next) {
164164
SetBestBlockIndex(pindex);
165-
m_synced = true;
166165
// No need to handle errors in Commit. See rationale above.
167166
Commit();
167+
m_synced = true;
168168
break;
169169
}
170170
if (pindex_next->pprev != pindex && !Rewind(pindex, pindex_next->pprev)) {

0 commit comments

Comments
 (0)